现在都尼玛6.5了,0.几的版本就开始测试了,不稳定,不能生产使用。
$ b- O9 z, ~" ZOpenMediaVault 经济高效的NAS解决方案
0 b) |& F# D4 r' L6 e8 u: D: ~# Z背景
1 ~4 N0 X% b/ A. D4 {6 m8 \捣腾一套网络存储即方便家庭媒体共享,也适应小工作室协同办公,这事不定期地琢磨有好几年了。* Q: c# D, Q1 k$ S/ d. M4 y! j
2 u6 `# V2 }$ ?
最开始了解了主流的网络存储方案,市面供应商包括群晖、威联通,也是自己之前关注过最多的两项,两者之中更偏向威联通,从软件界面来看更简单清爽。
: Z. m) q4 C9 Z
# d: |/ I2 V9 @% w# Q. H T, o5 {而今,最终决定还是自己利用现有的闲置电脑已经购买的 世特力 硬盘盒来搭建,从经济上会节约很多,虽然 世特力 硬盘盒也不便宜,但相对于群晖、威联通等4~ 5盘位动则三四千的价位来说已经很经济了。
8 @) n) h; u8 ]& o, N
! H. y2 {% ]: Y* q, S( z$ V8 E5 Z/ H两年后的今天,重新捣腾采用Ubuntu Sever 20.04 + FlieRun 实现自己的个人网盘服务。 个人网盘搭建过程 FILERUN ——update 2022.04
" _2 Q; `0 E: h Z4 w% A6 d. d5 N& I0 J) ]/ H7 @( Y, Y# y
方案
) O" W) x' V" T# z- d硬件
) n, j$ R( _7 M! G) X网络上提供的安装硬件大致两类,一是现有操作系统搭载虚拟机;二是捣腾官网提供树莓派的玩家;个人查阅资料感觉还是采用闲置的独立电脑主机搭建,配置如下:
a7 u+ z& I' e* F# O0 c6 s# Y/ S) h- ~, ?9 m, r8 u
机型:戴尔(DELL)Vostro 270S-R136-JN 台式电脑(双核i3-3220 2G 500G DVD WIFI USB3.0)
( t6 o, f/ @/ Y* ~3 ]/ e% v处理器:Intel® Core™ i3-3220 CPU @ 3.30GHz 3.30 GHz
7 K* `2 |5 q5 d3 y: M. j2 A内存:6.00 GB(5.88 GB usable)0 s7 ^( F4 ~. D- o
硬盘:WDC WD5000AAKX-75U67AA0 (500 GB)
! o, K- s3 g J. g该机器2013年4月14日购入,当时售价:¥3349.00# r# U3 A' H: Q1 R- j9 K M1 o
8 B5 {# t- D; w" `9 ^: p
关于方案的选择性思考包括硬件、软件两方面,其中软件在最开始已经基本确定是 Openmediavault,而硬件方面出于需支持 磁盘阵列的部署,则经历了多次心路历程:" G) E, n/ I* a' _ A6 B
* u8 }& p$ B' g0 w& G' C. D1、通过2013年 Dell 台式机+ 世特力 硬盘盒来实现,但发现硬盘盒仅提供USB连接,外置连接方式可靠性不高;! K# G3 ?3 Z% \2 C- Q8 Y
" v, E- Y+ n6 X+ N" C& d
- J5 K2 t! E; C2、通过2002年的一台 Acer 台式机(大学时期购买的二手机)来实现,优点:机箱大盘位多;缺点:主板老,BIOS不支持USB引导启动, 功耗高且不静音;
/ T+ s0 I8 {9 _( m% o
& X4 K7 q$ r& t& H% K: e3、继续采用2013年 Dell 台式机完成,缺点:机箱太小缺少硬盘位,不具备扩展空间。琢磨后发现可以通过插入U盘作为系统盘,经过测试发现U盘读写速度很喳,试着安装几次系统后发现不管速度慢,且容易出错,稳定性极差。最终放弃,改用一块120G容量的2.5寸移动硬盘作为系统盘顺利安装,因为盘面体积较小顺便在机箱找个位置固定即可。
7 Q' r& T \! [$ D" _1 C" l6 S% q( L: X$ U$ {& E4 ?
最终方案,120G 2.5寸机械硬盘(系统盘) 、480G SSD、两块 3Tb 3.5寸机械硬盘作镜像存储(RAID 1模式),其中受机箱位影响,需要将现有的光驱位腾出来改作硬盘位,网上有改装工具:“光驱位转硬盘位”工具)* { l8 r3 K+ G2 K% }. ? w
; m, r, m2 c: d: }
分区方案
9 f0 Z2 ]1 b, `$ E( d& y6 NZFS:基于成熟的Oracle技术,拥有最多的特性,集成RAID技术,应该是首选的方案。虽然因为协议问题没有在Debian的主库中,但是仍然可以使用。" g; }7 H$ Q0 R1 Z4 B
LVM2 + Linux RAID:基于Linux维护的软件与库,使用最多的方式。
+ X- |5 f1 F9 H' I7 g) QMergerFS + SnapRAID:构建于底层分区体系上的方案,没有实际使用。
* Q9 I' M8 c0 ?( j最初通过在OMV上安装ZFS插件,尝试使用ZFS,但是OMV对ZFS支持不佳,应该是设计缺陷,无法在ZFS分区上创建共享目录(Shared Folders),导致无法在GUI上方便使用,于是无奈弃用。。。" n. u) W! N2 Z; [
关于MergerFS + SnapRAID方案,因为是较新的方案,还未调研功能性与稳定性,不做评论。, F8 P7 E, J8 x
最后的选择是使用最常见的LVM2 + Linux软RAID。# w/ R L5 t* X4 F# E
0 d' d+ H) z1 n2 V以上来源: via: mosrv.com/nas/2018/05/01/nas-build-and-config.html+ v- F0 B6 [3 o6 G# y2 ]7 O l
4 @) t9 {4 z- @
软件# y6 c2 N6 ~9 p3 y) U7 ^
软件方面,最开始知道的是 FreeNAS ,后来发现 Openmediavault 才是最佳选择,原因参考网络的资料:
! g: z: w9 b, y6 e' B! K
1 J" J7 b7 q2 x. C7 h3 ]Synology DSM
1 _) h$ j: F) O% s# `; g; q2 T3 i4 M( j3 y1 Q
1、相对臃肿,不够简洁;2 V& c& k- h, [. ]9 Z& ^
2、每块磁盘上都会安装 DSM,包括存储安装的软件及其数据,导致用户存储和操作系统耦合,尤其是频繁的读写影响每块硬盘的休眠功能;
5 E! x0 R0 W8 p$ m8 |3、DIY 设备安装运行涉及版权,无法稳定升级版本; ]; n/ p- w V9 y. F
$ M$ _& J& ^# K8 ^. ~FreeNAS
A+ L1 b: O2 l" J# y& b& Z6 @+ ^# N
对硬件要求比较高,尤其是内存最低要求 8G,其未来的目标用户应该主要是企业。
, C! n' @; o3 \ L7 Y$ m! x' }" F+ `7 q `$ B. h7 E( G! I
openmediavault! H$ x7 D) O. Z3 p) t' N j
G) C, @* ?" Y) n/ Z! l0 l/ Q' D基于 Debian Linux,开源免费。openmediavault 的目标就是面向家庭和小型办公环境,是对熟悉 Linux 又追求最小化安装的人的首选。
. ]! G- W0 S0 r% k/ b( Y8 g5 x' \5 o0 W# Q7 ]
注: 更多软件解决方案可参考 几个常见的 NAS 系统整理及选择
& p+ e$ s0 e/ Y, z4 d5 n$ g: [. u, g' X. J! y5 m+ _
安装 OpenMdediaAvault W/ v- B/ r; i: p: ^6 ?
文件系统及挂载信息
$ J+ B6 Z: e) d" K I [% A& h4 f, r, C1 j5 k. z
root@nas:/dev# df -h
4 N( o& `; T' _5 o安装 OMV-EXTRAS# G( ]% G0 ~* Z6 `# L
在安装完OpenMediaVault 系统后,基本上完成了第一阶段的基础性功能服务,正常使用NAS问题已经不大。不过如果要根据自己的其他定制化需求,则可以考虑继续安装一些容器或插件。7 s7 a' _- ]$ O3 V8 k7 K. W
8 D7 r! A6 y# J+ p# M* y通过网上了解,最基本的容器就是Docker,也是最常用的。安装Docker之前需要安装 omv-extras,命令如下:
0 ?/ a+ n# R* ~' Q. x8 o" K1 h# x7 r" Z* Y
: p3 y+ \2 S; B1 jwget -O - https://github.com/OpenMediaVaul ... /raw/master/install | bash7 e3 G4 q/ z' p1 i2 m& u
ref: https://github.com/OpenMediaVault-Plugin-Developers/installScript
6 N3 n, k1 \. I o% M& |$ X9 `$ X4 {6 b; y) v
注: 如果显示什么 443 failed: Connection refused. 就是网络源被墙了,该死的CCP!
, v; n" p g0 r* ~8 n' x
2 I7 v5 R2 T- I v方法总比问题多, 习惯采用Google 英文搜索有好处! 此时当采用线上命令无法读取源安装时,只能下载 deb 文件包通过web 插件管理界面上传后安装。 下载文件参考:forum.openmediavault.org/index.php?thread/5549-omv-extras-org-plugin/6 g# C' Q4 k- C: w- I# }9 ?
1 d, ^' w, E2 b& Q2 ~$ f
安装 DOCKER8 P) D& d! F. E# u
完成插件 omv-extras 的安装是具备安装Docker的基础,而Docker容器又是作为安装流行的云应用 NextCloud 的基础,真是环环相扣啊…
- f- O9 k* r% E* H. E' \0 Q0 m$ p3 b1 H! Y3 D
Docker 的安装相对简单,在安装完 omv-extras 后,通过左侧管理菜单 OMV-Extras 进入切换到 Docker 标签页直接安装即可。Portainer 作为一套轻量化的Docker 可视化工具也可以一并安装。
& L: H) Y: f- q+ t) z5 f) n1 i* w$ Z+ o9 ]( N
安装完成之后可通过 yourdomain.com:9000 进入,比如: nas.sheshui.me:9000。初次登录需要设定管理密码,UID默认为admin。
# t3 [2 b K" E# G& k3 N- ~
, n; T+ ]3 ?2 f- T/ e$ o2 a安装 NEXTCLOUD
- ]1 ?/ t! z# c经了解有人反馈 NextCloud 吃资源等各种不是(参考 淘汰Nextcloud,一行命令搭建功能强大的个人网盘FileRun FileRun
. r6 B8 Q( n( \1 e; b5 z* [2 }# K5 E/ r
如需坚持安装 NextCloud 可参考文章 OMV安装NextCloud
$ q' C/ ^( {/ X. s! j& f9 P/ l! t
安装 FILERUN
0 m6 M! ?$ [$ p. f5 g6 W在OMV上还是需要依赖 Docker 容器安装方式,参考教程 FileRun installation using Docker2 E2 [2 L# p, o' Q# ^# `! i
1、拉取 FilesRun 镜像文件6 f: \7 w c- W- m" R: y" e0 D
8 z- I- E( c- R6 }3 ]1 ^docker pull afian/filerun4 i1 f3 _7 V, R) c9 y" S
2、创建配置文件+ x! y; w; W& n/ w4 s6 Z% S2 E
. x/ B8 R8 a- r+ \" X1 w- t
version: '2'4 N7 C/ V, ?& g( \0 ]0 Y
! _/ j& T: M. ?' {0 Qservices:
) x/ z2 F% Z; _ db:4 U0 p& z8 o! @
image: mariadb:10.1
3 e( q1 _' g- Z environment:8 E( U7 Z8 k+ O# z# Z
MYSQL_ROOT_PASSWORD: filerun/ a$ @4 H* v1 F
MYSQL_USER: filerun
; ]0 Y: ~; C/ k+ h6 d ~ MYSQL_PASSWORD: filerun
) B3 {8 a% g: L9 _" H- \4 V MYSQL_DATABASE: filerun
. ~( d7 _' r2 p2 q; J volumes:
5 ~5 B- P1 Z) S( Z* F - /filerun/db:/var/lib/mysql& A* O$ y& K* `' J5 Z
+ S9 K5 }8 k% d% V
web:
0 M. O+ q& p$ T- Q# V image: afian/filerun" F% r) v3 `) Y7 i; K# N! K* f1 y
environment:: f+ ^+ X" V7 U# E3 P" z
FR_DB_HOST: db
; a: ^. b& N7 D FR_DB_PORT: 3306
7 o* }4 T. d3 T- Z; q! x; e) d FR_DB_NAME: filerun
) j1 X h6 t$ P6 z' x) o FR_DB_USER: filerun- ?$ v; V1 k F5 I& w. l6 b
FR_DB_PASS: filerun
9 C b- F) I9 u z) I3 q( g APACHE_RUN_USER: www-data7 K4 g: n8 M) ~8 k
APACHE_RUN_USER_ID: 33
7 }. U3 m, O9 g r APACHE_RUN_GROUP: www-data6 G$ |# H( G( Y/ V8 ]0 f& c/ q/ F
APACHE_RUN_GROUP_ID: 33
: R1 B, W+ @# j- U/ ^* r6 `, n& G! |5 ] depends_on:- z+ O3 i* P: f) e, I$ D
- db
z0 x: d) v# T$ v links:! H4 {7 p' G) r- _
- db:db
* W& ]7 M& B" ?/ _& `+ ~ ports:- {- ]3 f7 q; P; [$ X5 t. P) H9 Y% J
- "3000:80"9 [4 @ l6 D$ U) i* l* D
volumes:
' l0 K: F. M# m' i* o - /filerun/html:/var/www/html
' Y3 u# b1 Y* L4 q2 v2 s( I - /filerun/user-files:/user-files9 A, U3 f) r& d8 L
上述配置模板参考 docs.filerun.com/docker ,将使网站目录映射为/filerun/html,用户目录为/filerun/user-files,端口映射配置80:80,前为对外端口,后为容器端口。*此处要注意因对外80端口已在OMV web服务中占用,所以需自定义修改端口,如: - "3000:80" * 否则会因端口冲突出错。3 h! Y4 A4 t1 h) N$ g4 y
% A* x6 Y* W+ j0 o- t" ]
3、创建文件目录4 }) X$ y- \# O1 }. l; F# T( I
+ s5 W% f3 x0 I7 @* J
mkdir /filerun /filerun/html /filerun/user-files5 L, E- D$ P! O. A$ u" A- F
4、运行3 M3 S- E3 T0 |" ~
% z9 f: P) A ?/ i* s' E! s2 J! d
docker-compose up -d
8 `2 O) n: P) R) _4 g运行过程中还会下载安装一些library,成功后会展示如下信息:
5 n5 R) H+ ~3 @9 s+ }6 a. l1 [" ]/ |1 _; o
Creating root_db_1 ... done; A. F2 B( g# _3 _5 J' A
Recreating root_web_1 ... done( n5 n8 \4 x3 r! b2 G) g
通过web访问进入 htttp://yourdomain-localhost:3000, 默认登录:Username: superuser ; Password: superuser,首次登录后强制要求修改密码。
0 U3 `( L$ Z4 B! K5 S3 x% f+ Y7 D. `( y6 M; b& u
系统安装) f8 M6 K4 k6 p; b. Z: D, x* X
Openmediavault 对硬件要求较低,官网给出的信息如下:& h Y1 r$ ~$ \: D5 h! Y2 P. J
* I- y& @( b; P& x7 [& H* W! oCPU: Any x86-64 or ARM compatible processor
& K m) r; D! S8 B$ gRAM: 1 GiB capacity- I" m9 z4 }* _0 x: b$ N+ J; _
HDD:
" j* U( P6 N3 TSystem Drive: min. 4 GiB capacity (but more than the capacity of the RAM)6 F d: Y( F$ b' _6 M
Data Drive: capacity according to your needs
$ f2 a' E3 K: Y9 u) y w2 z6 q安装个人认为分两个阶段,一个是初始化安装可以通过web登录管理界面的阶段;第二个则是在此基础上安装各中容器插件或应用服务。
8 g" U" y) n; B/ W" y* K/ M6 j# ]$ o1 k/ t% v
登录) E4 B4 ]) M1 K, i
登录分两种,一类是Web管理界面,默认登录信息如下:( M/ W* t" q2 }/ c1 A0 c3 w+ T
0 b! Z4 Q) W I& {4 F: k1 O1 _5 J
UID:admin6 V0 E! I7 ^0 g" T) F
PWD:openmediavault
2 L% d" P w' `3 {5 X6 |- ^" O& f: l* [3 H1 x) c) z* b
前提:已连接网线并配置IP后(WIFI不太好使,需连网线),通过浏览器登录查看。( r" q: p- ^2 D1 s5 ?
# I( f+ H) |4 m+ s5 s8 N
查看IP的命令 ip addr,如果提示该命令不存在等情况,可试着先更新包:
; t5 G0 V3 ~! x$ k# J! u- h& J2 ~1 ]
/ t( u3 y5 _1 ^. Z3 f( Aapt-get update
; _2 }) D( w5 l' \4 V: B# |apt-get upgrade
- T0 J/ v; J: q, I# h( P! _另一类是通过 Shell控制台 :UID:root ;PWD:「安装时设置的密码」
# i. R+ V/ P6 q% Q* I, W! H/ O! k5 {0 i, i
安装或配置过程中如遇到问题,可通过命令 omv-firstaid 救急,这是一套配置菜单,可清晰的指引完成网络等配置信息。6 Z5 K' M8 ]8 ]2 U
$ Y, P: d' J, ^& J8 y# P3 t原则- ~+ x- d0 ]* ~, q# D
准确说几年前就有想法要整一套网络存储,适应家庭共享媒体或小工作室协作办公使用,在查阅了网络冠哟OMV的各种资料后确定以下搭建建议或原则:. l* n* T f0 H7 C1 B
: \( n, v2 U' z+ M+ F尽可能不采用虚拟机的方式,作为独立的服务应该享有独立的硬件资源;, R. h C* ]# D: |
不采用树莓派的搭建方式,虽然官方有提供,但个人认为这属于玩家们捣腾的世界;
8 f7 p j: H3 N$ [5 ?索引2 @7 w7 b/ ?: _$ a$ I) e6 ?+ N
OPENMEDIAVAULT 常用命令
( Z* z2 l) J. H1 UOpenMediaVault 是基于 Debian 开发,所以熟悉 Linux 操作的前提下会很轻松。/ P# D3 R5 P! \6 P) V, K# o
" z' \' D- [/ w5 M# qomv-fistaid : 安装配置菜单引导;
/ g1 {2 K- W! q9 n" d d& ^: s2 Z( |/ k* S
ip addr : 查看本机IP信息;
/ E! d2 a# A- a9 j* Y/ W% h9 }) {% P9 O. t8 j- j
dpkg -l | grep openmediavault :检查当前系统版本
$ J1 q% j) W/ b/ U* [
/ W# B( v! |; V# g2 w+ A参考资料5 G4 [6 m, S: ^
Openmediavault 官网
; P# q w1 B/ i6 }搭建 openmediavault NAS
/ D) ], O' B. e; }( f3 Q6 n5 {GitHub 开发者插件列表
- x; q/ d4 y, z/ H* K; e% Y0 o+ mFileRun Docs1 V+ R9 C% { O! `" ~& l
常见问题
9 v( q+ ^$ X# G/ z更换硬盘 无法创建共享文件夹的问题 |