Raid

我可以用一台設備創建軟體 RAID 1

  • January 30, 2018

我有一個要創建鏡像的磁碟;我們稱之為磁碟sda。我剛剛購買了另一個相同大小的磁碟,我們可以將其稱為sdb. sda並有一個分別稱為和sdb的分區。sda1``sdb1

創建團隊時,我不想擦sda乾淨然後重新開始,我只想讓它開始鏡像sdb。我的構想是:

mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=1 /dev/sda1

…創建沒有sdb磁碟的陣列,然後執行類似的東西(我正在大聲思考以下命令,因為我不知道如何實現這一步)

mdadm /dev/md0 --add /dev/sdb1

假設註釋sdb1的格式類似於sda1

這可能嗎?

標題中問題的簡單答案是“是”。但您真正想做的是下一步,即對現有數據進行鏡像。

可以轉換現有磁碟,但如上所述,由於元數據位置,這是有風險的。用新磁碟創建一個空(損壞的)鏡像並將現有數據複製到上面要好得多。然後,如果它不起作用,您只需啟動回未鏡像的原始文件。

首先,用缺少的驅動器初始化/dev/sdb1為新/dev/md0的並初始化文件系統(我假設是 ext3,但選擇權在你)

mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=2 /dev/sdb1 missing
mkfs -text3 /dev/md0

現在,/dev/sda1很可能是您的根/文件/dev/sda1系統/dev/md0

將文件系統的全部內容複製/dev/sda1/dev/md0. 例如:

mount /dev/sda1 /mnt/a       # only do this if /dev/sda1 isn't mounted as root
mount /dev/md0 /mnt/b
cd /mnt/a                    # or "cd /" if it's the root filesystem
cp -dpRxv . /mnt/b

編輯/etc/fstab或以其他方式確保在下次啟動時,/dev/md0已安裝而不是/dev/sda1. 您的系統可能設置為從啟動,/dev/sda1並且啟動參數可能將其指定為根設備,因此在重新啟動時您應該手動更改它以便根是/dev/md0(假設/dev/sda1是根)。重新啟動後,檢查/dev/md0現在是否已掛載 ( df) 並且它正在作為降級鏡像 ( cat /proc/mdstat) 執行。添加/dev/sda1到數組:

mdadm /dev/md0 --add /dev/sda1

由於重建將覆蓋/dev/sda1,您使用的元數據版本無關緊要。與往常一樣進行重大更改時,請進行完整備份(如果可能)或至少確保無法重新創建的任何內容都是安全的。

您將需要重新生成引導配置以/dev/md0用作 root(如果/dev/sda1是 root),並且可能需要重新生成mdadm.conf以確保/dev/md0始終啟動。

引用自:https://unix.stackexchange.com/questions/63928