现在都尼玛6.5了,0.几的版本就开始测试了,不稳定,不能生产使用。( N# s9 E) s. @: N
OpenMediaVault 经济高效的NAS解决方案 0 A% P. q- l1 A0 ~5 S, n% ~/ I
背景
$ s8 ?1 P' ^- N _捣腾一套网络存储即方便家庭媒体共享,也适应小工作室协同办公,这事不定期地琢磨有好几年了。+ o4 W) V; r9 n
; j9 H# l; e& ^! s. d! M
最开始了解了主流的网络存储方案,市面供应商包括群晖、威联通,也是自己之前关注过最多的两项,两者之中更偏向威联通,从软件界面来看更简单清爽。
3 f2 j6 O' ^% j6 K4 ~; c" p
, v* K$ k+ r6 i6 f( A8 Y: s$ M$ q而今,最终决定还是自己利用现有的闲置电脑已经购买的 世特力 硬盘盒来搭建,从经济上会节约很多,虽然 世特力 硬盘盒也不便宜,但相对于群晖、威联通等4~ 5盘位动则三四千的价位来说已经很经济了。
8 L6 J) M1 V: a' m3 ^! ?
4 N9 M3 ?0 X6 v4 H两年后的今天,重新捣腾采用Ubuntu Sever 20.04 + FlieRun 实现自己的个人网盘服务。 个人网盘搭建过程 FILERUN ——update 2022.04
3 w/ s8 @: l; m' `% j2 R
9 K) ?1 l0 k) G+ R方案
* y0 a- @# ]7 N- [0 k; Q1 d硬件! m n4 o& S- Z3 h3 }
网络上提供的安装硬件大致两类,一是现有操作系统搭载虚拟机;二是捣腾官网提供树莓派的玩家;个人查阅资料感觉还是采用闲置的独立电脑主机搭建,配置如下:' \+ e3 W/ z5 Z' {& N
m# V4 n8 e8 B$ Z3 Q u机型:戴尔(DELL)Vostro 270S-R136-JN 台式电脑(双核i3-3220 2G 500G DVD WIFI USB3.0)% m7 Y/ B2 p) r, c" d7 x
处理器:Intel® Core™ i3-3220 CPU @ 3.30GHz 3.30 GHz+ w! S+ v; }. K
内存:6.00 GB(5.88 GB usable): j H1 v) n* t- D" X
硬盘:WDC WD5000AAKX-75U67AA0 (500 GB)
. p# v# ~/ \; V% P; b8 l8 b该机器2013年4月14日购入,当时售价:¥3349.00
5 n3 |# Y( V/ a, y) o+ k7 }4 _
2 ` b- [9 i! B9 k: Y关于方案的选择性思考包括硬件、软件两方面,其中软件在最开始已经基本确定是 Openmediavault,而硬件方面出于需支持 磁盘阵列的部署,则经历了多次心路历程:( P" G$ W9 T. ^9 M2 k
$ j2 Z/ D2 ?( c, ]+ k1、通过2013年 Dell 台式机+ 世特力 硬盘盒来实现,但发现硬盘盒仅提供USB连接,外置连接方式可靠性不高;
. M: T+ _+ I6 ~# Y
5 b4 z* n& u. `3 N# U: t% c
8 m0 `7 V4 g1 E1 c, \$ x2、通过2002年的一台 Acer 台式机(大学时期购买的二手机)来实现,优点:机箱大盘位多;缺点:主板老,BIOS不支持USB引导启动, 功耗高且不静音;
; s' B& e, Q. K. A1 R/ }# r4 \. b$ P6 K
3、继续采用2013年 Dell 台式机完成,缺点:机箱太小缺少硬盘位,不具备扩展空间。琢磨后发现可以通过插入U盘作为系统盘,经过测试发现U盘读写速度很喳,试着安装几次系统后发现不管速度慢,且容易出错,稳定性极差。最终放弃,改用一块120G容量的2.5寸移动硬盘作为系统盘顺利安装,因为盘面体积较小顺便在机箱找个位置固定即可。0 p" Q5 }' j( S" U3 s8 ~! e0 \
) P- L/ Z0 @- j
最终方案,120G 2.5寸机械硬盘(系统盘) 、480G SSD、两块 3Tb 3.5寸机械硬盘作镜像存储(RAID 1模式),其中受机箱位影响,需要将现有的光驱位腾出来改作硬盘位,网上有改装工具:“光驱位转硬盘位”工具)/ A) J/ }& Z0 {/ _2 }
/ N: K/ k% z% y7 E" }$ g
分区方案5 U( D# ^) m7 q( m+ W( G
ZFS:基于成熟的Oracle技术,拥有最多的特性,集成RAID技术,应该是首选的方案。虽然因为协议问题没有在Debian的主库中,但是仍然可以使用。
7 }7 a( C4 u9 @- t% G" }5 eLVM2 + Linux RAID:基于Linux维护的软件与库,使用最多的方式。
. A7 K2 s: @) J9 z( D# J/ U# c# vMergerFS + SnapRAID:构建于底层分区体系上的方案,没有实际使用。
% m3 v/ s8 W9 p+ O+ E最初通过在OMV上安装ZFS插件,尝试使用ZFS,但是OMV对ZFS支持不佳,应该是设计缺陷,无法在ZFS分区上创建共享目录(Shared Folders),导致无法在GUI上方便使用,于是无奈弃用。。。0 M* [+ M! K# k1 A" q9 S
关于MergerFS + SnapRAID方案,因为是较新的方案,还未调研功能性与稳定性,不做评论。
b+ _. m3 V/ T) {: G. N最后的选择是使用最常见的LVM2 + Linux软RAID。" W, U& W6 m# U( y! _+ z
# A; v0 z) w* ~" k3 Q! V以上来源: via: mosrv.com/nas/2018/05/01/nas-build-and-config.html' ~3 @+ c* u. O% C _! G
4 G% r; o) c$ w# H- G2 v- u( U软件* q0 D7 p/ a$ _) a9 i. s
软件方面,最开始知道的是 FreeNAS ,后来发现 Openmediavault 才是最佳选择,原因参考网络的资料:6 n- |4 b: W, m0 e% H. n
9 a: w. C9 P! [, USynology DSM- g6 W( D% T, }, E! E1 d
8 r: u4 z- G* C3 c: D& G$ t" a1、相对臃肿,不够简洁;& h$ e/ x6 W/ I: g( X& X
2、每块磁盘上都会安装 DSM,包括存储安装的软件及其数据,导致用户存储和操作系统耦合,尤其是频繁的读写影响每块硬盘的休眠功能;& Z0 E: ]- |8 I' K& j: \
3、DIY 设备安装运行涉及版权,无法稳定升级版本;& n+ x( m: L: D+ b( ]1 a; @
. b* N' _2 L% Y- \7 {3 A9 K* s. JFreeNAS/ @* g' z& ~5 l* r# H
4 L2 B0 w4 Y6 N对硬件要求比较高,尤其是内存最低要求 8G,其未来的目标用户应该主要是企业。1 z$ q% L. @0 F- |: M* x5 e
8 Z4 M% u2 b1 g$ B/ nopenmediavault: N' A2 u3 Q$ m0 X# q/ e, J8 H" t
) l( |7 M' R; v8 q基于 Debian Linux,开源免费。openmediavault 的目标就是面向家庭和小型办公环境,是对熟悉 Linux 又追求最小化安装的人的首选。0 z3 M5 @; \' c7 P" c8 P' K
, C( k2 Y7 r) X: e$ b; P& j2 v注: 更多软件解决方案可参考 几个常见的 NAS 系统整理及选择
- s0 l8 v" Y6 ~! n* X; H6 O' \$ p. T$ O9 s. T
安装 OpenMdediaAvault7 ^0 G% U! v. R2 B
文件系统及挂载信息! [7 V/ o, k, Y% n, s9 [' c' X
! _; n8 g0 v4 l9 L
root@nas:/dev# df -h
$ V+ t3 z$ z4 y) x- r/ `2 @安装 OMV-EXTRAS
; g; {+ c; w7 d6 q在安装完OpenMediaVault 系统后,基本上完成了第一阶段的基础性功能服务,正常使用NAS问题已经不大。不过如果要根据自己的其他定制化需求,则可以考虑继续安装一些容器或插件。
3 N' ]0 K) |( Y5 l/ e. j+ {- A0 z, R& J
7 f4 [' \% M* M通过网上了解,最基本的容器就是Docker,也是最常用的。安装Docker之前需要安装 omv-extras,命令如下:
8 X5 O: y7 k$ k6 H1 k2 e. R8 v& F' L3 x B0 d, p* F$ u
* b% L- S r3 r$ Z e
wget -O - https://github.com/OpenMediaVaul ... /raw/master/install | bash
) t3 c8 _: f- b# }ref: https://github.com/OpenMediaVault-Plugin-Developers/installScript
) o4 P/ s* I. G3 k! D0 x
5 |* L8 k8 X+ `/ g6 x0 y6 ]7 m注: 如果显示什么 443 failed: Connection refused. 就是网络源被墙了,该死的CCP!
! J. b$ @7 r3 M R: `. k
9 ?7 d. j8 v: H0 o$ ?% k7 H方法总比问题多, 习惯采用Google 英文搜索有好处! 此时当采用线上命令无法读取源安装时,只能下载 deb 文件包通过web 插件管理界面上传后安装。 下载文件参考:forum.openmediavault.org/index.php?thread/5549-omv-extras-org-plugin/8 G( A ^+ @# R0 j3 G W* [3 D) w
/ J2 l, ~) I4 L! L! @安装 DOCKER& y3 J! s$ b; F
完成插件 omv-extras 的安装是具备安装Docker的基础,而Docker容器又是作为安装流行的云应用 NextCloud 的基础,真是环环相扣啊…
' H# p' f" T2 d9 \: ^9 @
; ]* C9 Y( L& }3 ` \Docker 的安装相对简单,在安装完 omv-extras 后,通过左侧管理菜单 OMV-Extras 进入切换到 Docker 标签页直接安装即可。Portainer 作为一套轻量化的Docker 可视化工具也可以一并安装。
+ [( K. f* l9 O+ }; Y
) s& J# m9 }- A安装完成之后可通过 yourdomain.com:9000 进入,比如: nas.sheshui.me:9000。初次登录需要设定管理密码,UID默认为admin。% ~6 Z/ n0 }+ v; q3 b* G0 l% [
# I- H; M, }9 }0 q+ _5 V: G* A
安装 NEXTCLOUD) V$ O- ]3 B# q2 V* w
经了解有人反馈 NextCloud 吃资源等各种不是(参考 淘汰Nextcloud,一行命令搭建功能强大的个人网盘FileRun FileRun2 I, ?% G4 _7 R* [" u- ~
3 A s) I+ r0 L9 Q* m& [! Y* b
如需坚持安装 NextCloud 可参考文章 OMV安装NextCloud
2 n. t" \! Z, {( T" A! F- {* i {* `
安装 FILERUN$ P! i6 |! H# k6 j- |; I! j+ e
在OMV上还是需要依赖 Docker 容器安装方式,参考教程 FileRun installation using Docker3 u" w+ g% i& x% e
1、拉取 FilesRun 镜像文件
Z" F" l6 c7 B: w A; E& M2 o8 n& q
docker pull afian/filerun1 C) y& u+ s# D7 T& g3 T4 i+ R4 b
2、创建配置文件# V% x, \; w L/ z6 J& O
( N7 \/ D) C& \9 p. Z% A
version: '2'
$ E5 s [( i& [6 k; T8 H) c) u
+ F; W5 g7 O4 ^: x; Pservices:
' G! W4 v8 r% N# y0 w3 k. B db:
) i. {) f- a( ?: V$ O, ~5 W6 L9 O image: mariadb:10.1
5 _# p G; m; A environment:* T, u8 L) H0 `1 z
MYSQL_ROOT_PASSWORD: filerun2 I; ^7 A% b. [
MYSQL_USER: filerun
5 Z( J( U' z8 `4 }+ R0 n2 r MYSQL_PASSWORD: filerun8 ?$ Q9 X. K5 D q
MYSQL_DATABASE: filerun
3 s9 c; T( t+ m7 p7 ~' l volumes:
6 |4 U% N0 _7 L# {6 @7 ~ - /filerun/db:/var/lib/mysql
5 A) E J/ k' }+ s2 P: u& v- y
2 g& G$ B, x. A* n, W. N web:( W% S* \; o% n* i% a( Q
image: afian/filerun: s5 c5 F1 G* t6 J2 S
environment:2 k z; V0 ^- X
FR_DB_HOST: db
* u# M* n M7 k# V& g0 Q FR_DB_PORT: 3306& H) @/ _$ Q& Z4 z
FR_DB_NAME: filerun
, u- X* n7 @% p5 A6 ^ FR_DB_USER: filerun0 Z3 j( S6 i' v7 X6 r2 g0 S+ G
FR_DB_PASS: filerun
~( Z+ K; Z5 j/ I APACHE_RUN_USER: www-data/ P+ t# D. j( `2 s1 B
APACHE_RUN_USER_ID: 33
# V" @9 d/ {; k. D APACHE_RUN_GROUP: www-data
) p& I# c7 g9 }& m APACHE_RUN_GROUP_ID: 33
D3 A* H3 } v% M depends_on:/ T6 e5 O- s/ s3 |5 ]' c2 v: a
- db
0 u5 [2 w5 n- J# W! u8 m; V links:
2 V. I. i4 r3 t) D* v- F - db:db
' X* i0 ~% r5 q) p% }3 r- _5 A ports:( `1 F* C5 @5 U" A4 v" p1 _- F
- "3000:80"4 E% B8 \0 ]: o c
volumes:
3 P" `& k, H: E$ n; Y5 b - /filerun/html:/var/www/html$ B% U3 `7 ?6 ^* r# R# L+ {+ ]
- /filerun/user-files:/user-files' z6 W# ~& \1 J" W
上述配置模板参考 docs.filerun.com/docker ,将使网站目录映射为/filerun/html,用户目录为/filerun/user-files,端口映射配置80:80,前为对外端口,后为容器端口。*此处要注意因对外80端口已在OMV web服务中占用,所以需自定义修改端口,如: - "3000:80" * 否则会因端口冲突出错。
. u3 ^; M% Q. n+ Q3 h* \1 K4 @& `( c. n7 d0 u
3、创建文件目录
2 j/ W7 f& S; u4 v9 g5 b8 J0 `3 m% `
mkdir /filerun /filerun/html /filerun/user-files
6 W1 }: m ~( [2 W( r4、运行
( W; v' {/ p6 {- Y
5 F7 Y+ X! Z0 |4 j* Ldocker-compose up -d
$ w4 v7 ^" Q3 G( j7 W# {1 \运行过程中还会下载安装一些library,成功后会展示如下信息:4 L3 t0 _( P2 i$ \8 D
. G3 R- G3 O- l6 r" YCreating root_db_1 ... done: Z3 J$ E2 _5 v
Recreating root_web_1 ... done
7 _/ F! D, E1 O, ~/ q通过web访问进入 htttp://yourdomain-localhost:3000, 默认登录:Username: superuser ; Password: superuser,首次登录后强制要求修改密码。1 O+ L" ^& F- b: Q
3 z2 C' h! K1 Y, P& s0 o
系统安装2 }' F, ~) C$ P5 {
Openmediavault 对硬件要求较低,官网给出的信息如下:
5 w1 @$ M6 D7 a& R( N/ ?" w+ `( ^
( y9 B, \" f. ECPU: Any x86-64 or ARM compatible processor5 u& r8 I) m+ x
RAM: 1 GiB capacity1 x$ P0 b: `6 J
HDD:
" c1 U+ Y ? ?# q1 `, ~" C1 CSystem Drive: min. 4 GiB capacity (but more than the capacity of the RAM)6 c7 s' h+ O* U+ Z0 m
Data Drive: capacity according to your needs
3 ]# [( E9 c, X C安装个人认为分两个阶段,一个是初始化安装可以通过web登录管理界面的阶段;第二个则是在此基础上安装各中容器插件或应用服务。
% ?0 U! }1 E& S- H% ]' L2 N/ j F% B6 Q/ q: y- a
登录. u" [" m5 h. _
登录分两种,一类是Web管理界面,默认登录信息如下:6 M3 D7 S% p( a
: ]4 |" r5 R3 f! W* r
UID:admin1 B$ d- @, Y; B }
PWD:openmediavault
7 q" L/ A* r5 t1 z
. [ |! k- O4 B- M% G/ [. C前提:已连接网线并配置IP后(WIFI不太好使,需连网线),通过浏览器登录查看。
* {1 S. [0 p! u t3 j, T4 N |; b/ d$ M# v" T2 [( _! @
查看IP的命令 ip addr,如果提示该命令不存在等情况,可试着先更新包:
' ?5 n1 m" J9 ~4 R+ c. J: F
9 s, {3 t, j F- c* [4 E. W* b" ?apt-get update
% H4 J: z* {+ G a$ H5 O+ \! papt-get upgrade
l+ a; X! j, M9 ] \' T另一类是通过 Shell控制台 :UID:root ;PWD:「安装时设置的密码」
# W. k( d% q% ~; \
2 G2 r! t+ t! y0 ~* p4 I9 h0 g3 `安装或配置过程中如遇到问题,可通过命令 omv-firstaid 救急,这是一套配置菜单,可清晰的指引完成网络等配置信息。: e) g# k) q4 q4 X! D
5 Z( z: y2 W9 P1 D; [7 T! ?: c+ j; @
原则8 R# ^& E2 N0 q# v. L$ O( b. |
准确说几年前就有想法要整一套网络存储,适应家庭共享媒体或小工作室协作办公使用,在查阅了网络冠哟OMV的各种资料后确定以下搭建建议或原则:) I" s! R5 n) r9 A+ K
8 Y7 W& [/ a5 L4 c8 [尽可能不采用虚拟机的方式,作为独立的服务应该享有独立的硬件资源;- i1 Y" ^: z: h) r \5 s5 D
不采用树莓派的搭建方式,虽然官方有提供,但个人认为这属于玩家们捣腾的世界;% i* v6 f+ F# f# G) P5 @
索引
$ y3 V3 L$ V# I2 W) {OPENMEDIAVAULT 常用命令; p: A; m) |6 S& [4 p5 K
OpenMediaVault 是基于 Debian 开发,所以熟悉 Linux 操作的前提下会很轻松。
# L% y, {' V8 x' ^8 r- Q C& B9 Z4 r/ M) O1 E7 W0 U! _
omv-fistaid : 安装配置菜单引导;
/ E& _* F* \! C6 e5 h, ]2 ]/ O* u) A* ?- `7 V2 ~
ip addr : 查看本机IP信息;
" J0 A. [" p# e, n- ?, F
- s7 J2 d u) s) B) odpkg -l | grep openmediavault :检查当前系统版本) h2 K- O) W l& j( y( e# V
8 y1 O, f0 x1 D* z
参考资料) Y }) B1 T! e+ U
Openmediavault 官网
7 n, ?: J6 F/ C5 ?, P搭建 openmediavault NAS
9 k0 w7 J5 y% O6 T& UGitHub 开发者插件列表3 ?' T$ I9 z$ g! @
FileRun Docs
7 ^' Q6 S8 _1 Z& D" T常见问题
% C3 b" O- ~4 F+ r2 F% x更换硬盘 无法创建共享文件夹的问题 |