现在都尼玛6.5了,0.几的版本就开始测试了,不稳定,不能生产使用。8 R' _$ j1 U2 z0 C/ N
OpenMediaVault 经济高效的NAS解决方案 4 |1 p4 i/ ~9 q( k }3 R* p. P6 y
背景
6 c9 ]- P! `" l6 [; z捣腾一套网络存储即方便家庭媒体共享,也适应小工作室协同办公,这事不定期地琢磨有好几年了。
]- I+ T/ b% r# q/ T( u: H E; n$ X( ^, K
最开始了解了主流的网络存储方案,市面供应商包括群晖、威联通,也是自己之前关注过最多的两项,两者之中更偏向威联通,从软件界面来看更简单清爽。
1 b$ h- C7 C# }- p/ g
5 D; {# ^. U' x" {而今,最终决定还是自己利用现有的闲置电脑已经购买的 世特力 硬盘盒来搭建,从经济上会节约很多,虽然 世特力 硬盘盒也不便宜,但相对于群晖、威联通等4~ 5盘位动则三四千的价位来说已经很经济了。
; q" C6 S# h1 V2 P7 I* n# X, h5 G. I
两年后的今天,重新捣腾采用Ubuntu Sever 20.04 + FlieRun 实现自己的个人网盘服务。 个人网盘搭建过程 FILERUN ——update 2022.04
5 b' j7 n3 B0 \ e( f
# l1 X: ~# f* b* W0 I方案1 [4 J0 q) D0 |; O# o) }9 G) J$ V
硬件4 s& ]! _; T- R) ?8 b# B: I" s
网络上提供的安装硬件大致两类,一是现有操作系统搭载虚拟机;二是捣腾官网提供树莓派的玩家;个人查阅资料感觉还是采用闲置的独立电脑主机搭建,配置如下:, ]$ W8 l1 R* { l
5 U9 H% N- k8 E机型:戴尔(DELL)Vostro 270S-R136-JN 台式电脑(双核i3-3220 2G 500G DVD WIFI USB3.0)
; {: r! P+ F' {) f5 X" Z Y处理器:Intel® Core™ i3-3220 CPU @ 3.30GHz 3.30 GHz
. i! V4 p9 u* S& \, J f内存:6.00 GB(5.88 GB usable)
" a+ x2 L1 t2 s2 {9 c {8 ^硬盘:WDC WD5000AAKX-75U67AA0 (500 GB)
7 w% j3 i4 P# {. t! g* b5 X$ C该机器2013年4月14日购入,当时售价:¥3349.000 l$ ?; w: x% [
* A: y8 X6 U* z关于方案的选择性思考包括硬件、软件两方面,其中软件在最开始已经基本确定是 Openmediavault,而硬件方面出于需支持 磁盘阵列的部署,则经历了多次心路历程:) m7 v2 ~4 K" d- C# p
' r0 K- b3 `1 n1、通过2013年 Dell 台式机+ 世特力 硬盘盒来实现,但发现硬盘盒仅提供USB连接,外置连接方式可靠性不高;
6 e# q( g1 @! a0 D; \ b( _6 f) j& O6 s" y
) k% q6 `* e9 \4 N! l) E; y2、通过2002年的一台 Acer 台式机(大学时期购买的二手机)来实现,优点:机箱大盘位多;缺点:主板老,BIOS不支持USB引导启动, 功耗高且不静音;
. u* e, B3 N' ?! S0 n( B* y! ~3 b: u3 \
& N# T* v8 i% I# S: l& h* e3、继续采用2013年 Dell 台式机完成,缺点:机箱太小缺少硬盘位,不具备扩展空间。琢磨后发现可以通过插入U盘作为系统盘,经过测试发现U盘读写速度很喳,试着安装几次系统后发现不管速度慢,且容易出错,稳定性极差。最终放弃,改用一块120G容量的2.5寸移动硬盘作为系统盘顺利安装,因为盘面体积较小顺便在机箱找个位置固定即可。9 O6 U3 a+ Q3 {; G( c
$ C6 e( G+ e& F% h ?: _最终方案,120G 2.5寸机械硬盘(系统盘) 、480G SSD、两块 3Tb 3.5寸机械硬盘作镜像存储(RAID 1模式),其中受机箱位影响,需要将现有的光驱位腾出来改作硬盘位,网上有改装工具:“光驱位转硬盘位”工具)
" w# j3 r) m% s3 y2 D2 E, W7 h2 l' u [
分区方案$ d6 {1 E$ w) e z* A
ZFS:基于成熟的Oracle技术,拥有最多的特性,集成RAID技术,应该是首选的方案。虽然因为协议问题没有在Debian的主库中,但是仍然可以使用。4 M. n2 I$ C k) ?% |$ j4 i; J
LVM2 + Linux RAID:基于Linux维护的软件与库,使用最多的方式。
; C" T! _0 y, L% ]3 uMergerFS + SnapRAID:构建于底层分区体系上的方案,没有实际使用。
, L% H8 z' A' o K最初通过在OMV上安装ZFS插件,尝试使用ZFS,但是OMV对ZFS支持不佳,应该是设计缺陷,无法在ZFS分区上创建共享目录(Shared Folders),导致无法在GUI上方便使用,于是无奈弃用。。。4 I3 T! N, b, g- m L% x: }8 T) v$ F$ T, v4 h
关于MergerFS + SnapRAID方案,因为是较新的方案,还未调研功能性与稳定性,不做评论。! w5 e% X% B0 h
最后的选择是使用最常见的LVM2 + Linux软RAID。
% F+ H; x1 t! r! r4 x1 Q8 y- \7 r ^! e# a+ N
以上来源: via: mosrv.com/nas/2018/05/01/nas-build-and-config.html
8 ?/ M% P# [5 [0 \# b: u9 s V, c4 k0 i/ ]7 A$ z+ B
软件
9 [1 B7 r# i% e' u; U7 f! O9 f软件方面,最开始知道的是 FreeNAS ,后来发现 Openmediavault 才是最佳选择,原因参考网络的资料:% W+ h' S! |; k8 W; ]3 F6 z2 d' g
& m0 ~% a* S, h i2 i2 QSynology DSM
- a+ t$ B/ ]: B
! a/ m: k8 f* C1、相对臃肿,不够简洁;
6 \ M2 Q4 p% T9 _. _2、每块磁盘上都会安装 DSM,包括存储安装的软件及其数据,导致用户存储和操作系统耦合,尤其是频繁的读写影响每块硬盘的休眠功能;
6 u$ v' t; M* O: `# X1 o3、DIY 设备安装运行涉及版权,无法稳定升级版本;
" b/ m6 J/ }+ Z( y3 Q6 g' }
# e$ }' N* _& `" N. {: t8 @FreeNAS
, Q3 g9 z7 c! v! f2 V8 N8 H! e' n9 L: a0 [' l: e
对硬件要求比较高,尤其是内存最低要求 8G,其未来的目标用户应该主要是企业。2 K7 {9 v Q% R& k! ]! y# S
5 r: d" N* a, C
openmediavault$ e* N$ ?$ H+ W6 I* P5 i/ |/ ]
, ]7 d I# ?& P F
基于 Debian Linux,开源免费。openmediavault 的目标就是面向家庭和小型办公环境,是对熟悉 Linux 又追求最小化安装的人的首选。% T% B: `# L3 s& w. w
# G8 I4 l/ r* z2 H
注: 更多软件解决方案可参考 几个常见的 NAS 系统整理及选择
2 i: M! p' k& A; f+ [0 ~* w! d, b' A; H) J% R; R2 z
安装 OpenMdediaAvault3 T, b+ D2 T7 R6 Q, ?+ h0 _0 k
文件系统及挂载信息
" K/ E- l, _+ \' ?8 [3 L/ O/ T5 I/ G9 P
root@nas:/dev# df -h% x Q4 b6 j! t7 S2 W' w8 o Q
安装 OMV-EXTRAS+ ]. F5 B, n8 o N0 o9 `) u
在安装完OpenMediaVault 系统后,基本上完成了第一阶段的基础性功能服务,正常使用NAS问题已经不大。不过如果要根据自己的其他定制化需求,则可以考虑继续安装一些容器或插件。
: E7 V3 ?/ e. p! q2 L* ^$ B+ d2 `! N5 L, m |1 Y, e
通过网上了解,最基本的容器就是Docker,也是最常用的。安装Docker之前需要安装 omv-extras,命令如下:: P! r8 O5 N X
, z& k0 _7 x/ B* D8 }7 t
- Q+ _( B3 ], h8 n: }% M3 M
wget -O - https://github.com/OpenMediaVaul ... /raw/master/install | bash$ x+ B& R8 u1 i( f% E0 b" |
ref: https://github.com/OpenMediaVault-Plugin-Developers/installScript
% x* k I/ a# h3 ? |# B" ]- z5 t& ]3 O& J4 K+ ?8 c8 K. @
注: 如果显示什么 443 failed: Connection refused. 就是网络源被墙了,该死的CCP!/ X: s3 T: ~" d8 c: Q4 T
6 l4 P, J& r% N5 I, W& u" K9 u
方法总比问题多, 习惯采用Google 英文搜索有好处! 此时当采用线上命令无法读取源安装时,只能下载 deb 文件包通过web 插件管理界面上传后安装。 下载文件参考:forum.openmediavault.org/index.php?thread/5549-omv-extras-org-plugin/
: A2 u7 ^4 O( z- n3 @3 M7 A4 {6 r; I3 |0 L1 `2 v/ b; E, N
安装 DOCKER
7 m& y) F* j. }/ S9 N6 c, V& {完成插件 omv-extras 的安装是具备安装Docker的基础,而Docker容器又是作为安装流行的云应用 NextCloud 的基础,真是环环相扣啊…+ {5 ]" P0 E" B- Z: p8 Y5 D
- t& ^7 D/ [, }
Docker 的安装相对简单,在安装完 omv-extras 后,通过左侧管理菜单 OMV-Extras 进入切换到 Docker 标签页直接安装即可。Portainer 作为一套轻量化的Docker 可视化工具也可以一并安装。
2 H! R+ W! s1 |" ?/ l1 d3 d4 _* N1 P. U1 p" S4 {9 [% }2 j
安装完成之后可通过 yourdomain.com:9000 进入,比如: nas.sheshui.me:9000。初次登录需要设定管理密码,UID默认为admin。
8 ^! ^/ p) Q! U% h V: z/ N
# g, a# ]( I' P安装 NEXTCLOUD1 }, f9 A5 ~! B" }
经了解有人反馈 NextCloud 吃资源等各种不是(参考 淘汰Nextcloud,一行命令搭建功能强大的个人网盘FileRun FileRun2 {( L7 I9 D" T7 e" I
6 X& ^) f% V! i. J
如需坚持安装 NextCloud 可参考文章 OMV安装NextCloud
3 o5 q3 X% U0 k& c- o% u0 ~
9 G9 U7 ^ a0 k" v* P' q( `) Q1 c: `安装 FILERUN/ t" M! s0 d2 Y: d
在OMV上还是需要依赖 Docker 容器安装方式,参考教程 FileRun installation using Docker
* `$ G5 N" P3 I; u3 \1、拉取 FilesRun 镜像文件, u8 d$ v. c) X* K1 k. p
9 o: [6 s/ T5 x. v( X: p; odocker pull afian/filerun
- l X& o* H5 W8 ?, a' U4 v1 d2、创建配置文件
6 b& _7 P+ h' H8 U4 O7 G
# B- \. n7 J; }" pversion: '2'
( c- n. |$ D" C& Q* T
0 w7 }# ? [# Mservices:
% g# u- C1 G1 [; o% d db:2 `" H' L0 l- T3 t5 z N! k3 f4 @
image: mariadb:10.1
0 P9 |1 \# N% d/ f8 k environment:
6 ]0 Y+ m* Z9 R8 U+ n* v1 I8 l- z MYSQL_ROOT_PASSWORD: filerun6 W2 X* H$ D, f+ H) e6 q$ G
MYSQL_USER: filerun
' }9 h; _2 x0 q2 c MYSQL_PASSWORD: filerun8 A& y, D' \; x- w5 t
MYSQL_DATABASE: filerun
3 [6 \$ W( s4 m q- m7 S volumes:
7 g2 b \& h, N0 s' h - /filerun/db:/var/lib/mysql/ C5 n8 W- r, Z; }
; r Z5 _; h3 f' g8 m# `# R9 w; U
web:2 I" ?- S% f4 r9 w5 T, z
image: afian/filerun! A. O' R( X; u* b; r J8 B2 E
environment:
! `% x1 N- ?, E) I FR_DB_HOST: db3 Y: _6 f: O% ~0 U/ `& o
FR_DB_PORT: 3306$ r6 z! Z: `$ z5 B& M
FR_DB_NAME: filerun) [+ w; |' ~/ v) n+ \# T7 E( f1 d# {
FR_DB_USER: filerun& R+ S2 p+ q* z8 m: c( e& b
FR_DB_PASS: filerun
5 h2 c! l- a4 ^ APACHE_RUN_USER: www-data
$ [( c* Q: U5 G# F* d6 I5 F APACHE_RUN_USER_ID: 339 [0 W- d( e1 a9 V. z4 ^" |! t3 U
APACHE_RUN_GROUP: www-data
; L) J( j, R: L4 W2 @! o APACHE_RUN_GROUP_ID: 33
j) Z9 ~) Y" W0 F depends_on:* |( ]! r: X3 \
- db
2 _- o: u7 E" w+ P links:
3 \" S2 w( g1 `# K$ F, O - db:db
$ t1 Z9 g" a5 s) I ports:4 a, |0 {9 n# X7 ~; @' H9 ]
- "3000:80"7 X$ u8 v3 |. n% n& M
volumes:
% D# N5 V1 F" Y2 c5 [' g* n - /filerun/html:/var/www/html: \: B8 Z, g: k+ L+ Y( y7 a6 L
- /filerun/user-files:/user-files
# A1 T6 @2 ]) n9 D上述配置模板参考 docs.filerun.com/docker ,将使网站目录映射为/filerun/html,用户目录为/filerun/user-files,端口映射配置80:80,前为对外端口,后为容器端口。*此处要注意因对外80端口已在OMV web服务中占用,所以需自定义修改端口,如: - "3000:80" * 否则会因端口冲突出错。
# i+ n y9 m; w4 x4 E8 N& e% J. d5 W
3、创建文件目录
, U; n& {2 ]' u \6 {- N* S" w
8 o# `( U/ w- T3 M2 hmkdir /filerun /filerun/html /filerun/user-files
3 _$ O+ u6 [, S7 t' T4、运行6 ?1 ]# l) g+ F/ }
" }- m8 ~6 R0 O" {8 J! J
docker-compose up -d2 X" ~0 c* H2 l% t
运行过程中还会下载安装一些library,成功后会展示如下信息:6 Y2 g' ~' G! J& @% U
! O) w. x9 G( JCreating root_db_1 ... done
1 A6 _+ l0 k; Y2 iRecreating root_web_1 ... done
( @& j" V/ m F3 |9 ~9 ?6 n9 u通过web访问进入 htttp://yourdomain-localhost:3000, 默认登录:Username: superuser ; Password: superuser,首次登录后强制要求修改密码。8 H0 @5 t0 C! ~
0 f4 t% N, S( I5 ~" d6 F7 n
系统安装
5 `; }0 i0 Q3 L! P6 R$ Z: [Openmediavault 对硬件要求较低,官网给出的信息如下:; K% ~2 E9 A+ @7 r4 A* w
" f, L# M5 u& f, c
CPU: Any x86-64 or ARM compatible processor
1 X( Y! [$ ]" m' P+ TRAM: 1 GiB capacity
. f0 k) `% L3 G. C+ KHDD:* J8 `2 C& b; b! B" X7 u0 ?' v/ r, F
System Drive: min. 4 GiB capacity (but more than the capacity of the RAM)
2 V+ W; j1 q9 {! XData Drive: capacity according to your needs! i$ k2 k6 f; `
安装个人认为分两个阶段,一个是初始化安装可以通过web登录管理界面的阶段;第二个则是在此基础上安装各中容器插件或应用服务。
. F& F! V) ]2 B% u0 R( J! X# o) K {" a! Y8 F
登录
% a% Z! F# ^6 Q4 y% |登录分两种,一类是Web管理界面,默认登录信息如下:
2 P. _, @2 a0 I8 G0 j
* t) z2 h; o4 m) Z* {" rUID:admin
( O. @) Y3 @3 F2 B8 j/ GPWD:openmediavault
0 v8 g6 [: ] x% Z' f3 x2 _+ f1 b- A, p
前提:已连接网线并配置IP后(WIFI不太好使,需连网线),通过浏览器登录查看。
. ^/ M5 R* G- @: y, f! z5 j: d2 l$ ]3 z3 ~% L7 @7 y9 L4 b
查看IP的命令 ip addr,如果提示该命令不存在等情况,可试着先更新包:
& J6 f; Y1 ?( i: k5 N0 s* N- g% d
- ~ D4 G' ?0 {# \apt-get update
$ s- [) p4 o# ]" j/ a" ^7 c+ japt-get upgrade3 O3 j# f* h& x$ o6 x
另一类是通过 Shell控制台 :UID:root ;PWD:「安装时设置的密码」 l8 j# |, A! \5 O7 T0 B' |! T% G+ J
+ q3 }5 l7 X7 x ]6 B5 {2 u, j安装或配置过程中如遇到问题,可通过命令 omv-firstaid 救急,这是一套配置菜单,可清晰的指引完成网络等配置信息。, B4 d% X8 l. o- X: p5 ]- M
1 `% D) m* _/ Q0 M原则* X2 R9 \, C# x3 C4 v
准确说几年前就有想法要整一套网络存储,适应家庭共享媒体或小工作室协作办公使用,在查阅了网络冠哟OMV的各种资料后确定以下搭建建议或原则:) H: b, d; H6 B* B% Y- f2 N7 [& ~
2 X( z: a7 m' H. X" R尽可能不采用虚拟机的方式,作为独立的服务应该享有独立的硬件资源;: U" i) n7 w N1 g
不采用树莓派的搭建方式,虽然官方有提供,但个人认为这属于玩家们捣腾的世界;( A9 [* J1 B! Y6 Q
索引: r. J2 O* A& m' ]% D g/ P
OPENMEDIAVAULT 常用命令 Q' [) i- R; \4 w7 |) D7 M
OpenMediaVault 是基于 Debian 开发,所以熟悉 Linux 操作的前提下会很轻松。+ Y: W' S5 _( }* X( f: a
$ A3 y9 @$ }; W2 _2 l- G* i% romv-fistaid : 安装配置菜单引导;
- t* g f- m% T' ~2 k( d
& K# g, @! R! Y' P! [7 E5 W# Tip addr : 查看本机IP信息;
+ f3 m: |' \9 k& G- a: L% }: i* ]$ L3 R
dpkg -l | grep openmediavault :检查当前系统版本
" I- g q& o1 c! {" }! K
/ H: D4 r: s2 k" F参考资料
7 Q* |5 e& z6 @) Y. YOpenmediavault 官网$ K2 N! y( u" O+ t$ @6 b$ U" R; p
搭建 openmediavault NAS
/ [; P1 }# U, k3 o+ HGitHub 开发者插件列表' d0 ?; G' S2 v, s
FileRun Docs* ?2 k; x2 p! H& Y! L1 w
常见问题
9 K2 n! ]1 j( t8 M更换硬盘 无法创建共享文件夹的问题 |