现在都尼玛6.5了,0.几的版本就开始测试了,不稳定,不能生产使用。. Z2 T1 G2 R- z$ ?
OpenMediaVault 经济高效的NAS解决方案
6 j- q( c/ k7 J8 q背景
2 n& \0 y( R7 ~3 c捣腾一套网络存储即方便家庭媒体共享,也适应小工作室协同办公,这事不定期地琢磨有好几年了。# |( t6 l# [8 f4 F# \" g
: L1 e, h) Z+ ]5 e _( T) Y! k
最开始了解了主流的网络存储方案,市面供应商包括群晖、威联通,也是自己之前关注过最多的两项,两者之中更偏向威联通,从软件界面来看更简单清爽。
% o9 K! h: K$ A, n: k( ~
) C9 b$ ^' j O4 t而今,最终决定还是自己利用现有的闲置电脑已经购买的 世特力 硬盘盒来搭建,从经济上会节约很多,虽然 世特力 硬盘盒也不便宜,但相对于群晖、威联通等4~ 5盘位动则三四千的价位来说已经很经济了。
) W6 I" z& k, C; v1 P/ b2 ]% B* F- }9 u O6 T$ {. \0 `
两年后的今天,重新捣腾采用Ubuntu Sever 20.04 + FlieRun 实现自己的个人网盘服务。 个人网盘搭建过程 FILERUN ——update 2022.04+ a4 r% R0 Z2 w7 \# M2 e% @# f
) y& m* N0 c: b1 }方案
8 _9 t, ?. p: ~9 K) J# R" d7 } [3 L P硬件5 A4 V' q/ S# {1 H* Y& i
网络上提供的安装硬件大致两类,一是现有操作系统搭载虚拟机;二是捣腾官网提供树莓派的玩家;个人查阅资料感觉还是采用闲置的独立电脑主机搭建,配置如下:& G4 q* ^5 L. r
! p- p8 K9 j; [7 D; b0 A- {! W* B
机型:戴尔(DELL)Vostro 270S-R136-JN 台式电脑(双核i3-3220 2G 500G DVD WIFI USB3.0)+ A8 y8 x4 C) n9 p. m/ y
处理器:Intel® Core™ i3-3220 CPU @ 3.30GHz 3.30 GHz) |' H p7 m# n4 B
内存:6.00 GB(5.88 GB usable)
" @! n6 ]$ ^9 M* u7 U硬盘:WDC WD5000AAKX-75U67AA0 (500 GB)7 N Z7 r, w0 l
该机器2013年4月14日购入,当时售价:¥3349.00
/ x. w, _/ @% M7 y! @* ^* g4 |- n3 g2 @" p: P: p) n& b! z
关于方案的选择性思考包括硬件、软件两方面,其中软件在最开始已经基本确定是 Openmediavault,而硬件方面出于需支持 磁盘阵列的部署,则经历了多次心路历程:# ~# ?7 I2 N, m; \' E& Y+ g
* {5 u3 h* t# N/ O4 S1、通过2013年 Dell 台式机+ 世特力 硬盘盒来实现,但发现硬盘盒仅提供USB连接,外置连接方式可靠性不高; p. y2 D! D& I
? p$ F$ s; ]/ Y$ S U a
1 G! G& X8 g6 c- ?7 S
2、通过2002年的一台 Acer 台式机(大学时期购买的二手机)来实现,优点:机箱大盘位多;缺点:主板老,BIOS不支持USB引导启动, 功耗高且不静音;
+ F7 a# F& o0 `' u0 r, a0 l- S
4 S& m( _+ G/ Q" E8 C# w3、继续采用2013年 Dell 台式机完成,缺点:机箱太小缺少硬盘位,不具备扩展空间。琢磨后发现可以通过插入U盘作为系统盘,经过测试发现U盘读写速度很喳,试着安装几次系统后发现不管速度慢,且容易出错,稳定性极差。最终放弃,改用一块120G容量的2.5寸移动硬盘作为系统盘顺利安装,因为盘面体积较小顺便在机箱找个位置固定即可。 g x7 [$ {: _1 f
' }( s6 q! U; V- w: B
最终方案,120G 2.5寸机械硬盘(系统盘) 、480G SSD、两块 3Tb 3.5寸机械硬盘作镜像存储(RAID 1模式),其中受机箱位影响,需要将现有的光驱位腾出来改作硬盘位,网上有改装工具:“光驱位转硬盘位”工具)
; C# k! I" e0 c$ i, t: c9 i* A4 @0 b+ `7 r/ N+ n% C0 c2 V: t
分区方案
3 P$ H0 [+ A$ y) |- A* ZZFS:基于成熟的Oracle技术,拥有最多的特性,集成RAID技术,应该是首选的方案。虽然因为协议问题没有在Debian的主库中,但是仍然可以使用。
% D! J# n( t7 Y; LLVM2 + Linux RAID:基于Linux维护的软件与库,使用最多的方式。
4 H# h8 P4 F2 \: k. NMergerFS + SnapRAID:构建于底层分区体系上的方案,没有实际使用。
( b" X$ V5 l; U4 x( i! d最初通过在OMV上安装ZFS插件,尝试使用ZFS,但是OMV对ZFS支持不佳,应该是设计缺陷,无法在ZFS分区上创建共享目录(Shared Folders),导致无法在GUI上方便使用,于是无奈弃用。。。
v7 m% R# p. E0 Q6 e关于MergerFS + SnapRAID方案,因为是较新的方案,还未调研功能性与稳定性,不做评论。! a9 O! |- r2 ]/ q5 p4 m
最后的选择是使用最常见的LVM2 + Linux软RAID。! G* |1 A$ q C! M' C9 j
) Y6 B. ~+ y0 q+ g& P以上来源: via: mosrv.com/nas/2018/05/01/nas-build-and-config.html
) Z/ {: k6 O$ ^& T l& P; K# j+ F2 r# p! }
软件
6 r: ~4 W; `! q: }8 R* h9 f2 c( k4 @软件方面,最开始知道的是 FreeNAS ,后来发现 Openmediavault 才是最佳选择,原因参考网络的资料:
# k+ h4 {, ?+ B9 O3 H
3 K2 g- `4 q0 }$ T2 X1 |Synology DSM8 `# k& z! H% r9 k
: u8 w$ t7 E4 ]: F1、相对臃肿,不够简洁;
! G7 ~/ t. P- q* y2、每块磁盘上都会安装 DSM,包括存储安装的软件及其数据,导致用户存储和操作系统耦合,尤其是频繁的读写影响每块硬盘的休眠功能;0 w! Y6 \( \2 F
3、DIY 设备安装运行涉及版权,无法稳定升级版本;
/ v* u' N7 x- r/ o9 k6 Y: B( \! V4 c7 J b) L2 W% Y0 K
FreeNAS9 Y$ K: G4 a& s
4 v$ s6 ^4 h4 w
对硬件要求比较高,尤其是内存最低要求 8G,其未来的目标用户应该主要是企业。
" q4 R3 y5 ?. {% h! H* t8 t* } O0 S* \
, ~0 t3 ?; p+ i: F; {openmediavault
' W7 L5 A6 D; J6 Y4 F% V; q: @& Z P& j
基于 Debian Linux,开源免费。openmediavault 的目标就是面向家庭和小型办公环境,是对熟悉 Linux 又追求最小化安装的人的首选。+ d" Y7 l, k3 a5 J/ A
9 S1 O- h1 ~7 Z, f& I0 s C. q注: 更多软件解决方案可参考 几个常见的 NAS 系统整理及选择
' m N; B, S: U7 {' m/ S! Y2 N; a, z, W
安装 OpenMdediaAvault
& U8 x! r+ d+ _$ x2 r% o文件系统及挂载信息7 d7 N/ m3 @6 z& H. b. X8 w
& i7 |& J+ L9 W5 J2 d
root@nas:/dev# df -h- _5 e. y) B1 J3 D8 _6 e
安装 OMV-EXTRAS. t; R4 i* N1 D# a/ U- L
在安装完OpenMediaVault 系统后,基本上完成了第一阶段的基础性功能服务,正常使用NAS问题已经不大。不过如果要根据自己的其他定制化需求,则可以考虑继续安装一些容器或插件。
. F# X% B" v/ t, H- }* e9 ^: a2 h ?2 |, U- o# z5 ^2 e
通过网上了解,最基本的容器就是Docker,也是最常用的。安装Docker之前需要安装 omv-extras,命令如下:
( S8 C$ K1 R2 p% V
+ L$ x) {; K! Z& I3 D6 d
1 a# ~- z9 A2 y. xwget -O - https://github.com/OpenMediaVaul ... /raw/master/install | bash1 n$ Y% X+ G6 ?% t' x
ref: https://github.com/OpenMediaVault-Plugin-Developers/installScript" T, R8 h4 j" ^, l9 ?
2 T" q9 U+ @' J0 e3 y. l
注: 如果显示什么 443 failed: Connection refused. 就是网络源被墙了,该死的CCP!
0 Z4 T8 ], a; k, G6 w1 K8 C8 b; U, g! b+ w+ s
方法总比问题多, 习惯采用Google 英文搜索有好处! 此时当采用线上命令无法读取源安装时,只能下载 deb 文件包通过web 插件管理界面上传后安装。 下载文件参考:forum.openmediavault.org/index.php?thread/5549-omv-extras-org-plugin/6 b, _1 a" g/ I% T2 O
& a0 r. i2 |1 n/ t! D
安装 DOCKER
2 U0 P$ J) K+ W/ K% _; ^完成插件 omv-extras 的安装是具备安装Docker的基础,而Docker容器又是作为安装流行的云应用 NextCloud 的基础,真是环环相扣啊…2 ^: l) [, _- _8 D7 X
* [2 J1 K3 L# P& W) J9 hDocker 的安装相对简单,在安装完 omv-extras 后,通过左侧管理菜单 OMV-Extras 进入切换到 Docker 标签页直接安装即可。Portainer 作为一套轻量化的Docker 可视化工具也可以一并安装。
* u3 T4 p. Z6 i) v0 i" W
' q6 |7 {0 ^$ C安装完成之后可通过 yourdomain.com:9000 进入,比如: nas.sheshui.me:9000。初次登录需要设定管理密码,UID默认为admin。
! y) v4 [* K) q* f
# A" q" O1 W+ ^: i: L安装 NEXTCLOUD
9 P \( [. d+ ]/ A& `' D6 v经了解有人反馈 NextCloud 吃资源等各种不是(参考 淘汰Nextcloud,一行命令搭建功能强大的个人网盘FileRun FileRun
?1 _3 b& r, W/ |* z+ E# k$ X U. U' z5 c9 f" ?2 `
如需坚持安装 NextCloud 可参考文章 OMV安装NextCloud
6 _% v4 @8 ?6 t/ ]. g3 R# r5 h# N( Q
安装 FILERUN
' Q* ~' u) u, j+ o6 t5 v2 |在OMV上还是需要依赖 Docker 容器安装方式,参考教程 FileRun installation using Docker! _6 D5 [4 q% z. b7 r+ I
1、拉取 FilesRun 镜像文件
( z5 H+ j) r3 i1 a- C$ D2 \: p; y% u9 v' \4 i, A, I2 m
docker pull afian/filerun [* {! A' J* N- B& R* p% W3 y
2、创建配置文件- p' R/ P. N$ o: F5 Y# u8 ~$ ?
. A4 K! X- z: dversion: '2'( ~$ ?4 L6 ]1 P2 H
0 P8 k x' P0 a" Pservices:0 T& t ~( H7 ~ o; M5 w
db:
6 e b) |) O) a* w- Y( g image: mariadb:10.16 O9 j. @1 E) X4 z
environment:( ^/ ~" T- c j3 g! `& d5 X
MYSQL_ROOT_PASSWORD: filerun
5 ~5 V& ]2 h* B MYSQL_USER: filerun
6 H1 c8 z8 X- o/ e MYSQL_PASSWORD: filerun
% z2 {" r U" X4 v( e5 G( N4 i a MYSQL_DATABASE: filerun9 x2 _" P# c; n y: z6 |, h* h
volumes:0 ?2 t, u0 B' s8 U
- /filerun/db:/var/lib/mysql
% q* N$ \. q9 }* j5 W4 H9 A) i5 q8 f* o6 j! u4 ]: F- N# U7 u
web:
K0 ~2 o, ?+ s! t6 w3 u image: afian/filerun) |! T5 Z( i: Y" c, O
environment:
5 n. A4 Z% q1 P v7 j- D# R/ T FR_DB_HOST: db
5 u0 L9 l! q& J& z; u FR_DB_PORT: 3306
9 N9 A, y1 b$ A FR_DB_NAME: filerun
5 t3 w. X/ K- F* J, R FR_DB_USER: filerun5 h: D4 K2 c+ q
FR_DB_PASS: filerun
_+ }* D; ~% Z3 l APACHE_RUN_USER: www-data4 \6 s/ O4 e+ X. P/ J+ C6 s3 e
APACHE_RUN_USER_ID: 33
. C$ s/ X- Q7 k8 T7 @: w g8 b APACHE_RUN_GROUP: www-data
4 {- D6 H! b8 @" l9 ^/ Z$ S0 Z APACHE_RUN_GROUP_ID: 33
$ v7 @- B4 k: f. [ depends_on:
- m2 n0 V5 Z$ ^) W* I* F - db" X; H* t4 _; R$ N" i
links:
) ?: \ T& W" h; M+ i/ y! ~8 n - db:db, b# m. e0 @4 E% Q- n, ^
ports:& D5 @& p! C6 Q8 d7 g2 q
- "3000:80"
3 Y( B" L# b' G& T6 ^0 L j+ } volumes:
' K9 H* U9 k5 z/ I2 w - /filerun/html:/var/www/html
3 w, o( e& t5 S) M* o+ c - /filerun/user-files:/user-files
9 ]9 ?7 z4 q3 N; b. x上述配置模板参考 docs.filerun.com/docker ,将使网站目录映射为/filerun/html,用户目录为/filerun/user-files,端口映射配置80:80,前为对外端口,后为容器端口。*此处要注意因对外80端口已在OMV web服务中占用,所以需自定义修改端口,如: - "3000:80" * 否则会因端口冲突出错。
/ Y4 n; x% Y4 U& @# V9 F2 D( }3 i+ U1 ^3 O" y! A
3、创建文件目录: U. ~: d4 N) b# p1 R) o! k0 e
4 \0 R7 q2 _# y9 `. P0 imkdir /filerun /filerun/html /filerun/user-files
! s/ H! F5 r2 c1 V4、运行
8 t- t* C1 d3 |4 m# }* r# I& m+ J+ C" v& K
docker-compose up -d# K* N+ v) }# u9 |
运行过程中还会下载安装一些library,成功后会展示如下信息:
9 `; z4 D8 w4 N+ m" _, W8 }# `+ r( O8 [7 o2 `
Creating root_db_1 ... done/ o! v, N7 v* z& \
Recreating root_web_1 ... done
2 ~ j1 U c' M6 C! l$ {通过web访问进入 htttp://yourdomain-localhost:3000, 默认登录:Username: superuser ; Password: superuser,首次登录后强制要求修改密码。% l% M1 ^# H% K, k2 Z
. j: H8 @- \7 A8 H+ l9 Y$ }
系统安装. x6 M2 _/ E4 ?- K
Openmediavault 对硬件要求较低,官网给出的信息如下:
: a& p& u8 d' L5 N5 R1 x# I. D, l4 v6 }! D5 F7 ]6 h
CPU: Any x86-64 or ARM compatible processor
0 R9 Q0 I0 J. IRAM: 1 GiB capacity
: X |/ C( S2 [( r9 xHDD:( p( `9 _3 A, X3 G+ O7 W2 ~5 F
System Drive: min. 4 GiB capacity (but more than the capacity of the RAM)" k% y5 c2 Y& a: Q* L
Data Drive: capacity according to your needs
" L! H" I! a" R7 |7 G9 U; J安装个人认为分两个阶段,一个是初始化安装可以通过web登录管理界面的阶段;第二个则是在此基础上安装各中容器插件或应用服务。
/ |1 o; {& D6 I. G" y8 }% a$ H9 }2 j& w; `' Y# ~; E
登录
2 X+ j" Q8 o7 N' Q9 }登录分两种,一类是Web管理界面,默认登录信息如下:
/ ]9 F' c$ g& E" R
- R& h9 o& v; _. L; Y6 TUID:admin
7 z! l% N3 e/ _9 K3 |2 b! p7 jPWD:openmediavault
& L" j! v V* n1 H5 [* z
0 U! R. i% s- U3 }0 u8 D前提:已连接网线并配置IP后(WIFI不太好使,需连网线),通过浏览器登录查看。# @4 n3 t' P B6 F
0 @! M/ a# R9 F# }2 q查看IP的命令 ip addr,如果提示该命令不存在等情况,可试着先更新包:
: H4 g0 U9 N- `5 v1 f2 [& ]- U; y
apt-get update% S' s8 W7 F8 P
apt-get upgrade" x3 o# r4 V8 E4 z' I
另一类是通过 Shell控制台 :UID:root ;PWD:「安装时设置的密码」
# ]9 |9 B/ }& ]- k5 ?( m P
- M' V+ O8 r$ ], m* i; Z8 r安装或配置过程中如遇到问题,可通过命令 omv-firstaid 救急,这是一套配置菜单,可清晰的指引完成网络等配置信息。
7 R* D" o: k+ ~; ?" ~/ I8 S* e- Y: z4 m' J E# k" o
原则6 e1 {7 x5 O$ }' r; A
准确说几年前就有想法要整一套网络存储,适应家庭共享媒体或小工作室协作办公使用,在查阅了网络冠哟OMV的各种资料后确定以下搭建建议或原则:+ ]$ w) ]- y7 l' m
$ `# R9 Y0 B) @. y/ r
尽可能不采用虚拟机的方式,作为独立的服务应该享有独立的硬件资源;- I" o$ I3 A; I6 ]( E; X& v$ [
不采用树莓派的搭建方式,虽然官方有提供,但个人认为这属于玩家们捣腾的世界;7 _1 x/ r7 A& X5 Q
索引
2 @) R7 N) }( I- ZOPENMEDIAVAULT 常用命令9 M4 D1 y1 }$ c3 F6 z1 c3 b
OpenMediaVault 是基于 Debian 开发,所以熟悉 Linux 操作的前提下会很轻松。
8 O2 V# r' f; U3 @ p* R* j1 `& g. Q8 b4 ?# S9 P P
omv-fistaid : 安装配置菜单引导;. j4 T. W6 k) x4 _' \: V/ Z8 v
! @0 h: `: y7 u9 R3 d# rip addr : 查看本机IP信息;
% O. V, Y, R9 b
3 e4 b {! I* c2 v; odpkg -l | grep openmediavault :检查当前系统版本$ Y* y$ _1 S+ r7 z; p
9 a# {6 q1 C1 p" W
参考资料- M. d5 G& I r. o/ [3 k( S5 z
Openmediavault 官网, R( `; v2 c, O8 F9 U
搭建 openmediavault NAS$ U0 B$ p6 D( V6 T
GitHub 开发者插件列表
" Z5 a# }1 P6 e8 P7 b2 W$ x( IFileRun Docs9 u. d4 T6 i1 M6 A! C' X+ ]; M
常见问题
& i' ]7 y$ v% B$ o更换硬盘 无法创建共享文件夹的问题 |