现在都尼玛6.5了,0.几的版本就开始测试了,不稳定,不能生产使用。
0 N0 Q" M& F4 ^" m& d1 N8 AOpenMediaVault 经济高效的NAS解决方案 " @% ~1 H* w4 l* [3 A3 F
背景
/ ^+ U- t2 t6 J* w捣腾一套网络存储即方便家庭媒体共享,也适应小工作室协同办公,这事不定期地琢磨有好几年了。* |6 D; Y4 ~# Y8 t' t$ E" _& G% V
# C# r( L* h) R3 j/ i) C: {
最开始了解了主流的网络存储方案,市面供应商包括群晖、威联通,也是自己之前关注过最多的两项,两者之中更偏向威联通,从软件界面来看更简单清爽。' B7 {8 o, @ z! R( p: A! d3 c
) R" {7 d A4 s" v
而今,最终决定还是自己利用现有的闲置电脑已经购买的 世特力 硬盘盒来搭建,从经济上会节约很多,虽然 世特力 硬盘盒也不便宜,但相对于群晖、威联通等4~ 5盘位动则三四千的价位来说已经很经济了。
$ W4 _5 ^; h; }" |" r- g# w
+ V/ s: v) r0 f) L/ r2 P两年后的今天,重新捣腾采用Ubuntu Sever 20.04 + FlieRun 实现自己的个人网盘服务。 个人网盘搭建过程 FILERUN ——update 2022.04
. c8 d. y: \2 h* ]0 f
) x v' r; J- k! Q方案$ L# H) d% s1 \1 ^) A. J
硬件. d7 b( G/ G* S3 U {% w
网络上提供的安装硬件大致两类,一是现有操作系统搭载虚拟机;二是捣腾官网提供树莓派的玩家;个人查阅资料感觉还是采用闲置的独立电脑主机搭建,配置如下:
8 n, _: `+ {, C! t" |* w! x' r! @& |% o
机型:戴尔(DELL)Vostro 270S-R136-JN 台式电脑(双核i3-3220 2G 500G DVD WIFI USB3.0)2 P7 y( T( V3 i5 G( c
处理器:Intel® Core™ i3-3220 CPU @ 3.30GHz 3.30 GHz! I9 @( Q* s) v. d! J& V% s
内存:6.00 GB(5.88 GB usable)
2 A9 K' o7 U4 A3 c' v! a2 d硬盘:WDC WD5000AAKX-75U67AA0 (500 GB)
* f: Q( q$ w* @* l& K! e& m该机器2013年4月14日购入,当时售价:¥3349.00
( s8 a2 J: v" |* D7 U# }
6 q4 b: q6 e6 [关于方案的选择性思考包括硬件、软件两方面,其中软件在最开始已经基本确定是 Openmediavault,而硬件方面出于需支持 磁盘阵列的部署,则经历了多次心路历程:' t! f2 q8 @5 Y# ]2 q3 k8 {, y
6 Q- }9 J0 }8 \
1、通过2013年 Dell 台式机+ 世特力 硬盘盒来实现,但发现硬盘盒仅提供USB连接,外置连接方式可靠性不高;% u! q" P3 S, p$ h* i$ k0 Z
8 }1 ^1 L% w5 i: g, l+ [7 V9 L7 ~& m: s! k
2、通过2002年的一台 Acer 台式机(大学时期购买的二手机)来实现,优点:机箱大盘位多;缺点:主板老,BIOS不支持USB引导启动, 功耗高且不静音;2 F- C U. h( _& n: u
' l9 l+ _0 Q- u$ S3、继续采用2013年 Dell 台式机完成,缺点:机箱太小缺少硬盘位,不具备扩展空间。琢磨后发现可以通过插入U盘作为系统盘,经过测试发现U盘读写速度很喳,试着安装几次系统后发现不管速度慢,且容易出错,稳定性极差。最终放弃,改用一块120G容量的2.5寸移动硬盘作为系统盘顺利安装,因为盘面体积较小顺便在机箱找个位置固定即可。
. D; A1 ?; h* X. p* n% [; c7 l- m( z2 n) g$ z' {
最终方案,120G 2.5寸机械硬盘(系统盘) 、480G SSD、两块 3Tb 3.5寸机械硬盘作镜像存储(RAID 1模式),其中受机箱位影响,需要将现有的光驱位腾出来改作硬盘位,网上有改装工具:“光驱位转硬盘位”工具)
6 z1 \# l. g1 K) e7 A0 i, m
" L( _6 m( |! d- j分区方案
1 v) J$ ?3 F2 X" H( Z1 t+ c) d% fZFS:基于成熟的Oracle技术,拥有最多的特性,集成RAID技术,应该是首选的方案。虽然因为协议问题没有在Debian的主库中,但是仍然可以使用。
$ V: [# P/ f( G1 u% O" c- hLVM2 + Linux RAID:基于Linux维护的软件与库,使用最多的方式。5 j- b; M* }. O$ s$ w
MergerFS + SnapRAID:构建于底层分区体系上的方案,没有实际使用。
. x( K, c; s: ]' M最初通过在OMV上安装ZFS插件,尝试使用ZFS,但是OMV对ZFS支持不佳,应该是设计缺陷,无法在ZFS分区上创建共享目录(Shared Folders),导致无法在GUI上方便使用,于是无奈弃用。。。
" Z' A. S7 z4 ~9 B3 }! B关于MergerFS + SnapRAID方案,因为是较新的方案,还未调研功能性与稳定性,不做评论。5 S5 F# a! e# m- i
最后的选择是使用最常见的LVM2 + Linux软RAID。7 {. t* A- g2 N! v
3 ?4 d' P3 u3 q, Y6 w以上来源: via: mosrv.com/nas/2018/05/01/nas-build-and-config.html
- b. M$ J7 ~: |1 n7 y, i1 r# M/ l4 b+ P8 a+ y
软件1 J9 t; ]$ R: D8 o! H! @
软件方面,最开始知道的是 FreeNAS ,后来发现 Openmediavault 才是最佳选择,原因参考网络的资料:; R$ @- e: ?3 o4 b0 B5 }
A6 ^2 z3 F, Q5 u- Y
Synology DSM8 q [+ Z3 f3 ^/ s
$ m7 r$ B9 P% \2 s8 \9 G: o0 ?* T H1、相对臃肿,不够简洁;
2 v0 M4 a" P3 H. H! \2 f3 N0 t+ w2、每块磁盘上都会安装 DSM,包括存储安装的软件及其数据,导致用户存储和操作系统耦合,尤其是频繁的读写影响每块硬盘的休眠功能;( e6 m. q" f" o) V# P* G' p
3、DIY 设备安装运行涉及版权,无法稳定升级版本;$ @6 W4 C, v" u7 a7 |, \
# W# z ^$ B$ u0 O: gFreeNAS' a2 |1 _1 }' K, n+ \& V# h
* v- n& x) Z1 p( J对硬件要求比较高,尤其是内存最低要求 8G,其未来的目标用户应该主要是企业。% R3 h: q5 q6 I/ y& F6 M; w
- H; _7 ~& H: q2 v" {! ^& {openmediavault
[$ [! q2 h/ K+ W% e
) z0 }0 d6 y/ B1 M6 k基于 Debian Linux,开源免费。openmediavault 的目标就是面向家庭和小型办公环境,是对熟悉 Linux 又追求最小化安装的人的首选。
9 m) U0 m' z. l) I6 m: F7 K, q& ]9 z% N' h# L5 f" F* l
注: 更多软件解决方案可参考 几个常见的 NAS 系统整理及选择0 K) y, N4 z; {! `$ J' N9 e! c
8 h9 @2 ~2 d0 v' e6 O) Z
安装 OpenMdediaAvault
! S# r1 [5 j: h1 y) e9 z. z6 V文件系统及挂载信息
Y' m. M1 s! ^" f' _: ?9 c
0 \7 E& m! B8 xroot@nas:/dev# df -h0 K0 ]9 O$ a) e6 z7 ^& a7 T
安装 OMV-EXTRAS
* Z8 u- _1 E" L7 L4 ~在安装完OpenMediaVault 系统后,基本上完成了第一阶段的基础性功能服务,正常使用NAS问题已经不大。不过如果要根据自己的其他定制化需求,则可以考虑继续安装一些容器或插件。2 y5 V3 l' E. ]7 y; H
: b0 f; w8 i8 y7 l& R' P9 F" ~
通过网上了解,最基本的容器就是Docker,也是最常用的。安装Docker之前需要安装 omv-extras,命令如下:
( |" t; b) ]3 s
/ S2 F; w% a r! W# h! j8 [; q% x& q0 [+ q3 R
wget -O - https://github.com/OpenMediaVaul ... /raw/master/install | bash6 w5 l; ]- p* Q/ D, ?7 w6 E# L
ref: https://github.com/OpenMediaVault-Plugin-Developers/installScript
) D; m3 o/ f p7 S6 g% S& A2 S! }: C+ c: A
注: 如果显示什么 443 failed: Connection refused. 就是网络源被墙了,该死的CCP!
8 Y% o' v! x! ^* K. V, M% y1 ^4 e" n- T
方法总比问题多, 习惯采用Google 英文搜索有好处! 此时当采用线上命令无法读取源安装时,只能下载 deb 文件包通过web 插件管理界面上传后安装。 下载文件参考:forum.openmediavault.org/index.php?thread/5549-omv-extras-org-plugin/
; y. n! x, b9 R( ~* _
9 i# h, \, V! y8 F安装 DOCKER1 @; l: u8 {& W$ R1 j7 E
完成插件 omv-extras 的安装是具备安装Docker的基础,而Docker容器又是作为安装流行的云应用 NextCloud 的基础,真是环环相扣啊…) X) G% l; o6 G3 V! B. f) ?4 p
+ w+ o) e9 U- {; v9 l' zDocker 的安装相对简单,在安装完 omv-extras 后,通过左侧管理菜单 OMV-Extras 进入切换到 Docker 标签页直接安装即可。Portainer 作为一套轻量化的Docker 可视化工具也可以一并安装。% f6 R# W7 G& g
5 b- W2 E! x5 Z, ?0 g1 ^5 X安装完成之后可通过 yourdomain.com:9000 进入,比如: nas.sheshui.me:9000。初次登录需要设定管理密码,UID默认为admin。) d" s3 T& D$ p6 r$ Z
0 x7 \8 F4 n% @. D+ f- m# r* a' x安装 NEXTCLOUD
0 Z9 n+ _# q- v$ c6 _: b( S. q9 m经了解有人反馈 NextCloud 吃资源等各种不是(参考 淘汰Nextcloud,一行命令搭建功能强大的个人网盘FileRun FileRun/ ]$ L/ I6 P8 R
* b/ Z/ x4 |7 L: z" E* A如需坚持安装 NextCloud 可参考文章 OMV安装NextCloud( e: L6 O0 ~5 G* Y2 p$ X; t; Y( F: z
K- y; Q+ M# |; b) h' p
安装 FILERUN
8 I3 ?4 U# r% `$ H$ O5 `# z# W9 V在OMV上还是需要依赖 Docker 容器安装方式,参考教程 FileRun installation using Docker
& k( L/ f4 @3 r$ }1、拉取 FilesRun 镜像文件
/ l7 a/ ^+ ] @ e1 O
# I- o( @( E$ y2 ?9 `docker pull afian/filerun* F7 N4 o+ a r8 z7 I8 _
2、创建配置文件) Z& _: c- T: z& q5 ?
& ?8 c8 F, Q; \+ B; r" } X5 o+ A% }$ e
version: '2'
8 `8 [. I" W! P' E# N- u) b3 m/ g8 M2 }7 w, {" h1 g
services:, n' i" f# d* z q; }; m/ D
db:: I0 i4 b% z) O5 ~6 l% S$ {
image: mariadb:10.1 ]6 m- m5 \* B5 {- ?
environment:- L7 K0 L3 ~+ l' ~+ A
MYSQL_ROOT_PASSWORD: filerun" T9 m1 f& K( @5 m) P8 V, x K
MYSQL_USER: filerun' f n6 D3 Z1 @4 _! G V1 _
MYSQL_PASSWORD: filerun3 Z, n' h1 _- A, @! |' E5 n, y
MYSQL_DATABASE: filerun# r* F2 Z n- e4 \; P# T2 ]% p
volumes:3 z9 Q" w3 K1 z6 D ^$ Z
- /filerun/db:/var/lib/mysql1 j- \( S+ m% x0 r2 ^1 Z
; p$ n2 Z7 \; N4 k$ m) ?/ Z+ k web:9 u* j" z+ D& A, A$ R- w* H
image: afian/filerun; e8 O' Y e6 X. x7 b( Z
environment:
8 p( ] q/ F$ t4 e! C$ y, s FR_DB_HOST: db# z* H2 h/ u) M
FR_DB_PORT: 33066 Q, E- t& }! l2 p s
FR_DB_NAME: filerun
$ u8 b' S. E w! c% M2 H FR_DB_USER: filerun5 n ]6 t6 r. y: |6 U3 m
FR_DB_PASS: filerun, }/ d8 B# r$ y
APACHE_RUN_USER: www-data; \+ O9 A; s' @: t J5 ~ y
APACHE_RUN_USER_ID: 33* b5 T" B* x; e0 H
APACHE_RUN_GROUP: www-data
2 D5 f8 N, x) N/ L/ [. A, C APACHE_RUN_GROUP_ID: 33+ H5 u3 i& C C2 i
depends_on:3 w8 U$ y4 R# L9 E2 r2 i& V
- db( C( Q- H0 D. b2 H: `
links:
9 u, m8 y' g X' L2 z0 ` - db:db3 b$ y, S0 U2 ?8 p# W) ]! ]/ m0 Q- ~
ports:
* s" M7 i5 \, p/ h6 |# z! t: u% p/ F - "3000:80": v- h$ {$ u L4 n. X. {
volumes:; d1 V3 @: X6 q2 I9 t& v
- /filerun/html:/var/www/html
) e$ x# K- F8 s! @ - /filerun/user-files:/user-files
. l* \, x. l$ _3 \上述配置模板参考 docs.filerun.com/docker ,将使网站目录映射为/filerun/html,用户目录为/filerun/user-files,端口映射配置80:80,前为对外端口,后为容器端口。*此处要注意因对外80端口已在OMV web服务中占用,所以需自定义修改端口,如: - "3000:80" * 否则会因端口冲突出错。5 k7 e4 c+ d) f% n% A: A- E
; V8 `1 A- V2 x* m. R3、创建文件目录. M) S5 h1 b* r/ p6 m0 D
' p( y, _. W: _( gmkdir /filerun /filerun/html /filerun/user-files
0 y$ e9 [# |# w4 s4、运行: _% {; n# N4 k2 K. p* q
8 b- y" K3 |1 O' i+ H6 j. {docker-compose up -d) C) u& u. i6 G
运行过程中还会下载安装一些library,成功后会展示如下信息:$ Z/ [2 Z( k3 T% G% }/ b9 w/ x o
+ {- a6 [/ ^! ^- rCreating root_db_1 ... done3 K. y* B/ e0 c* F
Recreating root_web_1 ... done
% S9 k8 K' p( x0 A, s通过web访问进入 htttp://yourdomain-localhost:3000, 默认登录:Username: superuser ; Password: superuser,首次登录后强制要求修改密码。5 W! w7 h, v) M" S! A9 Q: P3 W
' r+ S) N9 J; K: z1 \- l2 b
系统安装
9 _+ S- z1 ?- iOpenmediavault 对硬件要求较低,官网给出的信息如下:* W* ^4 S$ O V% \% A$ T
/ D( F* Z; {; |) q& W8 D, |! bCPU: Any x86-64 or ARM compatible processor
1 p/ s& T2 A% x- h& IRAM: 1 GiB capacity
$ x( e" A9 W( Z6 J* d* E* NHDD:
, k8 ~9 ?; e8 WSystem Drive: min. 4 GiB capacity (but more than the capacity of the RAM)% x8 k& y6 L# H; z) ]% Q
Data Drive: capacity according to your needs6 g$ q8 |$ k% P S
安装个人认为分两个阶段,一个是初始化安装可以通过web登录管理界面的阶段;第二个则是在此基础上安装各中容器插件或应用服务。
7 S4 M$ U. c x! o
/ F9 `3 J$ |& |5 _+ {+ N3 \0 W; m登录; l+ I) M: {3 L- w2 R4 {
登录分两种,一类是Web管理界面,默认登录信息如下:! w! V( f9 N' Z. z8 ?" n& f
& G o, N6 R. X
UID:admin
2 i2 Q$ S, ]& r& vPWD:openmediavault
$ q3 [, u* o$ `8 j! |: \; ], L; e
, [* r+ A+ X: {" {0 t" O8 b7 `前提:已连接网线并配置IP后(WIFI不太好使,需连网线),通过浏览器登录查看。
: m3 Y) P& V. M' W& v. H" ?) y5 i) }# w
查看IP的命令 ip addr,如果提示该命令不存在等情况,可试着先更新包:- e7 D* S' h' Z2 K, z6 P0 U9 H
) h1 A* d- X" A. S
apt-get update
6 V# g |9 e- ?) f1 W2 |7 japt-get upgrade
5 e1 j0 s% P2 P. `" Y \* t另一类是通过 Shell控制台 :UID:root ;PWD:「安装时设置的密码」3 x' e+ q; T8 c1 s1 Z' j
) l, X: `. @5 q9 c- {* }安装或配置过程中如遇到问题,可通过命令 omv-firstaid 救急,这是一套配置菜单,可清晰的指引完成网络等配置信息。
" m7 S) ?% \2 G7 ^& b, C7 b4 ~: Y, j- w
原则6 k0 ?+ l) o9 ^4 _" H7 `
准确说几年前就有想法要整一套网络存储,适应家庭共享媒体或小工作室协作办公使用,在查阅了网络冠哟OMV的各种资料后确定以下搭建建议或原则:
' Y' h$ g% g t& T2 T/ n+ u: W& D! d% H D/ Q4 m
尽可能不采用虚拟机的方式,作为独立的服务应该享有独立的硬件资源;
" ^# Y, P6 K; m8 Q不采用树莓派的搭建方式,虽然官方有提供,但个人认为这属于玩家们捣腾的世界;
& T7 u6 U% ^" x' ?% k0 |索引8 F7 {4 q" ~. _3 @- m
OPENMEDIAVAULT 常用命令
& F1 l7 J, R. n) p/ kOpenMediaVault 是基于 Debian 开发,所以熟悉 Linux 操作的前提下会很轻松。
3 x( m- Y9 w2 r8 k
9 d* x6 {6 }$ `7 B* vomv-fistaid : 安装配置菜单引导;: S( f8 n0 N, X" E" h
. Y& q) f2 }: {2 ]ip addr : 查看本机IP信息; q7 l* e# U1 J
: D+ ]1 k% E; a
dpkg -l | grep openmediavault :检查当前系统版本9 c% I5 K) J5 k( x$ r3 R
) P+ L7 U0 r( c2 E/ }参考资料" T1 w) _5 k D! e
Openmediavault 官网1 h& Q: q3 H! q( B
搭建 openmediavault NAS* E9 F( u+ t" X) |# C
GitHub 开发者插件列表; P# c) {: z0 h1 Y3 g V
FileRun Docs% r, u. P/ X3 k- P
常见问题, [1 s; E9 _4 t2 `& Z- N. [
更换硬盘 无法创建共享文件夹的问题 |