起因
過年時從家里的舊電腦上拆下一塊機械硬盤(NTFS格式且含有資料),回來后發現筆記本想讀硬盤里的資料是件很麻煩的事。
一個簡單的解決方法是,某寶買一個"硬盤底座"就好了,不過想到家里的小主機一直閑着也是閑着,本着折騰和物盡其用的原則,准備自己動手搭一台NAS服務器。
設想中的NAS服務器應該有以下特征:
- 能讀取物理磁盤上的資料。
- 能在內網中提供文件共享(Samba、NFS、AFP)服務,方便其他設備讀取資料。
- 能提供文件備份服務,定期備份手機相冊。
動手嘗試了幾款出名的NAS系統:FreeNAS、Rockstor,都不太符合我的需求,此類產品為了保證數據的安全性,大部分使用ZFS系統,並限制其他格式,經過嘗試雖然還是可以掛載NTFS格式,但轉念一想,為什么我要繞一大圈來"破解"系統本來限制的功能?我想要的僅僅只是一個文件共享以及對應的Web管理界面而已。
明確了需求后,我嘗試尋找一些帶Web管理的操作系統,最后,我找到了本文的主角:Webmin。
Webmin簡介
Webmin是目前功能最強大的基於Web的Unix系統管理工具。管理員通過瀏覽器訪問Webmin的各種管理功能並完成相應的管理動作。目前Webmin支持絕大多數的Unix系統,這些系統除了各種版本的linux以外還包括:AIX、HPUX、Solaris、Unixware、Irix和FreeBSD等。
(內容摘自百度百科)
簡單來說,Webmin提供了一個Web管理平台,使得常見的應用都可以在GUI界面中進行配置,代替那些難記的命令。
這東西簡直太符合我的要求了,只需在CentOS上裝個Samba,再加個管理界面,NAS就成了。
我不在乎數據的安全性,也不用管那些RAID,磁盤壞了就壞了吧。
我需要的僅僅是一個數據的暫存區,文件在局域網內共享,並且定時將特定數據上傳到雲盤就好了。
Proxmox中創建虛擬機
搭建平台前,首先要在Proxmox中創建一台虛擬機,考慮到我只需要跑幾個服務,我選擇了輕量級容器LXC。
第一次使用LXC,要先下載模板,選擇存儲中的"local"--"內容"--"模板",根據需要下載對應模板。
有了模板之后,點擊Proxmox控制台右上角“創建CT”,設置root密碼,選擇要使用的模板,CPU,內存等配置。
虛擬機創建好了,還需要將物理磁盤進行映射,通過閱讀官方文檔,在Host機上執行以下命令:
注意:LXC容器不可以掛載NFS和塊設備
pct set 104 -mp0 /dev/disk/by-id/ata-WDC_WD5000AAKX-001CA0_WD-WMAYUM449361-part1,mp=/storage
如果使用KVM,也可以映射物理磁盤(官方文檔),使用以下命令:
# 將104換成虛擬機ID,by-id后名稱替換為自己硬盤
qm set 104 -virtio2 /dev/disk/by-id/ata-WDC_WD5000AAKX-001CA0_WD-WMAYUM449361
查看虛擬機信息,可以看到磁盤或者分區已經掛載好了。
這里雖然成功掛載了,實際使用時會提示Read-Only file system,解決方法是在宿主機安裝ntfs-3g:
apt-get install ntfs-3g
安裝Webmin
Webmin提供了多種安裝包,其中當然包換CentOS,打開虛擬機shell,使用命令下載RPM包並安裝:
cd /tmp
curl -O http://prdownloads.sourceforge.net/webadmin/webmin-1.840-1.noarch.rpm #注意是大寫字母O
yum install webmin-1.840-1.noarch.rpm
安裝完成后,訪問 https://webmin:10000 就可以看到Webmin的真容了。
安裝Windows共享
開啟Windows共享需要安裝Samba,在虛擬機的shell中執行命令:
yum install samba
安裝完成后,點擊Webmin中的"Refresh Modules",就可以看到新添加的Samba模塊了。
添加Samba用戶
選擇Samba模塊中的"Convert Users",將Linux系統中用戶轉換為Samba用戶。
"Samba Users"中可以修改用戶信息。
添加Samba共享
點擊"Create a new file share"來添加一個共享,勾選"Available"和"Browseable"。
編輯添加好的共享,選擇"File Permissions"--"Force Unix user",輸入"root",以保證有足夠的權限訪問該文件夾。
配置好后,點擊Samba模塊下方"Start Samba Servers"開啟服務,Windows中就可以順利訪問共享了。
安裝Linux共享、Mac共享
Linux共享,使用NFS。
Mac共享,使用Netatalk。
Netatalk與Webmin整合需要手動安裝模塊。
https://sourceforge.net/projects/netatalk/files/Webmin/
https://github.com/Netatalk/webmin-module
Linux、Mac共享,只需安裝上述兩個包,而后在GUI界面中進行配置,這里就不再闡述。
總結
Webmin提供了另一種操作Unix系統的方式,使其可以在Web端管理服務器,甚至支持移動設備(雖然小屏幕看起來亂糟糟的)。
這篇文章只是拋塊磚,大家可以發揮更多的想象力,讓程序給我們提供便利。
下次我將介紹手機同步軟件FolderSync及雲盤同步軟件,打造自動備份系統,讓丟照片成為過去。