OverLord

打造私有云,先決條件是要擁有足夠的上行帶寬。什么是上行帶寬呢?這要從我們的互聯網訪問過程說起,在做任何的訪問、瀏覽互聯網操作時,實際是產生兩種數據,一種是一是上傳數據,另一個是下載數據。例如你瀏覽一個網頁,在輸入地址后,我們要發送請求數據查詢,這就是上行數據;在服務器響應你的查詢需求時將內容發送給你,這個過程就是下載數據。這一上一下,才能夠成網絡瀏覽、訪問的操作。
上傳數據的速度就是上行帶寬,但是由于日常我們使用的網絡操作大多數都是下載數據更多,上行數據普遍較小,所以日常使用的寬帶上行速率都要小于下載速率,也就是不對等的。例如你有一個100Mbps的網絡寬帶,實際的上行帶寬只有20Mbps左右,大約是1∶5的樣子,而且很多運營商的上行帶寬在達到一定程度以后就不會隨著寬帶速度(一般以下行帶寬為基準)而增長了(圖2)。
要想實現私有云,筆者建議最小的上行帶寬不要小于50Mbps——在自家寬帶下建立的私有云服務,相當于你在外網查詢、訪問到自家私有云(下載),你的私有云服務器響應后發送的數據到外網(上行),這個過程是“反過來的”,因此寬帶的上行帶寬速率就必須不能太小。


要實現自己的私有云,我們當然要有一臺“服務器”——不用擔心,這和服務商使用的服務器不一樣,我們自用的只需要一臺普通的電腦就夠了——甚至為了降低電力消耗,你可以選擇一些低功耗的機型,哪怕是筆記本都可以,畢竟這是只針對你或者你家人的私有云服務設備,性能并不是特別重要的事情。
除了電腦,還要選擇一個合用的系統,Windows這種桌面級系統就不需要了,選來選去,筆者還是認為最適合一般用戶的是UNRIAD(圖3)——這款系統更加輕量化,且和其他NAS、虛擬機系統不同的是,它不僅對二者的功能兼而有之,而且更為靈活易用。
UNRAID的最大特色和名字相關聯,它的存儲機制是帶有容錯校驗的JBOD磁盤模式,而不是RAID磁盤模式。UNRAID在使用硬盤的時候可以隨意添加硬盤,可以不同大小、不同速度的組合,最后整合為同一個存儲池(圖4),但和Windows不一樣的地方在于,它只需要額外多添加一塊硬盤(容量≥存儲池中最大容量的硬盤)用來做奇偶校驗。由于存在這樣一個用來奇偶校驗的硬盤,UNRAID存儲池中任意一個硬盤壞掉也不會影響任何數據的安全。

當然,存儲數據方式的易用性并不是本文的重點,UNRIAD除了磁盤模式獨具特色之外,在功能上更加優秀:它支持Docker和虛擬機系統。這樣一來,我們就可以通過UNRIAD作為載體,安裝對應需求的系統軟件實現各種功能,例如我們現在要實現的私有云功能。
總體來說,相比NAS類的系統,UNRAID的存儲方案更具靈活性、更適合家用,并且具備完善的虛擬化功能。同時,它的技術門檻極低,只要擁有基本的電腦操作技巧即可掌握使用方式。更為重要的是,它對電腦系統的硬件規格要求不高,哪怕你淘汰的電腦都可以勝任工作。
不過UNRIAD是收費系統(圖5),基礎版支持6硬盤,價格約為390元;高級版支持12硬盤,價格大約為590元左右;專業版沒有硬盤限制,價格也最貴,大約850元左右(注意,UNR AID系統中所有硬盤都會被計數,如校驗、緩存加速的硬盤也計算在內)。免費版本有30天試用時間,建議先免費試用確定需求再做決定。

小知識
什么是Docker?
Docker是一個開源項目,可以輕松創建容器和基于容器的應用程序,最初是為Linux構建的,現在也可以在Windows和macOS上運行。它是一個用于構建應用程序的軟件平臺,可以提供一種小型和輕量級的執行環境用來共享操作系統內核,但在其他方面是獨立運行的,這也意味著它具有極為靈活的部署特性,遠比虛擬機系統要靈活得多。
除了一臺電腦,UNR AID在使用時還需要一個引導用USB閃存盤,這個USB閃存盤的作用不僅僅是引導也是系統盤本身。更重要的是,UNRIAD通過驗證USB閃存盤的UUID來判別是否為正版系統,注意,使用USB接口的移動硬盤是不可以使用的。容量理論上只要大于系統安裝鏡像的大小即可,也就是說你身邊的任意一個USB閃存盤都可以使用。瀏覽UNRAID官方網站下載制作工具(下載地址:https://unraid.net/download)。這個工具是負責制作UNRIAD系統的USB閃存盤安裝工具,容量約為13.7MB(圖6),用于在線安裝(在線下載系統鏡像),并且可以提前進行部分基礎設置,如固定IP等等。

⑥
除此之外還有另一種離線安裝的方式,在官網頁面找到ManualInstallation,在Stable Releases里可以看到多個版本(圖7),推薦下載6.10.3,容量大約為295MB。注意,離線的安裝方式不支持基礎設置,好處在于避免USB閃存盤安裝工具在線下載時過于冗長的下載等待——其下載方式為單線程下載。

⑦
這里,我們以第一種,即USB閃存盤安裝工具的方式來演示。下載完畢雙擊程序運行,點擊第一步的“Customize”,接著在Servername處填寫自定義的服務器名稱,如Server或者你喜歡的名字。然后來到在Network mode處,選擇“Static IP”設置固定IP,確定局域網地址,如10.0.0.10等,具體要根據自己局域網絡的內網IP段來確定,當然也要注意避免已經存在的設備地址,防止IP沖突。最后注意“AllowUEFIBoot”項,如果你的電腦是近些年的,推薦選擇UEFI引導模式,如果是超過十年以上的老電腦,那么選擇傳統模式即可(圖8)。
確認以上信息設置無誤后點擊Write,之后會彈出提示,確認USB閃存盤正確,點擊“Erase and Write”即可開始(圖9)。筆者建議,在制作USB閃存盤時,電腦中只插入一個即將作為系統的USB閃存盤,以免混淆。
這時,USB閃存盤制作工具會先進行下載,這個時間根據網速來決定。如果你的網絡速度不是那么快,也可以考慮之前提到的下載離線安裝包的方式制作USB閃存盤,畢竟下載工具多線程下載時要遠遠快于HTTP單線程下載速度。當然這種方式的問題在于,你不能預設局域網IP地址、服務器名稱等,只能在基礎安裝完畢后,調試階段再進行修改。要使用離線安裝包制作USB閃存盤,USB閃存盤就需要先行手動格式化。
格式化USB閃存盤時,筆者推薦選擇FAT 32格式,并且在卷標的地方填寫“UNRAID”(圖10),注意務必大寫這幾個英文字母,確認后惦記格式化繼續。
USB閃存盤格式化完成后,解壓并復制剛剛下載的離線壓縮包,將文件全部拷貝到格式化好的USB閃存盤里。然后,在USB閃存盤中,找到一個名為make_bootable.bat的文件,注意,此時應單擊鼠標右鍵,在彈出菜單中選擇“以管理員身份運行”(圖11),而不是直接雙擊鼠標左鍵執行。


⑾
在make _ bootable的命令提示符窗口中,會提示是否設置UEFI啟動(根據自己的電腦是否支持來決定),如果是UEFI啟動,根據提示按下鍵盤的Y鍵繼續執導執行即可(圖12)。
以上兩種USB閃存盤制作方式,都可以獲得一個UNRIAD引導系統USB閃存盤。現在,只需要拔下這個制作好的USB閃存盤,并且安裝到即將作為UNRIAD服務器的電腦上,并且連接好網線開機。啟動電腦后,按下鍵盤的Del或者F2鍵(具體根據自己電腦的BIOS進入方法確定),進入BIOS設置USB閃存盤啟動(注意不要選擇按下引導快捷鍵設置,務必使用BIOS中的引導順序設置)。設置完畢后,按下F10鍵(圖13),并按下Y鍵保存退出重啟電腦。
這時USB閃存盤已經開始引導UNRIAD,引導項共有四個,默認引導項為Unraid OS,此時不要進行人為干預,讓其自動進入即可。引導成功后系統為字符界面,會提示預設IP地址,并且為待登錄狀態(字符)。如果你是使用離線安裝包制作的引導USB閃存盤,此時要記錄好這個局域網IP地址,轉到其他電腦上進行設置操作。

當然,如果你暫時沒有第二臺電腦操作又需要進行基礎設置,則可以在引導項頁面時手動選擇Unraid OS GUI Mode模式(圖14),這樣在啟動后UNRAID會自帶一個瀏覽器窗口界面,供設置使用。
我們還是以另一臺電腦操作為例,打開瀏覽器,在地址欄輸入安裝了UNRAID系統的電腦局域網IP地址,如10.0.0.10,系統會UNRAID安裝完畢,我們就可以通過其他電腦的瀏覽器進行配置調整了。只需要在瀏覽器地址欄輸入剛剛安裝好的UNRAID IP地址就可以進入主界面。注意首次登錄的時候輸入用戶名ROOT即可(圖15),無需輸入密碼(后期可以自己設置)。
第一次打開后,UNRIAD配置頁面右上角會提示Unregistered/未注冊。此時,點擊下方右側的“Get Trial KEY”按鈕就可以獲取試用版秘鑰開始試用(圖16)。需要注意一點,UNRIAD系統的時間必須和UNRIAD遠端服務器的時間一致,否則是不能獲取到試用秘鑰的。
如果你遇到了無法獲取試用秘鑰的情況,這一步暫且跳過,進入主界面后點擊“設置”切換選項卡,然后找到“Data and Time”填寫一個時間服務器,如在NTP Server 1處填寫“time.apple.com”(也可試用ntp1.aliyun.com或s1b.time.edu.cn)即可同步時間。注意,時區也要正確,即UTC+8(圖17)。
基礎工作準備完畢,我們就需要配置UNRIAD了。切換選項卡到“Main”一項,然后分別設置磁盤。對于一般應用,我們可以忽略掉校驗盤(Parity Devices)、緩存盤(Cache Devices),只使用存儲磁盤功能(ArrayDevices)。
在Array Devices處,略過前兩個Parity選單,在Disk 1/2/3……處點擊右側的下拉三角圖標,添加電腦上存在的存儲硬盤(圖18),根據自己的需要選擇性添加即可。

添加好硬盤之后,下拉滾動條找到下方的“Array Operation”,點擊“Start”開始構建磁盤存儲(圖19)。
注意,此時該處會提示要求格式化硬盤,勾選點擊格式化后面的“Yes I want to do this”,然后點擊“FORMAT”按鈕(圖20),稍候即可完成。

UNRIAD的磁盤系統每次啟動默認是不掛載的,以方便用戶自行調整磁盤存儲設置。但是這對我們使用云盤服務會造成障礙——總不能每次開機都要手動對“服務器”設置后才能使用。因此,我們需要設置啟動后自動加載磁盤系統。在UNRIAD主界面上找到“Settings”選項卡中的“Disk Settings”項,然后將“Enableauto star t”處修改為“YES”(圖2 1),點擊“APPLY”生效,這樣每次開機啟動UNRIAD,它便可以自動掛載磁盤系統。
加載磁盤后,我們就可以進一步操作了——面對全英文界面可能很多人還是不習慣,我們可以進一步將其切換為中文版本。在UNRAID主界面點擊“PLUGINS”,然后在“Install Plugin”中填寫如下地址:https://gitee.com/BlueBuger/community.applications/raw/master/plugins/community.applications.plg,并點擊后面的“INSTALL”按鈕安裝(圖22)。

安裝完畢后刷新瀏覽器頁面,主界面的選項卡中會多出一個“APPS”選項,點擊切換到該項上,找到左側列表中的“Language”一項點擊進入(圖23)。

下拉瀏覽器右側滾動條,找到簡體中文語言包,點擊“INSTALL”安裝(圖24)。
安裝成功后,刷新系統就成功套用了簡體中文顯示(圖25),這樣后續的操作就會方便很多。
添加好存儲空間后,我們就需要啟用Docker了。方法是切換到“設置”選項卡,找到Docker項(圖26)點擊進入,然后將“啟用Docker”更改為“是”(圖27),這樣在主界面選項卡中會多出一個“Docker”選項,我們就是要依靠它來實現私有云的搭建了。

第一步,先點擊切換到“應用”選項卡,在搜索框輸入關鍵字“mariadb”并按下回車執行,找到mariadb數據庫,點擊“安裝”配置(圖28)。

在設置界面修改MYSQL _ ROOT_PASSWORD和MYSQL_PASSWORD兩項,填寫你自己能夠記得住的密碼,其余選項默認即可,不需要改動(注:如對端口有自定義需求,可自行更改)。確認無誤后點擊最下面的“應用”開始Docker數據庫的安裝(圖29),稍后便可以看到配置成功的提示信息,點擊完成繼續。
回到UNRIAD主界面,點擊切換到“Docker”選項卡,你可以發現mariadb的Docker已經運行,此時對著mariadb圖標左鍵單擊,彈出菜單里選擇“控制臺”(圖30)。
在彈出的命令提示符界面輸入“mysql-uroot-p”回車,此時會提示輸入密碼,輸入之前設置的密碼(MYSQL_ROOT_PASSWORD一項的密碼),注意,屏幕不會顯示你輸入的密碼字符(圖31)。
輸入命令“create database test;”并回車,創建數據庫(圖32),注意create database test命令中含有英文半角分號,不可忽略。其中“test”為自定義的數據庫名稱,可以自行根據喜好更改。

接著輸入命令“show databases;”查看數據庫,同樣記得命令后帶有英文半角分號。此時可以看到,數據庫內容中出現了一個名為“test”的數據庫(圖33)。
回到主界面,點擊“應用”選項卡,輸入NextCloud回車,找到NextCloud云服務,點擊“安裝”配置(圖34)。此時Next Cloud會提示選擇配置安裝的版本,筆者推薦“Default 使用模板的默認標簽進行安裝 (:latest)”。(圖35)在NextCloud配置頁面,我們要特別關注兩個地方,第一是端口部分,NextCloud默認使用443端口,為了安全和不沖突,建議手動修改端口號,例如端口號6000(圖36)。如果讀者懂得端口號的規則,也可以自行定義為其他端口號。第二個要注意的地方就是存儲位置,注意,這是NextCloud的存儲位置,不是mariadb的數據庫存儲位置,不要混淆。



配置完畢,切換選項卡到“Docker”頁面,左鍵點擊NextCloud圖標,在彈出菜單中選擇“WebUI”。(圖37)

注意,因為我們沒有SSL證書,瀏覽器會提示“您的連接不是私密連接”,只需要點擊下方的“繼續前往10.0.0.10(不安全)”(圖38)即可。

(38)
在新的瀏覽器頁面中開始配置NextCloud,先在“創建管理員賬號”中設置NextCloud的用戶名與密碼,這個根據自己需求設置即可。然后點擊“存儲與數據庫”,然后切換“配置數據庫”中的“SQLite”到“MySQL/MariaDB”一項,對應填寫mariadb數據庫設置時的內容,如數據庫用戶名為ROOT,數據庫密碼填寫MYSQL _ROOT_PASSWORD一項的密碼,數據庫名填寫之前設置的test(圖39)。最后是Localhost一項,要切換回UNRAID頁面中的Docker一項,找到MariaDB的本地地址,如172.17.0.2:3306(圖40),將其填寫到Localhost項即可。確認無誤后點擊頁面下方的“安裝”。

(39)

(40)
如此一來,你就擁有了一個完全屬于個人的私有云平臺,在NextCloud的首頁面,可以自定義安裝多種功能應用,甚至是一個云協作平臺,如果不需要點擊“取消”即可(圖41)。進入NextCloud后,你可以看到自己私有云平臺的內容概覽,還可以設置天氣位置,讓它的功能更為豐富。在NextCloud左上方的圖標按鈕,可以切換不同的頁面,包括文件、圖片等等,一切還是等你親自去發現——你會發現,這是一個堪比付費服務云空間更出色的平臺,而且一切,可以只為你自己服務!

(41)