现在都尼玛6.5了,0.几的版本就开始测试了,不稳定,不能生产使用。0 u H: p" `$ S# n; }
OpenMediaVault 经济高效的NAS解决方案
3 T* g# K; m6 L; ]0 d1 |* S7 j背景* e- J9 \# V% I$ H7 Z0 M: y* w
捣腾一套网络存储即方便家庭媒体共享,也适应小工作室协同办公,这事不定期地琢磨有好几年了。
- i3 h u6 z) @3 S" J* `: O! Y
/ t: p* i( o$ `2 `6 y最开始了解了主流的网络存储方案,市面供应商包括群晖、威联通,也是自己之前关注过最多的两项,两者之中更偏向威联通,从软件界面来看更简单清爽。) P6 V5 g6 C. S5 j4 {" u+ c( t- L
, t/ V4 ]$ k( L. S: ^而今,最终决定还是自己利用现有的闲置电脑已经购买的 世特力 硬盘盒来搭建,从经济上会节约很多,虽然 世特力 硬盘盒也不便宜,但相对于群晖、威联通等4~ 5盘位动则三四千的价位来说已经很经济了。 R. [' D j9 ]* x$ S
{% ], V& M, n4 n7 B0 b两年后的今天,重新捣腾采用Ubuntu Sever 20.04 + FlieRun 实现自己的个人网盘服务。 个人网盘搭建过程 FILERUN ——update 2022.04
& \/ s* g- |# P6 w
/ k4 u, o) I, M) J$ n. i方案
, |( J( e; e* D# a硬件: g( @$ p' u N8 L$ n2 L
网络上提供的安装硬件大致两类,一是现有操作系统搭载虚拟机;二是捣腾官网提供树莓派的玩家;个人查阅资料感觉还是采用闲置的独立电脑主机搭建,配置如下:
/ e2 K3 \( ^! A# [1 Y0 z+ Z6 r; o
机型:戴尔(DELL)Vostro 270S-R136-JN 台式电脑(双核i3-3220 2G 500G DVD WIFI USB3.0)
# z5 Y0 h( o) j6 u1 l- o$ H" ]( K处理器:Intel® Core™ i3-3220 CPU @ 3.30GHz 3.30 GHz& D- z, }! E: T1 F# u7 }
内存:6.00 GB(5.88 GB usable)
/ A1 l/ f ^" M3 x6 l" U6 M2 Q! o硬盘:WDC WD5000AAKX-75U67AA0 (500 GB)0 G6 P; F) W' N5 o* L \
该机器2013年4月14日购入,当时售价:¥3349.00; s- B! `5 F0 u2 _( M7 L
$ X/ b' X7 b' U6 G- w" F# L关于方案的选择性思考包括硬件、软件两方面,其中软件在最开始已经基本确定是 Openmediavault,而硬件方面出于需支持 磁盘阵列的部署,则经历了多次心路历程:+ Q' T- t ~2 L, i# j, p
" s- q& E Y4 ?: {2 ^+ L& G s1、通过2013年 Dell 台式机+ 世特力 硬盘盒来实现,但发现硬盘盒仅提供USB连接,外置连接方式可靠性不高;& [$ O% n2 d6 z
% Y ^- Z6 Y1 N) }9 x, X
$ O: ~% n; ?( D5 ~) @
2、通过2002年的一台 Acer 台式机(大学时期购买的二手机)来实现,优点:机箱大盘位多;缺点:主板老,BIOS不支持USB引导启动, 功耗高且不静音;! ^/ W4 l* n; w8 X
; t0 D/ E: J B! \- A5 z- x @2 I
3、继续采用2013年 Dell 台式机完成,缺点:机箱太小缺少硬盘位,不具备扩展空间。琢磨后发现可以通过插入U盘作为系统盘,经过测试发现U盘读写速度很喳,试着安装几次系统后发现不管速度慢,且容易出错,稳定性极差。最终放弃,改用一块120G容量的2.5寸移动硬盘作为系统盘顺利安装,因为盘面体积较小顺便在机箱找个位置固定即可。
( e" g' v( G" \8 b4 x$ @; }# P4 z" \6 n5 e- a9 T$ T
最终方案,120G 2.5寸机械硬盘(系统盘) 、480G SSD、两块 3Tb 3.5寸机械硬盘作镜像存储(RAID 1模式),其中受机箱位影响,需要将现有的光驱位腾出来改作硬盘位,网上有改装工具:“光驱位转硬盘位”工具)# C1 `- ]; u$ d4 E* J6 @
8 @. g% X4 ~& W6 b4 x分区方案6 O0 {1 s! }$ I4 c
ZFS:基于成熟的Oracle技术,拥有最多的特性,集成RAID技术,应该是首选的方案。虽然因为协议问题没有在Debian的主库中,但是仍然可以使用。; j- r8 z+ z4 D+ x
LVM2 + Linux RAID:基于Linux维护的软件与库,使用最多的方式。
, ~0 E3 \7 E$ {% J; jMergerFS + SnapRAID:构建于底层分区体系上的方案,没有实际使用。
# R5 g- ]2 m8 }5 w% i" x# [8 p" @最初通过在OMV上安装ZFS插件,尝试使用ZFS,但是OMV对ZFS支持不佳,应该是设计缺陷,无法在ZFS分区上创建共享目录(Shared Folders),导致无法在GUI上方便使用,于是无奈弃用。。。0 j" H5 m1 \+ s% u8 T. m
关于MergerFS + SnapRAID方案,因为是较新的方案,还未调研功能性与稳定性,不做评论。
7 g" L" x# h$ S: C ]最后的选择是使用最常见的LVM2 + Linux软RAID。
. D9 h7 B- F( n
$ V8 {( Y9 a2 w: c以上来源: via: mosrv.com/nas/2018/05/01/nas-build-and-config.html- O9 m7 K/ m4 K& i6 L+ Y
+ b8 F3 m- A/ N0 }& a$ {; i软件, R* t+ ^& E% Y) e
软件方面,最开始知道的是 FreeNAS ,后来发现 Openmediavault 才是最佳选择,原因参考网络的资料:5 L |# P$ v: B
& k* X. t' y/ A6 M" w. q
Synology DSM+ z6 ?& E, |- x
$ g' c6 T5 L1 s& E* Z
1、相对臃肿,不够简洁;
* i8 T2 J' O6 ^& ?3 F' }2、每块磁盘上都会安装 DSM,包括存储安装的软件及其数据,导致用户存储和操作系统耦合,尤其是频繁的读写影响每块硬盘的休眠功能;
" l8 o" M1 c" ?) d' M6 y9 G/ _3、DIY 设备安装运行涉及版权,无法稳定升级版本;
" J. f) |! s' M! s0 \2 S0 @- V1 k0 L3 [: k5 o7 s
FreeNAS8 z' y C& M. O4 \- B4 U
- I* G! s$ `1 x. q" k
对硬件要求比较高,尤其是内存最低要求 8G,其未来的目标用户应该主要是企业。
7 Q6 A9 F- Q' j
; Z" ]* Y( P$ A( J# uopenmediavault, B, W8 I9 y1 s8 P- i* r U: J5 g
( H" f2 \; t7 v5 d* g; @" M$ \- ?基于 Debian Linux,开源免费。openmediavault 的目标就是面向家庭和小型办公环境,是对熟悉 Linux 又追求最小化安装的人的首选。+ U/ Q, b: M5 E4 L
7 Z/ B- V: L4 r9 {注: 更多软件解决方案可参考 几个常见的 NAS 系统整理及选择( r7 p' O5 \+ A! I- ~: i, V
' b4 T4 _2 e& H2 B: a1 Y
安装 OpenMdediaAvault2 `# l* Z; B$ R
文件系统及挂载信息
1 i; l0 ^( u* Q3 C. e4 k
: J; U3 J% H& w* wroot@nas:/dev# df -h
7 z! M2 b/ ^# P; |安装 OMV-EXTRAS9 {+ H8 t) Z2 q! k1 ]' g, W
在安装完OpenMediaVault 系统后,基本上完成了第一阶段的基础性功能服务,正常使用NAS问题已经不大。不过如果要根据自己的其他定制化需求,则可以考虑继续安装一些容器或插件。3 i$ L7 p) `! i* T$ R7 s5 e
! j$ e" W7 M7 U$ U' L
通过网上了解,最基本的容器就是Docker,也是最常用的。安装Docker之前需要安装 omv-extras,命令如下:
+ K9 T' v: j Q; P
0 l9 j9 N. {$ n3 ]
* @# h3 q' }- B! D# `- gwget -O - https://github.com/OpenMediaVaul ... /raw/master/install | bash. s( \. D7 Q' d# A% e L
ref: https://github.com/OpenMediaVault-Plugin-Developers/installScript
3 [2 f4 g6 I8 _- \) o. v- p6 I6 M1 y, V+ v$ j# x
注: 如果显示什么 443 failed: Connection refused. 就是网络源被墙了,该死的CCP!
, m& I" s% R& l5 W+ I, v& d# e- o) U0 K
方法总比问题多, 习惯采用Google 英文搜索有好处! 此时当采用线上命令无法读取源安装时,只能下载 deb 文件包通过web 插件管理界面上传后安装。 下载文件参考:forum.openmediavault.org/index.php?thread/5549-omv-extras-org-plugin/
- B' f/ d" J+ f! G9 w( ~7 z$ g* B/ \. h7 W9 r! P
安装 DOCKER
/ V! W0 L7 _% v完成插件 omv-extras 的安装是具备安装Docker的基础,而Docker容器又是作为安装流行的云应用 NextCloud 的基础,真是环环相扣啊…- O$ v4 U/ O2 D& {% D9 F* y/ _$ T
! {' x# c5 d' _( Q8 y6 Z0 L
Docker 的安装相对简单,在安装完 omv-extras 后,通过左侧管理菜单 OMV-Extras 进入切换到 Docker 标签页直接安装即可。Portainer 作为一套轻量化的Docker 可视化工具也可以一并安装。
7 F# u( f, e) J4 J5 P8 a+ d$ Y$ U j* v# ^
安装完成之后可通过 yourdomain.com:9000 进入,比如: nas.sheshui.me:9000。初次登录需要设定管理密码,UID默认为admin。
- o8 ^, w1 }: _3 i# I6 [3 S/ ]# Q& X2 W
安装 NEXTCLOUD
/ E# e5 r! S! G$ b I经了解有人反馈 NextCloud 吃资源等各种不是(参考 淘汰Nextcloud,一行命令搭建功能强大的个人网盘FileRun FileRun
1 D$ w+ N% ^7 B- w6 X" _1 j, A% f: ^9 t; D- _) W
如需坚持安装 NextCloud 可参考文章 OMV安装NextCloud3 W! f- c. |/ W( L! ]8 ~8 J
: U3 E! X1 ^0 r% L& ~% l* v安装 FILERUN* l4 Q4 ^7 r! t
在OMV上还是需要依赖 Docker 容器安装方式,参考教程 FileRun installation using Docker
3 A- N8 \2 c: u6 m3 y1、拉取 FilesRun 镜像文件
$ s& E& I5 l9 J! E& g. R9 F' y" |( a V9 u0 w
docker pull afian/filerun; e/ o$ P e2 l( n' f" t6 p" p" _
2、创建配置文件1 i& m$ M7 D9 w( C6 y9 r
9 C9 u6 _% m4 f. J3 P% H
version: '2'
3 g! Q4 D2 O+ e* o: V5 F: E( H7 G. [/ Y7 O6 [$ j
services:+ m6 q9 ]8 D, v
db:8 q+ ]* T5 r1 F T3 ] f6 W
image: mariadb:10.1& G: ]% @! y' V& ]1 T
environment:* [8 q: y2 X7 D
MYSQL_ROOT_PASSWORD: filerun% ?7 E* X0 o9 V4 C: N* ~( n4 D
MYSQL_USER: filerun
" f8 ^0 a, T& U+ g, L K MYSQL_PASSWORD: filerun8 Y! w2 h6 K9 P" W4 z; Q8 K
MYSQL_DATABASE: filerun
3 c) Y8 u4 V ]9 s+ d volumes:/ u, G' M4 e7 k c
- /filerun/db:/var/lib/mysql
6 e3 n+ N# L( a5 S7 |6 c
& m6 L+ C+ f, ^; Z) W6 r+ m a web:& \; e2 t1 i. w) A1 g* E
image: afian/filerun
0 s+ o7 u4 i9 {" r4 }5 x6 P5 o environment:
! \4 h/ A E7 v# M" K# U) b/ w* h FR_DB_HOST: db+ b, G: C: a9 ~4 M0 a1 G
FR_DB_PORT: 3306
1 O; Z, E3 N" x; M$ X" h. | FR_DB_NAME: filerun0 f5 [6 B3 p/ s0 P3 `* P
FR_DB_USER: filerun' [- B" j* y0 k
FR_DB_PASS: filerun
9 t( b- w, {1 M% G% R. f& C. ` APACHE_RUN_USER: www-data3 `2 {* A P9 \2 \: ~+ `4 T
APACHE_RUN_USER_ID: 33
+ D' ^# }- g7 W' M APACHE_RUN_GROUP: www-data
& h* q# H3 N' C7 E APACHE_RUN_GROUP_ID: 332 r+ N, s& k1 [
depends_on:4 B2 Y9 E5 k- \* G6 p0 |
- db
( t. i" O; Z( f/ E" X9 o links:
& x* X0 V& k$ T- N6 u* O - db:db) V/ a7 B: l4 ~% A3 c
ports:5 D" h# T+ v( j5 k% t5 h% Q
- "3000:80"
2 @/ ?4 L6 f# A5 z- {9 L3 f9 o) c volumes:
9 v: K# Y# J0 V0 P) T0 ]! h, `, f - /filerun/html:/var/www/html1 Y g) J2 c4 P$ G. V
- /filerun/user-files:/user-files5 w: h8 e, ~6 t- I) t
上述配置模板参考 docs.filerun.com/docker ,将使网站目录映射为/filerun/html,用户目录为/filerun/user-files,端口映射配置80:80,前为对外端口,后为容器端口。*此处要注意因对外80端口已在OMV web服务中占用,所以需自定义修改端口,如: - "3000:80" * 否则会因端口冲突出错。
2 i* h9 F [3 Y' m$ ~4 ?+ ^' i+ O: ~& }
3、创建文件目录" b: \. H, J7 F) ?! q" j
: `# O/ q- X" o" ?2 x: h
mkdir /filerun /filerun/html /filerun/user-files9 c* E4 W1 F G7 K/ ?, a% S
4、运行& d \3 |' X; T! b; H, i5 u: f* L$ j+ ]
+ ~) J8 R8 o3 J0 F$ x) r/ p. ]docker-compose up -d/ P5 E; k- e3 C$ n g7 A0 t
运行过程中还会下载安装一些library,成功后会展示如下信息:
8 f2 ?* `1 ]. o* P, _% L( E
0 J7 H* |: Y) X" `! r$ o( y9 gCreating root_db_1 ... done! n+ M7 e. t* _9 d( F" X9 @
Recreating root_web_1 ... done0 m' M' S+ k5 G% B2 S1 k$ G) r7 Q# h
通过web访问进入 htttp://yourdomain-localhost:3000, 默认登录:Username: superuser ; Password: superuser,首次登录后强制要求修改密码。
8 K N; C! n' ]8 a4 X6 H7 s
5 } [+ C1 e& `8 V* ?; h1 ]系统安装
1 `9 P1 x9 C' [$ D- D; B7 fOpenmediavault 对硬件要求较低,官网给出的信息如下:
# h$ `6 b- w0 s$ ]/ S4 Y3 n( H' a. O u; V# h, c; [4 y
CPU: Any x86-64 or ARM compatible processor
+ R' @8 q$ Q; ^! l7 H, [" i- x8 u4 {RAM: 1 GiB capacity7 n% s' I% C: M$ g
HDD:9 Y. s# E& E8 ]: P$ u/ W
System Drive: min. 4 GiB capacity (but more than the capacity of the RAM)
# y6 `5 I! x3 F9 x" OData Drive: capacity according to your needs
( X+ ]* D& Y( m+ e. l安装个人认为分两个阶段,一个是初始化安装可以通过web登录管理界面的阶段;第二个则是在此基础上安装各中容器插件或应用服务。5 y5 V( U F) z7 j
: f4 V6 l1 a% K! V6 P( h
登录9 r( w) x2 I, z. E0 a: A
登录分两种,一类是Web管理界面,默认登录信息如下:; l! { H7 T* |$ k
$ ^+ F1 ?* T0 T( w4 K/ W& P. AUID:admin
6 R- L& h6 B( ]" I y, tPWD:openmediavault$ @0 K$ r+ |5 r
( C- _7 h3 T9 f# @. x! R( A; k* J
前提:已连接网线并配置IP后(WIFI不太好使,需连网线),通过浏览器登录查看。
; ~7 S! ] `* t, a2 ? g& K0 ?- {6 U4 _8 m% S) x R! _
查看IP的命令 ip addr,如果提示该命令不存在等情况,可试着先更新包:! [ h4 T5 |5 o5 P2 v. X' R
3 U2 Z- ~6 p( v8 {' P! @: ]2 @& w7 G
apt-get update
% U, M: b$ g. s% u* D+ a' e4 h: napt-get upgrade9 S& b0 T- H* |' d4 O
另一类是通过 Shell控制台 :UID:root ;PWD:「安装时设置的密码」# E9 O0 t; h7 r$ v& m2 O9 \ {( M' w
/ `9 D4 Y( H) u2 W
安装或配置过程中如遇到问题,可通过命令 omv-firstaid 救急,这是一套配置菜单,可清晰的指引完成网络等配置信息。! U6 u9 {* }6 h
8 L3 V! T4 q) k" x. {原则) {1 d& g6 a4 H% M1 P! }
准确说几年前就有想法要整一套网络存储,适应家庭共享媒体或小工作室协作办公使用,在查阅了网络冠哟OMV的各种资料后确定以下搭建建议或原则:
' I- }: ], t e/ w w) x7 d
$ j5 c( N5 O1 N, S* {尽可能不采用虚拟机的方式,作为独立的服务应该享有独立的硬件资源;
9 G* D3 \2 y: ]! v; D4 K不采用树莓派的搭建方式,虽然官方有提供,但个人认为这属于玩家们捣腾的世界;) c: \* F$ t3 K3 y& ^3 Y6 M
索引5 {- P" W2 a+ T0 c/ L2 M+ f
OPENMEDIAVAULT 常用命令$ \* r8 d$ L4 C0 u) q% v) m
OpenMediaVault 是基于 Debian 开发,所以熟悉 Linux 操作的前提下会很轻松。
8 }1 V# u7 _ N# p1 ] }
+ c4 m% v9 }0 q0 C: r gomv-fistaid : 安装配置菜单引导;5 ?; [6 ~' j1 U2 M# [+ c
0 p/ }+ c* }: ?& G: T0 Jip addr : 查看本机IP信息;
2 A4 G: @3 t8 f4 N+ b1 D$ z' L7 _" l+ t2 j
dpkg -l | grep openmediavault :检查当前系统版本5 J6 h1 u2 |( j! v! G" j: t
/ E# ?9 O7 p; h( B" Q/ ~! {参考资料
, ?2 W- @% b* J5 p/ WOpenmediavault 官网
# Y# J, t: C X+ w- [搭建 openmediavault NAS1 N+ C! W+ G% C2 h+ u8 n
GitHub 开发者插件列表! U* g7 x4 O+ }( `: t, x6 c* W
FileRun Docs- ?5 I' Q3 `, g: M8 E1 k
常见问题6 N c* a/ O9 J" [* `7 c" f
更换硬盘 无法创建共享文件夹的问题 |