使用 Fedora ARM 伺服器來做 3-2-1 備份計劃
Fedora 伺服器版操作系統可以運行在類似樹莓派的單板計算機(SBC)上。這篇文章針對的用戶是想要充分利用實體伺服器系統,並使用類似 Cockpit 的內置工具進行數據備份和個人數據的恢復。這裡描述了備份的 3 個階段。
必要的準備
想要使用本指南,你所需要的是一個運行著的 Fedora Linux 工作站和以下的項目:
- 你應該閱讀、理解和實踐 Fedora 文檔中 伺服器安裝 和 管理 的要求
- 一塊用來測試 Fedora Linux 的 SBC(單板計算機)。在這裡查看 硬體需求
- Fedora ARM 伺服器 原始鏡像 & ARM 鏡像安裝器
- SD 存儲卡(64 GB / Class 10)和 SSD 設備兩選一
- 乙太網 / DHCP 預留 IP 地址或者靜態 IP 地址
- 提供了 ssh 密鑰的 Linux 客戶端工作站
- 選擇雲存儲服務
- 有額外可用的 Linux 工作站
對於這套環境,在寫這篇文章的時候,由於成本和可用性的原因,我選擇樹莓派 3B+/4B+ (其中一個用來熱切換)。當使用 Cockpit 遠程連接樹莓派伺服器時,你可以將樹莓派放到路由器附近以便設置。
加強伺服器的安全
在 SBC 完成伺服器的安裝和管理後,用 firewalld 加強伺服器的安全是一個好的做法。
連接存儲設備到伺服器之前,一旦伺服器在線你必須設置好防火牆。firewalld 是基於區域的防火牆。在依照 Fedora 文檔完成安裝和管理指南之後,創建一個名為 FedoraServer
的預定義區域。
firewalld 里的富規則
富規則 用來阻止或者允許一個特定的 IP 地址或者地址段。下面這條規則只從(客戶端工作站)註冊的 IP 地址接受 SSH 連接,並斷開其它的連接。在 Cockpit 終端或者客戶端工作站終端運行命令是通過 ssh 來連接到伺服器的。
firewall-cmd --add-rich-rule='rule family=ipv4 source address=<registered_ip_address>/24 service name=ssh log prefix="SSH Logs" level="notice" accept'
拒絕所有主機的 ping 請求
使用這個命令來設置 icmp 拒絕,並且不允許 ping 請求:
firewall-cmd --add-rich-rule='rule protocol value=icmp reject'
要進行其它防火牆控制,比如管理埠和區域,請查閱以下鏈接。請注意錯配防火牆可能會使安全出現漏洞受到攻擊。
配置文件伺服器的存儲
下一步是連接存儲設備到 SBC,然後使用 Cockpit 對新插入的存儲設備進行分區。使用 Cockpit 的圖形化伺服器管理界面,管理一個家庭實驗室(可以是一個或者多個伺服器)比之前更加簡單。Fedora Linux 伺服器標準提供了 Cockpit。
在這個階段,一個通過 SBC 的 USB 插口接電的 SSD 設備無需額外電源供給就可以工作。
- 將存儲設備連接到 SBC 的 USB 介面
- 運行之後(按上面的「必要的準備」所設置的那樣),然後在你的客戶端工作站瀏覽器上訪問 機器的 IP 地址:9090
- 登錄進 Cockpit 之後,點擊 Cockpit 頁面頂部的「 打開管理訪問許可權 」
- 點擊左邊面板的 「 存儲 」 按鈕
- 選擇下面顯示的 「 驅動器 」,然後分區並格式化一個空白的存儲設備
- 在選定的存儲設備這個界面上,創建一個新的分區表或者格式化並創建新的分區。當初始化磁碟的時候,在 「 Partitioning 」 類型選項上,選擇 「GPT 分區表」
- 選擇一個文件系統類型,這裡選擇 「EXT4」 。這對於一個限制 I/O 能力(比如 USB 2.0 介面)和限制帶寬(小於 200MB/s)的設備是適合的
- 要在設備上創建單個佔據整個存儲空間的分區,指定它的掛載點,比如
/media
然後點擊 「 確定 」 。 - 點擊 「 Create partition 」,創建一個掛載點為
/media
的新分區。
創建備份和恢復備份
備份很少是一刀切的。這裡有一些選擇比如數據備份在哪裡,備份數據的步驟,驗證一些自動化,並確定怎樣來恢復備份了的數據。
備份 1. 用 rsync 從客戶端遠程同步到文件伺服器(樹莓派)
這個傳輸用到的命令是:
rsync -azP ~/source syncuser@host1:/destination
參數:
-a
/--archive
:歸檔-z
/--compress
:壓縮-P
/--progress
:顯示進度
要使用更多的選項運行 rsync
,可以設置以下的選項:
--inplace
:直接替換來更新目標文檔--append
:追加數據到較短的文檔中
在將文檔備份到存儲空間之前,源端文檔的文件重複消除和壓縮是減少備份數據容量最有效的方式。
每天工作結束,我會手動運行這個。一旦我設置了雲備份工作流,自動化腳本是一個優勢。
關於 rsync
的詳細信息,請在 這裡 訪問 Fedora 雜誌的文章。
備份 2. 使用 rysnc 從文件伺服器遠程同步到主要的雲存儲上
選擇雲存儲是考慮的因素;
- 成本:上傳、存儲空間和下載費用
- 支持
rsync
、sftp
- 數據冗餘(RAID 10 或者運行中的數據中心冗餘計劃)
- 快照
符合這些雲存儲標準之一的就是 Hetzner 託管的 Nextcloud– 存儲盒子。你不會受到供應商限制,可以自由切換而沒有退出懲罰。
在文件伺服器上生成 SSH 密鑰並創建授權密鑰文件
使用 ssh-keygen
命令為文件伺服器和雲存儲生成一對新的 SSH 密鑰對。
ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key . . .
插入要求的 SSH 公鑰到新的本地授權密鑰文件中。
cat .ssh/id_rsa.pub >> storagebox_authorized_keys
傳輸密鑰文件到雲存儲
下一步就是上傳生成了的授權密鑰文件到存儲盒子。要做這些,先用 700 許可權創建 .ssh
目錄,然後用 SSH 公鑰創建授權文件並賦予 600 許可權。運行以下命令。
echo -e "mkdir .ssh n chmod 700 .ssh n put storagebox_authorized_keys .ssh/authorized_keys n chmod 600 .ssh/authorized_keys" | sftp <username>@<username>.your-storagebox.de
通過 ssh 使用 rsync
使用 rsync
同步你的文件目錄當前狀態到存儲盒子。
rsync --progress -e 'ssh -p23' --recursive <local_directory> <username>@<username>.your-storagebox.de:<target_directory>
這個過程被叫做推送操作,因為它 「推送」 本地系統的一個目錄到一個遠程的系統中去。
從雲存儲中恢複目錄
要從存儲盒子恢複目錄,轉換到這個目錄:
rsync --progress -e 'ssh -p23' --recursive <username>@<username>.your-storagebox.de:<remote_directory> <local_directory>
備份 3. 客戶端備份到第二個雲儲存
Deja Dup 是 Fedora 軟體倉庫中為 Fedora 工作站提供快速備份解決方案的工具。它擁有 GPG 加密、計劃任務、文件包含(哪個目錄要備份)等功能。
歸檔個人數據
不是所有數據都需要 3-2-1 備份策略。這就是個人數據共享。我將一台擁有 1TB 硬碟的筆記本作為我個人數據的檔案(家庭照片)。
轉到設置中的 「 共享 」 (在我的例子中是 GNOME 文件管理器)並切換滑塊以啟用共享。
打開 「 文件共享 」,「 網路 」 和 「 需要的密碼 」,允許你使用 WebDAV 協議在你的本地網路上分享你的公共文件夾給其它的工作站。
準備回滾選項
未測試的備份並不比完全沒有備份好。我在家庭實驗室環境中使用 「熱切換」 方法來避免像頻繁的斷電或者液體損壞的情況發生。然而,我的建議方案遠沒有達到災難恢復計劃或企業 IT 中的自動故障修復。
- 定期運行文件恢復操作
- 備份 ssh/GPG 密鑰到一個額外的存儲設備中
- 複製一個 Fedora ARM 伺服器的原始鏡像到一個 SD 卡中
- 在主雲存儲中保持全備份的快照
- 自動化備份過程最小化減少人為錯誤或者疏忽
使用 Cockpit 追蹤活動並解決問題
當你的項目在成長時,你所管理的伺服器數量也在增長。在 Cockpit 中追蹤活動和警告可以減輕你的管理負擔。你可以使用 Cockpit 的圖形化界面的三種方法來歸檔這些。
SELinux 菜單
怎樣診斷網路問題,找到日誌並在 Cockpit 中解決問題:
- 去 SELinux 中檢查日誌
- 檢查「 解決方案詳細信息 」
- 當必要時,選擇 「 應用這個方案 」
- 如果必要,查看自動化腳本並運行它
網路或者存儲日誌
伺服器日誌會跟蹤 CPU 負載、內存使用、網路活動、存儲性能和系統日誌關聯的詳細指標。日誌會組織在網路面板或者存儲面板里顯示。
軟體更新
在預設的時間和頻率下,Cockpit 可以幫助進行安全更新。當你需要時,你可以運行所有的更新。
恭喜你在 Fedora ARM 伺服器版本上搭建了一個文件/備份伺服器。
via: https://fedoramagazine.org/3-2-1-backup-plan-with-fedora-arm-server/
作者:Hanku Lee 選題:lujun9972 譯者:hwlife 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive