现在都尼玛6.5了,0.几的版本就开始测试了,不稳定,不能生产使用。* `8 D. {& M& a ~6 | w) C
OpenMediaVault 经济高效的NAS解决方案 ! _6 P h4 M* V1 N' I6 O
背景
" k2 P. S1 R' T4 j捣腾一套网络存储即方便家庭媒体共享,也适应小工作室协同办公,这事不定期地琢磨有好几年了。2 b7 P; c) j4 ~2 ]
& d1 l9 c# n% ]% P5 `$ T8 G最开始了解了主流的网络存储方案,市面供应商包括群晖、威联通,也是自己之前关注过最多的两项,两者之中更偏向威联通,从软件界面来看更简单清爽。3 N3 n2 ~( ^$ H! q8 w) f9 o
" v' {" _1 U. ?5 ]0 y2 _9 F1 L2 _而今,最终决定还是自己利用现有的闲置电脑已经购买的 世特力 硬盘盒来搭建,从经济上会节约很多,虽然 世特力 硬盘盒也不便宜,但相对于群晖、威联通等4~ 5盘位动则三四千的价位来说已经很经济了。2 u: G# Q8 h# Z" ]0 t
3 {0 } l M/ `( c2 Q8 `5 j& j! r; X两年后的今天,重新捣腾采用Ubuntu Sever 20.04 + FlieRun 实现自己的个人网盘服务。 个人网盘搭建过程 FILERUN ——update 2022.04
) r5 Q4 t8 M6 { A" c, t
2 A8 M4 u/ h$ y5 F方案+ y2 S' p3 H' G+ L3 d1 e# a3 r
硬件
4 T8 H7 f2 |% |; ~, V% ]网络上提供的安装硬件大致两类,一是现有操作系统搭载虚拟机;二是捣腾官网提供树莓派的玩家;个人查阅资料感觉还是采用闲置的独立电脑主机搭建,配置如下:
* j+ f5 d. f# s4 ~4 q m
. y3 A1 \0 p" B8 X# S机型:戴尔(DELL)Vostro 270S-R136-JN 台式电脑(双核i3-3220 2G 500G DVD WIFI USB3.0)
H) ~' A5 o+ @' s: t处理器:Intel® Core™ i3-3220 CPU @ 3.30GHz 3.30 GHz
( N0 }" d$ S8 i内存:6.00 GB(5.88 GB usable)% P7 M' `# [, @0 K" H! K2 A
硬盘:WDC WD5000AAKX-75U67AA0 (500 GB)
0 A$ B+ g% j( I3 z该机器2013年4月14日购入,当时售价:¥3349.00
/ |6 i. p& q: F7 F- `" A6 S z/ h+ V
# i/ ^6 q# W, z9 C9 E! s8 e7 o关于方案的选择性思考包括硬件、软件两方面,其中软件在最开始已经基本确定是 Openmediavault,而硬件方面出于需支持 磁盘阵列的部署,则经历了多次心路历程:
$ s$ K! D' g8 `9 ?9 r- z1 C& {0 q% r& v) B! k
1、通过2013年 Dell 台式机+ 世特力 硬盘盒来实现,但发现硬盘盒仅提供USB连接,外置连接方式可靠性不高; T+ |4 e+ {+ k3 J: C% n
2 q; g( f- O4 w# j8 E3 [; A; v8 a9 f, X. ~ T
2、通过2002年的一台 Acer 台式机(大学时期购买的二手机)来实现,优点:机箱大盘位多;缺点:主板老,BIOS不支持USB引导启动, 功耗高且不静音;# h( J2 {/ G/ ^! |& A% t
! L3 q, K3 k* Y/ I' |3、继续采用2013年 Dell 台式机完成,缺点:机箱太小缺少硬盘位,不具备扩展空间。琢磨后发现可以通过插入U盘作为系统盘,经过测试发现U盘读写速度很喳,试着安装几次系统后发现不管速度慢,且容易出错,稳定性极差。最终放弃,改用一块120G容量的2.5寸移动硬盘作为系统盘顺利安装,因为盘面体积较小顺便在机箱找个位置固定即可。
* P/ I' w- \" e5 N/ [, k. ^# L! _1 K; h
最终方案,120G 2.5寸机械硬盘(系统盘) 、480G SSD、两块 3Tb 3.5寸机械硬盘作镜像存储(RAID 1模式),其中受机箱位影响,需要将现有的光驱位腾出来改作硬盘位,网上有改装工具:“光驱位转硬盘位”工具)
/ N/ F2 Q$ Z5 ]; V& f1 n
/ ^9 g! B3 D" n! S F分区方案! |" F$ T# Z3 Z9 p; @2 k* J
ZFS:基于成熟的Oracle技术,拥有最多的特性,集成RAID技术,应该是首选的方案。虽然因为协议问题没有在Debian的主库中,但是仍然可以使用。) E; H3 M) u+ [% g3 Z
LVM2 + Linux RAID:基于Linux维护的软件与库,使用最多的方式。0 E. K2 ]0 x3 y& q. Z- x2 H
MergerFS + SnapRAID:构建于底层分区体系上的方案,没有实际使用。
; d# m9 y, r( u5 }9 a最初通过在OMV上安装ZFS插件,尝试使用ZFS,但是OMV对ZFS支持不佳,应该是设计缺陷,无法在ZFS分区上创建共享目录(Shared Folders),导致无法在GUI上方便使用,于是无奈弃用。。。
L5 A Z- o! z. t. @ V关于MergerFS + SnapRAID方案,因为是较新的方案,还未调研功能性与稳定性,不做评论。+ K+ U) `1 u6 V. ^$ S
最后的选择是使用最常见的LVM2 + Linux软RAID。' `: b2 t' \2 i7 h& R
1 Q% L6 i8 i/ b4 Y& R, b* A+ A5 \以上来源: via: mosrv.com/nas/2018/05/01/nas-build-and-config.html% P2 s- ~5 O. ~6 K
2 X0 f# t S, A; H2 f, K
软件
5 W7 t y5 [3 H8 o! [软件方面,最开始知道的是 FreeNAS ,后来发现 Openmediavault 才是最佳选择,原因参考网络的资料:/ n$ R; m; c9 }/ L6 A
0 T! ^1 x5 a+ Z4 L$ `% oSynology DSM
, B; p& v, Y+ H+ O
4 R$ `1 j- O5 [1 i* y4 i1、相对臃肿,不够简洁;% f$ m; u8 C$ l
2、每块磁盘上都会安装 DSM,包括存储安装的软件及其数据,导致用户存储和操作系统耦合,尤其是频繁的读写影响每块硬盘的休眠功能;
. R' t0 _& t& M- C3、DIY 设备安装运行涉及版权,无法稳定升级版本;$ F& @( S$ s, h6 u( y+ m% n7 ~
' @$ M0 b. q) M0 I! [& W+ H3 C
FreeNAS. S: |# @9 g& D8 G$ w# n+ f
' V% H$ J1 j2 P9 g! B对硬件要求比较高,尤其是内存最低要求 8G,其未来的目标用户应该主要是企业。
3 q/ N9 t# p# b( c2 M0 m Z
% Z* a. z7 s* T8 E6 L& w3 |openmediavault6 _9 t* D9 X* J
; w! B1 \# m$ _2 K6 f& J% @基于 Debian Linux,开源免费。openmediavault 的目标就是面向家庭和小型办公环境,是对熟悉 Linux 又追求最小化安装的人的首选。" k& R- K" b& N& }- o( e
9 A4 T2 C1 _8 F! d0 {/ Y注: 更多软件解决方案可参考 几个常见的 NAS 系统整理及选择
2 ]5 z, S* T1 S- `6 I; ^4 `( ^+ ^* A
安装 OpenMdediaAvault8 J& o9 }$ B( u
文件系统及挂载信息
* p1 m0 s, z2 _( \, i# l d2 P
1 V8 ^8 o( o% ~/ c" D, W% O# n0 Wroot@nas:/dev# df -h. `; e' ?4 g- h# c/ O1 h2 T
安装 OMV-EXTRAS
8 }; N! A( E# h6 O$ d+ C& t在安装完OpenMediaVault 系统后,基本上完成了第一阶段的基础性功能服务,正常使用NAS问题已经不大。不过如果要根据自己的其他定制化需求,则可以考虑继续安装一些容器或插件。3 z) U Y* G) I! {% ~/ m/ l
8 J' B7 ^, u. a/ B- z7 d; C% p
通过网上了解,最基本的容器就是Docker,也是最常用的。安装Docker之前需要安装 omv-extras,命令如下:
- o! B; i. i9 `! [& n; O. r8 \% f$ g$ F" N
1 ~7 s! J$ _6 D: k; mwget -O - https://github.com/OpenMediaVaul ... /raw/master/install | bash
, H6 _. P" j) M* fref: https://github.com/OpenMediaVault-Plugin-Developers/installScript
+ g. m8 y' u" j! @& T' p8 m v8 P5 q7 k
注: 如果显示什么 443 failed: Connection refused. 就是网络源被墙了,该死的CCP!
, J4 t1 P5 d S# n% {1 h; n) F
# F( y' f2 a* T! y3 p+ m方法总比问题多, 习惯采用Google 英文搜索有好处! 此时当采用线上命令无法读取源安装时,只能下载 deb 文件包通过web 插件管理界面上传后安装。 下载文件参考:forum.openmediavault.org/index.php?thread/5549-omv-extras-org-plugin/ X6 t2 B7 [# Q5 a# ^2 M
! k! H! F& u& ]# a3 x" c
安装 DOCKER
0 U+ J. n/ ~6 t& F( O完成插件 omv-extras 的安装是具备安装Docker的基础,而Docker容器又是作为安装流行的云应用 NextCloud 的基础,真是环环相扣啊… e1 b! Y1 {8 y3 M
# w+ r/ L; z4 t/ o, tDocker 的安装相对简单,在安装完 omv-extras 后,通过左侧管理菜单 OMV-Extras 进入切换到 Docker 标签页直接安装即可。Portainer 作为一套轻量化的Docker 可视化工具也可以一并安装。
1 j; O7 u1 S' @: u8 r, |$ K2 E1 ^3 @" G9 h- Y
安装完成之后可通过 yourdomain.com:9000 进入,比如: nas.sheshui.me:9000。初次登录需要设定管理密码,UID默认为admin。; Q5 U: x" y) A( Y- e! F7 p8 g
' x6 o. U# d; x* ^; \; D; u5 E( B, [; p安装 NEXTCLOUD5 A2 x- c* z' U9 K
经了解有人反馈 NextCloud 吃资源等各种不是(参考 淘汰Nextcloud,一行命令搭建功能强大的个人网盘FileRun FileRun8 ~# @8 B+ \# q1 x
, \' Z- F6 T, X( E$ T2 e( |
如需坚持安装 NextCloud 可参考文章 OMV安装NextCloud
$ u, z# @+ K. b }! U
3 I8 R. A, B3 x/ L& D安装 FILERUN! [, B3 s" \. u7 n
在OMV上还是需要依赖 Docker 容器安装方式,参考教程 FileRun installation using Docker
/ A d$ ^: l; h' j0 X% P& V3 d* B1、拉取 FilesRun 镜像文件, L5 e8 s7 H5 w, T4 J
+ Y% b; b; G0 k) xdocker pull afian/filerun/ \% S4 Z4 h0 R' `$ C' ~) X
2、创建配置文件! x6 j8 [; r' `/ d$ }1 Z; F
& U% ~* s9 U2 R6 U5 G, cversion: '2'( v9 w1 p. i9 i
5 Z3 |7 v% c0 l! dservices:1 j. Q4 n1 U3 \- U- d2 q
db:8 h9 s1 d9 Q( I1 t1 z
image: mariadb:10.1. G- c w. F' M/ e3 E$ N% h
environment:2 u+ a0 N, A$ F Y! _/ e
MYSQL_ROOT_PASSWORD: filerun
( p! @2 ~) q' c8 f7 I: N# b MYSQL_USER: filerun
$ ^8 w! l/ H! u' W: F/ t MYSQL_PASSWORD: filerun
) v) ~. ^7 L: \0 S& v( _1 n MYSQL_DATABASE: filerun
s$ N i- d, T/ \8 i! t$ f volumes:. R7 J Q7 P2 k4 N p
- /filerun/db:/var/lib/mysql% M' H% T# q+ d2 [" N1 x2 |- z6 A
+ I6 b, L& X5 ]6 G: D; M' x' t: Q0 e
web:
2 d7 Z3 D0 _- [, v8 Y6 k5 T" p image: afian/filerun6 g5 a9 o7 x7 @$ j; i
environment:
! |8 a8 q9 v% _- U; m( ~ FR_DB_HOST: db
6 ?$ X* L5 N3 X* m. Q FR_DB_PORT: 33065 @7 k. V+ @7 b0 v4 d$ D; X# L' Z
FR_DB_NAME: filerun
) {2 y6 T, L: n+ P FR_DB_USER: filerun- l* m2 o) F4 k+ n
FR_DB_PASS: filerun \- P" G5 ^+ X# e! j6 _, ], ~/ A
APACHE_RUN_USER: www-data
% B9 J: z0 E7 G1 d APACHE_RUN_USER_ID: 331 E1 F! w B( d& b' A/ N
APACHE_RUN_GROUP: www-data% z! \* J1 I4 w+ J) S* n: \
APACHE_RUN_GROUP_ID: 330 S2 N9 R6 e5 I4 U+ i" r
depends_on:
) n9 O0 O) j, L - db; @. Z; j5 ~; K$ G: S1 V
links:0 N0 D7 X& H( r
- db:db7 i* |; D3 {$ v7 y
ports:
" o! r) I6 }; `- z0 Q' _ - "3000:80"# m$ c+ w% h% P; H7 V1 C
volumes:/ ?4 u+ _8 a" o. f
- /filerun/html:/var/www/html0 c) ?5 X" g- N3 }
- /filerun/user-files:/user-files
7 k. ?' ?: J6 |3 F: Y上述配置模板参考 docs.filerun.com/docker ,将使网站目录映射为/filerun/html,用户目录为/filerun/user-files,端口映射配置80:80,前为对外端口,后为容器端口。*此处要注意因对外80端口已在OMV web服务中占用,所以需自定义修改端口,如: - "3000:80" * 否则会因端口冲突出错。" V* o: F5 B. p$ C' ?0 k/ U
. R7 H/ e5 |; r3、创建文件目录
2 H( H% D \* C
/ `0 P* h6 W: Z( pmkdir /filerun /filerun/html /filerun/user-files
5 ]5 ^0 ]0 {/ S2 o0 D4、运行 z. I: A( p' V$ c) @
& ]2 r! q% m$ I& o- gdocker-compose up -d, u1 m; @9 `$ v* f9 N+ i
运行过程中还会下载安装一些library,成功后会展示如下信息:+ V+ M8 ?- x0 d0 `9 V- j$ R
7 y. y, {# z) T% C7 c* a: E5 cCreating root_db_1 ... done
3 u8 @$ \/ u* I9 K9 C" `8 nRecreating root_web_1 ... done
3 M; h5 Z0 o( r3 I通过web访问进入 htttp://yourdomain-localhost:3000, 默认登录:Username: superuser ; Password: superuser,首次登录后强制要求修改密码。- R$ ], ~3 v' H: N( a; C
! Q. z' i# ~) x
系统安装: z# |( K+ D% R0 |. u
Openmediavault 对硬件要求较低,官网给出的信息如下:9 \* X% n# W4 u
, y5 ?7 b$ ^- |CPU: Any x86-64 or ARM compatible processor
. ~. H) [ C4 x4 ARAM: 1 GiB capacity
& g8 ~' N* N7 F; v* aHDD:
. A/ y8 M @1 }4 L" Y" u+ ySystem Drive: min. 4 GiB capacity (but more than the capacity of the RAM)
3 x+ w; H4 ]" O% yData Drive: capacity according to your needs2 @/ ~ y! b% Q: A
安装个人认为分两个阶段,一个是初始化安装可以通过web登录管理界面的阶段;第二个则是在此基础上安装各中容器插件或应用服务。
0 D3 K/ K. S8 r& L, S# t' M, q( V, d8 U' c8 Q# h
登录5 F# l& D. x8 A
登录分两种,一类是Web管理界面,默认登录信息如下:
; I3 Y- c3 W. A& D
; Q( K7 t/ w* pUID:admin/ V3 z8 F% j8 Y2 |
PWD:openmediavault
% u/ q8 X) {' s; Z& K9 Z+ N$ a9 [7 Z
( m5 v2 C2 r7 B/ ]/ {1 U+ {前提:已连接网线并配置IP后(WIFI不太好使,需连网线),通过浏览器登录查看。
3 b9 t$ }$ a7 V4 U4 b9 V( V4 Z3 S3 n: o& W
查看IP的命令 ip addr,如果提示该命令不存在等情况,可试着先更新包:9 X. |5 _% ]1 a4 G9 B8 p
5 W/ x& E5 L/ e8 z9 V
apt-get update- i, _. y9 o! _; r" d7 G& s0 [
apt-get upgrade
- D) {; n+ J: b) ]另一类是通过 Shell控制台 :UID:root ;PWD:「安装时设置的密码」8 i/ j0 l: r U6 \3 p0 i
; S# w1 N/ N$ g0 b
安装或配置过程中如遇到问题,可通过命令 omv-firstaid 救急,这是一套配置菜单,可清晰的指引完成网络等配置信息。
2 H- l6 p1 q5 \: G' ^: U1 {, ?' _$ F- o+ G: R( G) B/ g
原则
7 T4 u/ n7 S/ w$ E& n' O' [准确说几年前就有想法要整一套网络存储,适应家庭共享媒体或小工作室协作办公使用,在查阅了网络冠哟OMV的各种资料后确定以下搭建建议或原则:
5 b; }: l. b( G. y" Q, A6 [1 [7 f6 a) K
尽可能不采用虚拟机的方式,作为独立的服务应该享有独立的硬件资源;
! l z/ F1 ^1 E) F: g( _3 z7 ~不采用树莓派的搭建方式,虽然官方有提供,但个人认为这属于玩家们捣腾的世界;) x; G% @0 I: \- c5 z7 o+ N9 T
索引, V# H5 r) N9 k. ]( V9 P9 j
OPENMEDIAVAULT 常用命令4 E. \9 K2 ?/ Z: f
OpenMediaVault 是基于 Debian 开发,所以熟悉 Linux 操作的前提下会很轻松。
; Y4 h! }7 W- J& F
8 O" a3 A. D' komv-fistaid : 安装配置菜单引导;
" Y7 E% i* s6 s7 P8 O2 _4 T6 w# [( t' ?( S& z
ip addr : 查看本机IP信息;
. R6 G5 q4 ?" J/ F
7 b# f, E, J# P0 ndpkg -l | grep openmediavault :检查当前系统版本& |/ ~5 k. N4 ]# [
1 v9 T: y& t+ @5 k; H7 e' ~9 @参考资料
5 u' p% ?; Q1 rOpenmediavault 官网
5 r1 }0 `. Q1 J- j: M3 C搭建 openmediavault NAS$ B5 e; }( P! a: r+ ]9 w! u
GitHub 开发者插件列表$ J& t& P% W: J3 P
FileRun Docs+ X$ e4 y2 {7 p) m$ ?4 ], F! v
常见问题' T+ t8 x; o; U* c' w
更换硬盘 无法创建共享文件夹的问题 |