使用 mdadm 建置 Debian 12 RAID 1 鏡像

若要從兩塊空白磁碟建立 Debian 12 軟體 RAID 1 映像,請安裝 RAID 12 mdadm,驗證裝置名稱是否準確,建立/dev/md0RAID 12 鏡像,並在陣列裝置上建置檔案系統。在本例中,`1`/dev/sdb和/dev/sdc`2` 是專用資料磁碟;請將其替換為您已驗證的裝置路徑。請勿在包含所需資料的磁碟上執行建立或格式化命令。

此步驟適用於建立新的資料卷,而非根鏡像或引導鏡像。 RAID 1 會保留鏡像副本,並在一個成員發生故障後繼續運行,但它無法防止資料被刪除、檔案系統損壞、被盜或第二個磁碟發生故障。請務必單獨備份。 Debian 的 Bookworm mdadm 手冊詳細記錄了以下使用的建立和元資料選項。

建立陣列之前:請先驗證磁碟。

RAID 1 的容量受限於容量較小的成員。請使用至少與所需資料量一樣大的磁碟,最好是使用透過獨立連接埠連接的相同容量的硬碟。您可以像圖中所示使用整塊磁碟,也可以在每個磁碟上建立大小相同的分割區並鏡像這些分割區。具體選擇取決於您的分割方式和未來的儲存計畫;切勿將整塊磁碟成員與分割區成員混用。

首先列出設備和檔案系統:

lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS
sudo wipefs -n /dev/sdb /dev/sdc

lsblk顯示磁碟大小、分割區、檔案系統和掛載點。wipefs -n僅報告簽名,不會擦除簽名。請透過型號、序號、容量和掛載點確認兩個目標磁碟均為預期的未掛載磁碟。設備號碼可能會在硬體或啟動變更後發生變化,因此對於伺服器,請識別/dev/disk/by-id/路徑穩定的磁碟機並始終使用這些路徑。

lsblk 指令在終端機顯示兩個未掛載、未格式化的磁碟,分別名為 sdb 和 sdc。
終端視圖顯示磁碟清單檢查:在建立鏡像之前,請確認兩個成員磁碟及其掛載點。

常見誤解: RAID 1 並非將兩塊磁碟的容量合併成一個更大的磁碟區。它只是鏡像寫入操作,因此可用空間大致等於較小磁碟的容量。請立即檢查報告的容量,並依照鏡像容量進行規劃。

建立並監控 RAID 1 設備

安裝 Debian 的 RAID 管理工具,然後建立一個雙裝置鏡像:

sudo apt update
sudo apt install mdadm
sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc

僅在再次檢查成員路徑後才回答確認提示。--level=1選擇鏡像,同時--raid-devices=2設定活動成員數。 Debian Bookwormmdadm預設對新陣列使用 1.2 版本元資料;僅在已驗證的啟動或相容性要求需要時才指定不同的元資料格式。該指令會將 RAID 元資料寫入選取的裝置。請將這些設備視為一次性設備,切勿假設現有檔案系統仍然可用。

終端機顯示 mdadm 指令,用於建立雙磁碟 RAID 1 陣列
此指令將 /dev/md0 啟動為包含兩個成員的 RAID 1 陣列;磁碟路徑必須與您驗證的裝置相符。

建立操作會啟動同步,這可能需要很長時間,具體取決於磁碟大小和活動情況。這並不意味著兩個副本已完全同步。請使用以下命令檢查進度:

cat /proc/mdstat
sudo mdadm --detail /dev/md0

尋找raid1兩個預期成員,並確保[UU]陣列在兩個裝置都存在且完全啟動的情況下都已連接。重新同步運行時,/proc/mdstat系統會報告進度;如果可行,請避免在同步完成前進行大量寫入操作。確切的速度和持續時間取決於驅動器、控制器和工作負載,因此請勿根據其他機器的輸出推斷完成時間。

終端顯示的 proc mdstat 資訊顯示 RAID 1 正在進行 42% 的重新同步。
範例狀態顯示正在重新同步;請等待同步完成並確認兩個成員指示器都已出現。

常見誤解:建立命令返回後,陣列設備並不意味著可以立即格式化。請先檢查/proc/mdstat並mdadm --detail確認成員清單與您的兩塊磁碟相符。

格式化、掛載並使彙編持久化

一旦/dev/md0陣列啟動且其成員正確,就在陣列設備上(而不是每個成員磁碟上)建立檔案系統,然後掛載它:

sudo mkfs.ext4 /dev/md0
sudo mkdir -p /srv/mirror
sudo mount /dev/md0 /srv/mirror
findmnt /srv/mirror

