现在都尼玛6.5了,0.几的版本就开始测试了,不稳定,不能生产使用。
" W0 {" x2 i5 b$ Q& _+ JOpenMediaVault 经济高效的NAS解决方案 * Y! Y! p( M0 Q& }& @' n
背景
6 z. x$ Y1 S* ?- x& \5 h! y% F4 ?捣腾一套网络存储即方便家庭媒体共享,也适应小工作室协同办公,这事不定期地琢磨有好几年了。( T6 K1 @/ u2 D( B* | T
* U) H. g3 x( E" M" c
最开始了解了主流的网络存储方案,市面供应商包括群晖、威联通,也是自己之前关注过最多的两项,两者之中更偏向威联通,从软件界面来看更简单清爽。
% B* @4 b& E8 r- X1 w4 w) l3 Q: |0 @1 x4 K+ r) T, k7 ^" {
而今,最终决定还是自己利用现有的闲置电脑已经购买的 世特力 硬盘盒来搭建,从经济上会节约很多,虽然 世特力 硬盘盒也不便宜,但相对于群晖、威联通等4~ 5盘位动则三四千的价位来说已经很经济了。
4 N, J4 V+ N6 X! T J; d- a j: p6 M' w' f2 A
两年后的今天,重新捣腾采用Ubuntu Sever 20.04 + FlieRun 实现自己的个人网盘服务。 个人网盘搭建过程 FILERUN ——update 2022.04
* D( J3 o5 k. M% X) n( F- r3 A2 y& z3 {! {2 S& ~/ V% B1 a
方案1 f j; B& O% j/ N# Y. N
硬件' |3 w7 Y9 w5 |- F
网络上提供的安装硬件大致两类,一是现有操作系统搭载虚拟机;二是捣腾官网提供树莓派的玩家;个人查阅资料感觉还是采用闲置的独立电脑主机搭建,配置如下:
, y9 v: r/ t( @5 Q1 J, ?* Y' w' @% `1 g2 j( a4 D/ s
机型:戴尔(DELL)Vostro 270S-R136-JN 台式电脑(双核i3-3220 2G 500G DVD WIFI USB3.0)# A# H0 h" T( B) [% E! l0 g J! X
处理器:Intel® Core™ i3-3220 CPU @ 3.30GHz 3.30 GHz, i2 a* d& b/ a& V- }5 O5 l2 z
内存:6.00 GB(5.88 GB usable)
$ E) ?( {% @0 b. ~# e4 x硬盘:WDC WD5000AAKX-75U67AA0 (500 GB)% U' y* C$ B, E& _# z1 K: R' Q
该机器2013年4月14日购入,当时售价:¥3349.004 ?4 k- G+ Q7 V9 M9 G0 z) X' F
8 A* {+ C5 K& l) B. R
关于方案的选择性思考包括硬件、软件两方面,其中软件在最开始已经基本确定是 Openmediavault,而硬件方面出于需支持 磁盘阵列的部署,则经历了多次心路历程:, C. R2 p2 B+ u( ?- q/ J# t* k
0 |2 t3 _# j' q7 l3 w! X: f0 o1、通过2013年 Dell 台式机+ 世特力 硬盘盒来实现,但发现硬盘盒仅提供USB连接,外置连接方式可靠性不高;7 {6 J6 i" Y8 {( l) E
* E, ]5 D* Y8 X' ]5 C P& R' J, o( Z- P* g0 F' ` k% B
2、通过2002年的一台 Acer 台式机(大学时期购买的二手机)来实现,优点:机箱大盘位多;缺点:主板老,BIOS不支持USB引导启动, 功耗高且不静音;8 w+ q" `4 W6 s( @6 H7 O! }9 }
: U1 q# a5 x0 C$ `' U
3、继续采用2013年 Dell 台式机完成,缺点:机箱太小缺少硬盘位,不具备扩展空间。琢磨后发现可以通过插入U盘作为系统盘,经过测试发现U盘读写速度很喳,试着安装几次系统后发现不管速度慢,且容易出错,稳定性极差。最终放弃,改用一块120G容量的2.5寸移动硬盘作为系统盘顺利安装,因为盘面体积较小顺便在机箱找个位置固定即可。
/ X. Q$ e/ d$ q0 Q$ ^7 N1 s9 x% d+ |) L; ^7 B
最终方案,120G 2.5寸机械硬盘(系统盘) 、480G SSD、两块 3Tb 3.5寸机械硬盘作镜像存储(RAID 1模式),其中受机箱位影响,需要将现有的光驱位腾出来改作硬盘位,网上有改装工具:“光驱位转硬盘位”工具) `- `1 W+ i6 Z2 |1 L
1 g/ E7 x. p2 `* e" S7 V. {分区方案' o; R) d0 Z3 \2 g! g+ Z, j$ p
ZFS:基于成熟的Oracle技术,拥有最多的特性,集成RAID技术,应该是首选的方案。虽然因为协议问题没有在Debian的主库中,但是仍然可以使用。
% m2 `: w# q1 y, p% H" n0 u2 B4 ^3 qLVM2 + Linux RAID:基于Linux维护的软件与库,使用最多的方式。# K4 M* N. m/ k; ?) g8 j( r: C
MergerFS + SnapRAID:构建于底层分区体系上的方案,没有实际使用。
% ]2 [# {4 E+ \2 O% t最初通过在OMV上安装ZFS插件,尝试使用ZFS,但是OMV对ZFS支持不佳,应该是设计缺陷,无法在ZFS分区上创建共享目录(Shared Folders),导致无法在GUI上方便使用,于是无奈弃用。。。
+ H- s4 {& e0 N, r2 _关于MergerFS + SnapRAID方案,因为是较新的方案,还未调研功能性与稳定性,不做评论。$ Q/ @9 w! Z' r2 F5 g& l; ~
最后的选择是使用最常见的LVM2 + Linux软RAID。- p/ p4 h/ \6 R4 q( m- o) R& B
+ @, b) a" D+ V; z9 J, U
以上来源: via: mosrv.com/nas/2018/05/01/nas-build-and-config.html3 u2 |8 o3 V9 `
: a6 Z$ k5 D" J4 M
软件% M1 c p6 D4 M$ m7 f2 ^+ K, n
软件方面,最开始知道的是 FreeNAS ,后来发现 Openmediavault 才是最佳选择,原因参考网络的资料:. \* F% I7 f: \6 `8 v$ O1 O
6 K: C7 J3 A& Y$ L; I( l+ {
Synology DSM2 e5 d+ x3 C, k6 z5 V
2 a( E1 N" \) V# Y! _& ^2 R6 V
1、相对臃肿,不够简洁;
7 i% c9 I: y- e$ N( @% @2 J' X+ K2、每块磁盘上都会安装 DSM,包括存储安装的软件及其数据,导致用户存储和操作系统耦合,尤其是频繁的读写影响每块硬盘的休眠功能;; s' s3 q. G/ u8 ?! J* B' u
3、DIY 设备安装运行涉及版权,无法稳定升级版本;
$ A0 t% u0 D% l0 }: p7 |
1 z- e0 B" M+ q: AFreeNAS9 O: z; P) g& S, O' z j" r; D
# J1 V1 S" C- t4 p; R8 H K对硬件要求比较高,尤其是内存最低要求 8G,其未来的目标用户应该主要是企业。# Z0 V/ D! V) F" G! T. E
. T8 c' @% ?( J' p! copenmediavault4 G/ z- j) \$ T7 v+ W! a# x
+ S- F+ X$ ^5 ~7 c" @$ R基于 Debian Linux,开源免费。openmediavault 的目标就是面向家庭和小型办公环境,是对熟悉 Linux 又追求最小化安装的人的首选。% C# N$ Y: N1 P# r( R5 r
4 L5 ^1 Z, H6 V! g
注: 更多软件解决方案可参考 几个常见的 NAS 系统整理及选择
& f1 [+ j+ k) c- l7 \ Z: \: o# k" z. a. d
安装 OpenMdediaAvault. D/ J* M! Q' o1 M% T' Q4 R
文件系统及挂载信息
6 u. Z1 O! G% H4 P l
, p4 x* F0 q* Eroot@nas:/dev# df -h
/ X0 l/ p0 O& Y. \8 V安装 OMV-EXTRAS
, |3 e9 }6 {+ X5 _; @在安装完OpenMediaVault 系统后,基本上完成了第一阶段的基础性功能服务,正常使用NAS问题已经不大。不过如果要根据自己的其他定制化需求,则可以考虑继续安装一些容器或插件。; l0 u/ t( t5 O
1 C# [5 \, C4 m% E; k+ j通过网上了解,最基本的容器就是Docker,也是最常用的。安装Docker之前需要安装 omv-extras,命令如下:
c0 g( w1 S9 R* `* N X( z) }6 u: V1 o
! I0 `' S* k4 n* Q- O' J8 pwget -O - https://github.com/OpenMediaVaul ... /raw/master/install | bash+ i2 D Z% h; R {, h
ref: https://github.com/OpenMediaVault-Plugin-Developers/installScript0 J+ F% ^$ R+ q* H3 f
W( n o2 [# f u* |+ ^/ C F
注: 如果显示什么 443 failed: Connection refused. 就是网络源被墙了,该死的CCP!% `. z' k3 s0 X9 n
- ]$ ^) {6 S# y9 } [ \
方法总比问题多, 习惯采用Google 英文搜索有好处! 此时当采用线上命令无法读取源安装时,只能下载 deb 文件包通过web 插件管理界面上传后安装。 下载文件参考:forum.openmediavault.org/index.php?thread/5549-omv-extras-org-plugin/
! b( n! z6 U/ \* I1 `
4 |* q* i9 A# K安装 DOCKER1 n- H' t7 @( h: C3 ~
完成插件 omv-extras 的安装是具备安装Docker的基础,而Docker容器又是作为安装流行的云应用 NextCloud 的基础,真是环环相扣啊…
" j; m8 j2 C: C* {. K: R6 H2 C$ U6 _1 r; ~ o6 w }5 u9 a
Docker 的安装相对简单,在安装完 omv-extras 后,通过左侧管理菜单 OMV-Extras 进入切换到 Docker 标签页直接安装即可。Portainer 作为一套轻量化的Docker 可视化工具也可以一并安装。% H- S- b4 Z% A) V
$ b/ n' x3 z8 Z安装完成之后可通过 yourdomain.com:9000 进入,比如: nas.sheshui.me:9000。初次登录需要设定管理密码,UID默认为admin。5 B5 a1 O/ q: l7 ~6 e4 I2 ]
9 m6 q5 I$ p7 ^# u: m9 h. N3 C m
安装 NEXTCLOUD
8 A' p0 o6 d& i, v经了解有人反馈 NextCloud 吃资源等各种不是(参考 淘汰Nextcloud,一行命令搭建功能强大的个人网盘FileRun FileRun |0 f. J: V0 A) Y7 s! ~: i& t
* s x$ Q+ K( T6 C: \% |! i如需坚持安装 NextCloud 可参考文章 OMV安装NextCloud, I0 S! D" k: X0 e* l6 n
0 V5 W5 W! I. A3 e( a/ z安装 FILERUN
% ?$ A8 N$ g6 c7 Y T4 }! K在OMV上还是需要依赖 Docker 容器安装方式,参考教程 FileRun installation using Docker
( Q, Y w3 ^1 ]; d! s( y1、拉取 FilesRun 镜像文件
% ~" V/ C9 K6 X
! S1 ]9 L- l) ndocker pull afian/filerun
- d6 P( P; s; ~) Q8 F2、创建配置文件5 k/ S+ f) O+ X7 c! D2 t$ u/ H
" P6 k) X1 s% H; _' h* C
version: '2'
" {! a8 ?9 `/ {7 E, t! b- y0 d4 F4 t% W# O& {$ p7 j6 A2 d
services:* r% l# n- K% }9 ~0 L. y; O
db:" `) D! _/ F0 l q3 A4 v
image: mariadb:10.18 q+ B( c9 l8 t2 `& N" \, C; w$ r
environment:
: X6 W2 U/ y/ l( h0 ]- E MYSQL_ROOT_PASSWORD: filerun h6 ~- O0 r6 S8 J7 B, V' n
MYSQL_USER: filerun
7 L/ P2 j; _* j MYSQL_PASSWORD: filerun, x) {) r: l9 R
MYSQL_DATABASE: filerun
W, k; c% k( K1 J7 X9 R volumes:
2 g1 N. o8 H9 \5 t; P3 p: G - /filerun/db:/var/lib/mysql
" Y+ A8 F, g* h# K
. p9 Y9 {' V/ r7 H web:) z7 j h& x' F) f
image: afian/filerun
% \/ C/ ]9 I r environment:+ g; P% e' _+ U$ J% h- O0 k
FR_DB_HOST: db8 S# l1 Z% m; G& K f; [( S8 g2 j. t
FR_DB_PORT: 33063 z" J, g. V. m6 s1 c' T8 `% i" j# W
FR_DB_NAME: filerun$ ]/ h0 @' r4 c
FR_DB_USER: filerun; s- `+ w. G3 J1 c
FR_DB_PASS: filerun& Q5 J, T6 U1 k! k1 q9 W! l
APACHE_RUN_USER: www-data
- a. s7 _# t+ h9 W( E6 t APACHE_RUN_USER_ID: 33+ O" Z2 v+ F$ h" c3 A8 z2 b0 r
APACHE_RUN_GROUP: www-data
7 G; y+ T! v: i- l$ s; _: } APACHE_RUN_GROUP_ID: 33+ W/ h3 U0 k* {! T1 ~
depends_on:' O0 x+ Y9 W! J! a9 r( j: E' E
- db8 h# F4 f. f* }) T2 u2 f
links:
5 A2 \+ ]/ b1 k - db:db
6 O/ A, K0 m! a7 y: T9 l$ E$ b ports:0 M# W% S( Y2 A- m0 K
- "3000:80"
. v" `1 f4 [ r& |4 L( G5 u" q5 B9 z volumes:- h$ t6 N1 d& c+ A, Y* C7 L
- /filerun/html:/var/www/html4 @8 f4 I; J4 z$ S
- /filerun/user-files:/user-files0 D2 y9 s8 _, T' ^# K% i
上述配置模板参考 docs.filerun.com/docker ,将使网站目录映射为/filerun/html,用户目录为/filerun/user-files,端口映射配置80:80,前为对外端口,后为容器端口。*此处要注意因对外80端口已在OMV web服务中占用,所以需自定义修改端口,如: - "3000:80" * 否则会因端口冲突出错。" \( \8 O; ^. h1 h( o
' b5 ^. I2 d" Y# Z8 l) X/ f
3、创建文件目录; f# y! K" v4 c+ `- q
/ @% v1 @/ k+ l& S5 P* C
mkdir /filerun /filerun/html /filerun/user-files+ i* k( T" p# `# j4 g
4、运行$ R3 M/ [+ B0 J% `$ n. n
. v* m+ F2 H! w- g/ d
docker-compose up -d
# W' l, d# s; s) X0 J- X运行过程中还会下载安装一些library,成功后会展示如下信息:3 Y" Y/ `9 L% b- J! T6 H
/ J+ N1 t4 i% O
Creating root_db_1 ... done
6 G4 R1 G3 c- [* P, }5 KRecreating root_web_1 ... done& A0 O; H% w/ {
通过web访问进入 htttp://yourdomain-localhost:3000, 默认登录:Username: superuser ; Password: superuser,首次登录后强制要求修改密码。
) y# ?$ q; `: x4 R1 N! J& D! G3 i, k/ G( p- J0 x
系统安装& _$ Z( G, u+ x) U
Openmediavault 对硬件要求较低,官网给出的信息如下:% g! n6 |) R% d B
" F# K# r' y( lCPU: Any x86-64 or ARM compatible processor% D: r* B: b5 u4 Y2 i
RAM: 1 GiB capacity
; I1 N) Z2 |5 L7 y9 P( dHDD:
, W7 n8 q; T7 K6 w8 v- @1 }System Drive: min. 4 GiB capacity (but more than the capacity of the RAM)
+ v c- Y9 J' G. hData Drive: capacity according to your needs4 J9 T' E, I9 ]2 F7 M
安装个人认为分两个阶段,一个是初始化安装可以通过web登录管理界面的阶段;第二个则是在此基础上安装各中容器插件或应用服务。
8 J: `9 ?; N9 f9 L- |: a! j
% F9 o$ B, p' E5 b6 ], H登录7 j4 A( _: I4 p, P/ w0 A& K$ f ]$ T1 F
登录分两种,一类是Web管理界面,默认登录信息如下:
/ l8 N& l3 G2 l1 t! u* e
' g$ B/ A. L- e. }UID:admin' V, @! o6 z, S; U! V
PWD:openmediavault
. R, K! v) O8 ~( D S& ^
1 R1 B2 e" m$ e0 W% y) H前提:已连接网线并配置IP后(WIFI不太好使,需连网线),通过浏览器登录查看。 V( W- A/ I. s' e# p8 B0 T" j
$ ^- S: L1 g4 |' C5 K# P K
查看IP的命令 ip addr,如果提示该命令不存在等情况,可试着先更新包:3 r- ?6 E. p8 M& a6 h' v8 g* F c
- Z, X$ F% b- x1 Xapt-get update
6 d5 k5 Y& w1 C! p) R4 Vapt-get upgrade0 n x `8 H _7 _* T
另一类是通过 Shell控制台 :UID:root ;PWD:「安装时设置的密码」
r, x9 e$ i/ I e5 G
3 a5 S \" d- a4 C5 u% P, p2 f' U安装或配置过程中如遇到问题,可通过命令 omv-firstaid 救急,这是一套配置菜单,可清晰的指引完成网络等配置信息。1 }+ l! z* p0 h* n, {$ m
* Y8 J$ _% s' i$ U& }) B2 X' @原则# z$ [! u) g" A) i, N: A
准确说几年前就有想法要整一套网络存储,适应家庭共享媒体或小工作室协作办公使用,在查阅了网络冠哟OMV的各种资料后确定以下搭建建议或原则:" R" W8 T% A$ ?" |& y
9 k7 Z `# k! B+ W7 }3 F/ q2 r- x
尽可能不采用虚拟机的方式,作为独立的服务应该享有独立的硬件资源;
0 `5 ~! L! U' R( q$ v+ Z' a+ p不采用树莓派的搭建方式,虽然官方有提供,但个人认为这属于玩家们捣腾的世界;2 v! q1 Y) ^9 A6 T! t3 {
索引
0 f2 \ z! |- e1 l# j. r4 [8 E9 rOPENMEDIAVAULT 常用命令
2 M8 C( K: p0 D" L8 D k) n. AOpenMediaVault 是基于 Debian 开发,所以熟悉 Linux 操作的前提下会很轻松。
2 l! u$ b' \8 i/ ~" N
) X! Q0 Q* f& i# Y. {0 L2 x% Somv-fistaid : 安装配置菜单引导;
2 W7 ]+ u6 V3 t& `7 @ }* y2 s
5 Q- p: s# [. B- Cip addr : 查看本机IP信息;
4 h4 _0 F8 |$ \) @+ N9 K4 r# S1 J, y3 K! L! J8 E
dpkg -l | grep openmediavault :检查当前系统版本( p: A/ i i( x6 m y R l
% m- Y' b1 U4 _% f& D+ Z
参考资料
) v& z0 `9 f& Z" ^5 A* x$ P. yOpenmediavault 官网
6 F) O/ l0 M/ L& K `0 g2 ?" W搭建 openmediavault NAS
+ `, R$ M {5 HGitHub 开发者插件列表- l, t6 \! c; U- v
FileRun Docs
) w+ c0 z7 I7 Z# l* R' l7 P5 Z常见问题
! p+ F6 S( `* W4 u K更换硬盘 无法创建共享文件夹的问题 |