现在都尼玛6.5了,0.几的版本就开始测试了,不稳定,不能生产使用。
; l- t1 @ C# p4 l$ z* e9 ^ `OpenMediaVault 经济高效的NAS解决方案
; y0 f6 l7 M4 r+ C背景
$ `0 i; y6 z( g! T' H/ }, r( y捣腾一套网络存储即方便家庭媒体共享,也适应小工作室协同办公,这事不定期地琢磨有好几年了。
2 n- e- n0 t# j- A; d( X) V- g' X( N! o
最开始了解了主流的网络存储方案,市面供应商包括群晖、威联通,也是自己之前关注过最多的两项,两者之中更偏向威联通,从软件界面来看更简单清爽。
6 C b' @' P/ m, |
- s3 J [& E9 m" S- e4 S而今,最终决定还是自己利用现有的闲置电脑已经购买的 世特力 硬盘盒来搭建,从经济上会节约很多,虽然 世特力 硬盘盒也不便宜,但相对于群晖、威联通等4~ 5盘位动则三四千的价位来说已经很经济了。
, F5 |8 d5 ~( K6 B
8 |& j z4 L6 }. g! f两年后的今天,重新捣腾采用Ubuntu Sever 20.04 + FlieRun 实现自己的个人网盘服务。 个人网盘搭建过程 FILERUN ——update 2022.04
5 s u0 c% R- d( R2 @
, s- F- Z5 l' q$ Z& j. z# f方案 L7 k" f& n, Z# E- O7 U4 \) J8 B
硬件/ b9 [6 t4 r1 J. K. a7 e& w
网络上提供的安装硬件大致两类,一是现有操作系统搭载虚拟机;二是捣腾官网提供树莓派的玩家;个人查阅资料感觉还是采用闲置的独立电脑主机搭建,配置如下:
) x( k4 u+ {" m$ h0 s8 Q! L! R1 w( G2 f9 H- r" ?
机型:戴尔(DELL)Vostro 270S-R136-JN 台式电脑(双核i3-3220 2G 500G DVD WIFI USB3.0)
2 o, n+ K' A9 j. ~+ T处理器:Intel® Core™ i3-3220 CPU @ 3.30GHz 3.30 GHz% x& y- t* F L: `- j/ x( ~
内存:6.00 GB(5.88 GB usable)
# t) ]! \% H* K硬盘:WDC WD5000AAKX-75U67AA0 (500 GB)
$ ~' I0 O( {$ C# f& x9 h该机器2013年4月14日购入,当时售价:¥3349.00
' e @2 ?; ~. G4 i- W7 N! d; Y: N z" h
关于方案的选择性思考包括硬件、软件两方面,其中软件在最开始已经基本确定是 Openmediavault,而硬件方面出于需支持 磁盘阵列的部署,则经历了多次心路历程:
7 D- ^' o$ e6 R
2 ?+ ^$ K' l! C; Z1、通过2013年 Dell 台式机+ 世特力 硬盘盒来实现,但发现硬盘盒仅提供USB连接,外置连接方式可靠性不高;& C4 C# ]# e" t
L# D0 c5 J4 b1 p$ U- m8 z, g: j8 P, ~' I+ f
2、通过2002年的一台 Acer 台式机(大学时期购买的二手机)来实现,优点:机箱大盘位多;缺点:主板老,BIOS不支持USB引导启动, 功耗高且不静音;
6 j7 T- A, P Z/ j" D. b
' Y& p k% q/ v; ~6 O! U3、继续采用2013年 Dell 台式机完成,缺点:机箱太小缺少硬盘位,不具备扩展空间。琢磨后发现可以通过插入U盘作为系统盘,经过测试发现U盘读写速度很喳,试着安装几次系统后发现不管速度慢,且容易出错,稳定性极差。最终放弃,改用一块120G容量的2.5寸移动硬盘作为系统盘顺利安装,因为盘面体积较小顺便在机箱找个位置固定即可。
( E: Q# S) } ~( |$ v8 }& D" ? U" T% N$ I1 A& a1 r
最终方案,120G 2.5寸机械硬盘(系统盘) 、480G SSD、两块 3Tb 3.5寸机械硬盘作镜像存储(RAID 1模式),其中受机箱位影响,需要将现有的光驱位腾出来改作硬盘位,网上有改装工具:“光驱位转硬盘位”工具)+ T! O3 I( }7 i2 K* j7 s# r
) O1 W: s) x- a5 C分区方案2 ~, E4 m' f4 v* `: N+ v1 j4 @
ZFS:基于成熟的Oracle技术,拥有最多的特性,集成RAID技术,应该是首选的方案。虽然因为协议问题没有在Debian的主库中,但是仍然可以使用。
( {: H: C+ U: z$ a; M- S$ ^, aLVM2 + Linux RAID:基于Linux维护的软件与库,使用最多的方式。
8 q9 I# d, a' f! C5 \2 aMergerFS + SnapRAID:构建于底层分区体系上的方案,没有实际使用。
, c& ~' C" H5 L9 }/ ~最初通过在OMV上安装ZFS插件,尝试使用ZFS,但是OMV对ZFS支持不佳,应该是设计缺陷,无法在ZFS分区上创建共享目录(Shared Folders),导致无法在GUI上方便使用,于是无奈弃用。。。 ^# [5 q; @" V* D
关于MergerFS + SnapRAID方案,因为是较新的方案,还未调研功能性与稳定性,不做评论。% e3 R, T+ z/ F
最后的选择是使用最常见的LVM2 + Linux软RAID。6 s- x1 i1 {0 {) h/ A8 B
. Z! p" h" J* ^7 W: Z( U
以上来源: via: mosrv.com/nas/2018/05/01/nas-build-and-config.html
1 f p6 s: Q' `/ k
9 L0 u7 Y) n& x5 B0 `& t软件- ]: t8 \0 y- L( N% N8 y
软件方面,最开始知道的是 FreeNAS ,后来发现 Openmediavault 才是最佳选择,原因参考网络的资料:
% Y, |( w8 [: i9 a+ e
2 g; T W, X# U2 u) wSynology DSM
( L7 Y2 x6 }/ l' ^7 g0 x& W/ ^6 i* u( K; E8 Y
1、相对臃肿,不够简洁;
0 t6 E0 G* `1 a4 P* U% o* Y2、每块磁盘上都会安装 DSM,包括存储安装的软件及其数据,导致用户存储和操作系统耦合,尤其是频繁的读写影响每块硬盘的休眠功能;
1 E3 p ]( {, f3、DIY 设备安装运行涉及版权,无法稳定升级版本;4 ?9 Z0 j3 x! T" b& O9 M+ }
* ?/ H9 H5 C% x+ c v( r5 J) C
FreeNAS9 `4 v% Z; f4 b
. I% z: `3 W2 d; ~$ w) z3 e W! @7 ^对硬件要求比较高,尤其是内存最低要求 8G,其未来的目标用户应该主要是企业。
' S r s0 t# J6 S+ u8 `3 t4 t' F
openmediavault: b0 s E+ [- ]1 ]) q5 l' T
1 ?( u# Y2 p( ~: u. y2 Y3 H% k
基于 Debian Linux,开源免费。openmediavault 的目标就是面向家庭和小型办公环境,是对熟悉 Linux 又追求最小化安装的人的首选。
0 B% Z, l+ \+ T; ?3 X9 R3 W3 G- z, x! v) H
注: 更多软件解决方案可参考 几个常见的 NAS 系统整理及选择% @' n% I- f$ n0 h5 z& i( S
1 G9 ]' v6 S4 `' o) t' d8 W
安装 OpenMdediaAvault4 ]/ P$ M& P$ r" F: e1 ]
文件系统及挂载信息0 |9 \4 V5 l. \0 C, D( s: y7 ?9 }
3 t: r& _8 a s5 o" @. U+ ^& v, H
root@nas:/dev# df -h4 {8 l V( x! {8 s t
安装 OMV-EXTRAS' N! q0 I% g6 A$ K2 p+ x
在安装完OpenMediaVault 系统后,基本上完成了第一阶段的基础性功能服务,正常使用NAS问题已经不大。不过如果要根据自己的其他定制化需求,则可以考虑继续安装一些容器或插件。
: `( x* g" u5 x. B$ [8 M+ |4 u; G# r$ G+ T' p
通过网上了解,最基本的容器就是Docker,也是最常用的。安装Docker之前需要安装 omv-extras,命令如下:
" Z4 ^8 r5 m* e/ f }6 s: [4 R$ }0 r4 n0 ^$ M8 r
8 {) g0 L0 B k! T) x
wget -O - https://github.com/OpenMediaVaul ... /raw/master/install | bash
) s9 h9 d# A) f4 l' W" N5 {# Aref: https://github.com/OpenMediaVault-Plugin-Developers/installScript# k! F! p( }6 I* ^+ M$ H: Y: N
3 ^5 n; @/ q3 j+ ?) N2 \注: 如果显示什么 443 failed: Connection refused. 就是网络源被墙了,该死的CCP!7 |& ?9 g& z% k3 {* L
6 J; [! O, k* }& M
方法总比问题多, 习惯采用Google 英文搜索有好处! 此时当采用线上命令无法读取源安装时,只能下载 deb 文件包通过web 插件管理界面上传后安装。 下载文件参考:forum.openmediavault.org/index.php?thread/5549-omv-extras-org-plugin/% O1 }! c0 r; H, c( ]. N* e" w
8 o- P8 h# G7 k8 i8 t
安装 DOCKER! [, B- k5 N8 { i
完成插件 omv-extras 的安装是具备安装Docker的基础,而Docker容器又是作为安装流行的云应用 NextCloud 的基础,真是环环相扣啊…' x) S& J5 I- q
3 X: `; E! J1 c* F9 u
Docker 的安装相对简单,在安装完 omv-extras 后,通过左侧管理菜单 OMV-Extras 进入切换到 Docker 标签页直接安装即可。Portainer 作为一套轻量化的Docker 可视化工具也可以一并安装。+ U& @) U. V( a7 x
/ ]. r9 q9 z/ @+ A, \) W0 v1 D安装完成之后可通过 yourdomain.com:9000 进入,比如: nas.sheshui.me:9000。初次登录需要设定管理密码,UID默认为admin。7 `* C% {) c9 D4 C& R7 e
/ u7 w7 Y7 ]9 z9 ~1 |
安装 NEXTCLOUD
; D# h* }, {4 Z; L& }经了解有人反馈 NextCloud 吃资源等各种不是(参考 淘汰Nextcloud,一行命令搭建功能强大的个人网盘FileRun FileRun
5 n" _1 [* M I d# M* i, k" K9 C6 }: J
如需坚持安装 NextCloud 可参考文章 OMV安装NextCloud! g. R4 p. e& S
$ V6 `7 j* ` p4 B! {/ b
安装 FILERUN1 \2 r5 ^4 |! G+ x
在OMV上还是需要依赖 Docker 容器安装方式,参考教程 FileRun installation using Docker4 d, n% A# N& H( d
1、拉取 FilesRun 镜像文件* W: m/ |/ L% w# S8 R( h$ w2 H; T
- B7 I( i2 h* L: [docker pull afian/filerun7 [$ V% w% z) a* C3 ~+ N
2、创建配置文件
& N- |8 u1 e* C0 Q% W8 B* i) p9 K! H
* D; G! B" W! I/ U; b+ g8 {version: '2'
# M) p! u4 N: }/ @; l! ^1 g
5 p# y9 X6 z% dservices:
& b! f A2 n5 j+ n/ J+ j6 f" { db:+ Y0 ~2 B( v$ L& Y/ M' ~
image: mariadb:10.1& l: w; G5 h1 B9 L. t+ h0 E Q
environment:
' B( p$ D p. H! x$ e2 U0 H MYSQL_ROOT_PASSWORD: filerun: u' J0 O+ d" ]) c. E/ D: ~) N! U
MYSQL_USER: filerun
/ h, {$ ]7 @& ?# u' |# |2 s3 s$ B+ i MYSQL_PASSWORD: filerun% b0 b3 ]. w6 L0 ^: U
MYSQL_DATABASE: filerun
; I& z) {7 G2 E8 F6 U9 N& T volumes:
8 }2 p" w# O. `& r$ ^' @' u- x4 N - /filerun/db:/var/lib/mysql
! X$ b4 N8 p& a" s0 V5 m9 f4 a
web:* H8 J2 a4 }5 K7 F: T, _6 O$ ^
image: afian/filerun3 R3 T; N/ j+ i3 D: i* S4 e& E
environment:
( u3 s3 h& M; Z8 F FR_DB_HOST: db
2 \9 S$ d/ v X! ]+ C" } FR_DB_PORT: 3306' Y# L) n0 c5 h. E8 O b. B9 k
FR_DB_NAME: filerun
8 Q s# o/ l% N5 `9 s! \1 R FR_DB_USER: filerun
+ G, t& I: _( J1 B! S" S5 Q FR_DB_PASS: filerun
4 ^6 w$ h+ N: o: k ~" K APACHE_RUN_USER: www-data) |! q, u; G3 m) [$ F/ K+ ]1 J
APACHE_RUN_USER_ID: 33
1 e. Z* j; S& x2 L/ g6 f9 D APACHE_RUN_GROUP: www-data
2 v) K$ w2 m& J7 |, H; L APACHE_RUN_GROUP_ID: 33. I% o+ ~/ f0 d
depends_on:
; U8 j0 e* j5 Y( f$ m3 C# k) l* y - db
7 H/ s. m# L, y8 n! n4 U links:
4 I; `8 Z, g9 A6 j) ?. F9 u0 X - db:db
7 M; N7 Z% G, S. r% T* {: s- B ports:
" L+ o8 t$ x! F9 p% J) A6 k) H( u - "3000:80"
) f) Q. e7 ~4 f, C6 L2 z9 y2 X8 D+ X volumes:7 r; y8 R/ S/ `0 X3 I
- /filerun/html:/var/www/html: {) }) D" P. _! \$ Y$ q' \6 h
- /filerun/user-files:/user-files
$ j$ P/ v5 K, ?+ j+ i3 u- T- W上述配置模板参考 docs.filerun.com/docker ,将使网站目录映射为/filerun/html,用户目录为/filerun/user-files,端口映射配置80:80,前为对外端口,后为容器端口。*此处要注意因对外80端口已在OMV web服务中占用,所以需自定义修改端口,如: - "3000:80" * 否则会因端口冲突出错。6 S$ `, P5 B. ~6 e; M6 _
) r8 ]& @4 e1 A/ l& C2 S
3、创建文件目录% l. ?+ K2 ^3 t% S
5 G z. z3 a/ M6 a4 B
mkdir /filerun /filerun/html /filerun/user-files: S9 c' g7 g6 o) C( f
4、运行1 J- m* ~9 W2 v# a# }) Z7 ]
1 t' p, N3 y# Xdocker-compose up -d! F, U' L5 k. l; z7 e: T
运行过程中还会下载安装一些library,成功后会展示如下信息:4 D/ D2 ~# |" x! z+ l# e
) _* ]' j# \6 a% B: e. F4 OCreating root_db_1 ... done
/ o8 S" V$ b- v2 u6 o, d: T: pRecreating root_web_1 ... done
$ [+ K! m& x3 i: O8 Z5 S. y, ~通过web访问进入 htttp://yourdomain-localhost:3000, 默认登录:Username: superuser ; Password: superuser,首次登录后强制要求修改密码。' X, P+ T! M3 |* ], M* P
1 Y8 P4 {) q5 q) Z h3 t1 l4 @系统安装
+ y. o0 R: s1 o( ~# TOpenmediavault 对硬件要求较低,官网给出的信息如下:
. Y i- E; J' e g* F2 I; {
( E b6 M8 ?0 S3 LCPU: Any x86-64 or ARM compatible processor9 P$ b( m% @4 d+ s% r% a
RAM: 1 GiB capacity$ y; @2 u7 c/ R' h! X
HDD:
, N& ?; }3 S5 u% z' tSystem Drive: min. 4 GiB capacity (but more than the capacity of the RAM)+ j3 S u& [; c: z5 Z5 _
Data Drive: capacity according to your needs }! R/ e/ ~* A- p8 o6 Q$ `/ N
安装个人认为分两个阶段,一个是初始化安装可以通过web登录管理界面的阶段;第二个则是在此基础上安装各中容器插件或应用服务。
3 }+ N8 Z6 X$ a& h
" Z+ S. ^* k' B' s0 ]2 ~登录2 @2 P* k' e" E0 g: C7 V0 W
登录分两种,一类是Web管理界面,默认登录信息如下:5 P3 p& Z( O& i2 B* T- `4 x
* U! C- M% f) R+ r& T
UID:admin/ h! @2 e# R% z5 B, G z6 N% W" [
PWD:openmediavault
6 n" X. M( |- x. q) M, }# [# F, B: y7 W" X) Q
前提:已连接网线并配置IP后(WIFI不太好使,需连网线),通过浏览器登录查看。
. A( o; S) S* S7 d% A9 u9 f
- i& z0 D$ g( B/ @查看IP的命令 ip addr,如果提示该命令不存在等情况,可试着先更新包:% t, T- W; P) B R# _
" ^1 L% f- `* W% {4 g$ D6 s
apt-get update1 @: o9 J- C3 R7 Q9 I
apt-get upgrade
! |2 f7 j' a( Q% R4 w7 G' e c另一类是通过 Shell控制台 :UID:root ;PWD:「安装时设置的密码」* u/ e. m2 ^" b2 |+ B/ m! G8 d
/ I, H4 y2 J, Z
安装或配置过程中如遇到问题,可通过命令 omv-firstaid 救急,这是一套配置菜单,可清晰的指引完成网络等配置信息。
9 w4 w5 b+ ^& r
0 p: T! V5 v. N: y+ |" U! G原则
3 E: ^& F& ?$ @' @1 s- y- y( ]3 X. Q准确说几年前就有想法要整一套网络存储,适应家庭共享媒体或小工作室协作办公使用,在查阅了网络冠哟OMV的各种资料后确定以下搭建建议或原则:. m' v. a% }$ h2 T8 s! ~
9 M: S: h, _! |& z5 ?- b8 [尽可能不采用虚拟机的方式,作为独立的服务应该享有独立的硬件资源;* Q3 ]4 B; ~4 z+ B: X" y
不采用树莓派的搭建方式,虽然官方有提供,但个人认为这属于玩家们捣腾的世界;
9 X( k3 l# E6 w/ y" ?索引
& D! G) K( t1 s2 _ JOPENMEDIAVAULT 常用命令) Q! a5 k& o5 v) N( y/ f+ Z
OpenMediaVault 是基于 Debian 开发,所以熟悉 Linux 操作的前提下会很轻松。
) o) n" ?5 g1 h: t
% C# E1 i) ?7 `3 u3 aomv-fistaid : 安装配置菜单引导;! l) W1 P4 T7 k' l- q8 w1 Z
, H V6 E& }1 R2 ^1 _* { _2 lip addr : 查看本机IP信息;8 F4 V/ R! J, H/ O
6 S/ [& N0 Z$ s+ l ]4 j$ X8 t; X# b, _dpkg -l | grep openmediavault :检查当前系统版本
5 b( s2 t/ a9 |# A5 I) g% P% L3 R0 r- K1 \0 h
参考资料
2 c, G2 x, h( k. V: DOpenmediavault 官网
$ V& y+ s7 Q1 `( q" C搭建 openmediavault NAS
& {, m/ S$ s* o% E: BGitHub 开发者插件列表- |% a) ?2 r n3 k6 e# r
FileRun Docs$ ?6 `/ X" p, P. p
常见问题& z3 H( c' U5 T" T
更换硬盘 无法创建共享文件夹的问题 |