mkfs.ext4擦除目標上的資料。格式化/dev/md0會在邏輯鏡像上建立一個檔案系統,而單獨/dev/sdb格式化/dev/sdc則會繞過陣列。寫入檔案前,請確認findmnt已/dev/md0掛載到目標位置。/srv/mirror

終端機顯示邏輯設備 /dev/md0 的 ext4 格式和掛載指令
對組裝好的陣列裝置 /dev/md0 運行檔案系統和掛載指令,而不是對任何一個實體成員執行指令。

為了幫助 Debian 在啟動時根據陣列的標識重新組裝陣列,請檢查產生的條目:

sudo mdadm --detail --scan

ARRAY將輸出中匹配的行新增到文件中,/etc/mdadm/mdadm.conf不要替換文件的其餘部分,然後重新建構 initramfs:

sudo nano /etc/mdadm/mdadm.conf
sudo update-initramfs -u -k all

Debian手冊中關於 mdadm 的指南也建議在更改此配置後更新 initramfs。若要實現自動掛載,請取得檔案系統 UUID 並新增對應的條目/etc/fstab:

sudo blkid /dev/md0
# Example format; replace the UUID with the value from blkid:
UUID=your-filesystem-uuid /srv/mirror ext4 defaults,nofail 0 2

請使用實際的 UUID,而不是範例佔位符。然後驗證文件並掛載配置:

sudo findmnt --verify
sudo mount -a
findmnt /srv/mirror

驗證結果並了解其局限性

確認mdadm --detail /dev/md0報告顯示 RAID 等級為 1,兩位成員皆符合預期,且同步後狀況良好。確認/proc/mdstat報告顯示兩個設備,然後檢查是否findmnt /srv/mirror已從陣列掛載 ext4 檔案系統。規劃重新啟動後,在儲存重要資料之前,請重複執行陣列和掛載檢查。

RAID 1 可以在一個成員發生故障後保持磁碟區的可用性,但冗餘並非備份,也無法保證每個檔案都能恢復。請將版本化的備份保存在單獨的儲存裝置上,監控陣列狀態,並使用mdadm 的 Bookworm 手冊中記錄的裝置和復原步驟來取代發生故障的成員。本指南不涉及將現有的 Debian 根磁碟轉換為 RAID;這需要針對特定機器製定遷移和引導程式方案。

留下評論

使用 Systemd 定時器可靠地執行 ownCloud 後台作業

將按需作業運行替換為 systemd 定時器,該定時器每 15 分鐘執行一次 ownCloud 支援的 occ system:cron 命令。

透過尋找故障路由來恢復 ownCloud WebDAV 同步

透過 Apache、Nginx 或反向代理程式追蹤 WebDAV 請求,然後使用經過驗證的 PROPFIND 測試確認 ownCloud 同步功能正常。

設定 Nextcloud 的公共 URL,以便它可以存取自身。

透過設定其規範 URL 並從伺服器本身檢查 DNS、HTTPS 和反向代理路由,修復 Nextcloud 缺少出站位址警告的問題。

在 Ubuntu 24.04 上設定 Nextcloud Redis 快取

在 Ubuntu 24.04 上設定 Nextcloud Redis 快取

透過本機 Unix 套接字配置 APCu 和 Redis,以實現 Nextcloud 快取和檔案鎖定,並提供目前和舊版 Nextcloud 的步驟。

使用 Systemd 定時器自動執行 Nextcloud Cron

檢查 Nextcloud 的 cron 模式,修復其 systemd 服務和計時器,並驗證後台作業在啟動後以及每隔五分鐘運行一次。

使用 Redis 清除 Nextcloud 的檔案鎖定警告

啟用可靠的 Nextcloud 檔案鎖定,選擇適當的 Redis 或 Valkey 後端,並驗證警告是否清除,同時避免並發檔案變更的風險。

如何才能獲得 Nextcloud A+ 安全評級

如何才能獲得 Nextcloud A+ 安全評級

使用最新更新、HTTPS 和 HSTS、精確的反向代理信任以及針對公共伺服器的檢查,修復 Nextcloud 掃描中常見的錯誤。

啟用 Nextcloud 伺服器端加密,並評估其影響

為需要加密的儲存配置 Nextcloud SSE,保護加密金鑰,並在加密現有文件之前測量傳輸和 CPU 影響。

將 Elasticsearch 全文搜尋功能新增至 Nextcloud

將 Nextcloud 的檔案搜尋連接到 Elasticsearch,索引文件內容,並選擇適合您的伺服器和安全需求的設定。

為 Nextcloud 已刪除檔案設定可靠的過期策略

為 Nextcloud 已刪除檔案設定可靠的過期策略

配置 Nextcloud 在規定的保留期後刪除已刪除的文件,可靠地安排後台作業,並避免執行清除所有使用者回收站的命令。