Lvm

使用 LVM 將 NAS 遷移到硬體 RAID1 而不會失去數據

  • June 22, 2016

我試圖弄清楚如何將 RAID 1 添加到我的 CentOS NAS 伺服器。今天我在非 RAID 配置中有 2x3TB 磁碟。我正在使用 LVM 來管理一些邏輯卷來對我的數據進行分區。我沒有使用接近完整的 6TB 容量,但我希望空間在未來擴大。我還使用 CrashPlan 定期進行異地備份,但我想確保磁碟故障不會意味著需要數天的停機時間來恢復數據。

所以我的計劃是再購買 2 個 3TB 磁碟來設置 RAID 1。我想讓新磁碟與舊磁碟配對,因為舊磁碟現在已經有幾年了,而且更有可能出現故障。

今天我使用了大約 1.6 TB 的 6TB 容量,所以我想我可以做一些移動並儘量減少失去數據的風險。任何人都可以向我指出指南或幫助確保這些步驟有效嗎?我知道有些事情會出錯,所以我會有可用的備份,但我想確保這些步驟應該以低風險工作,以節省一些時間。

  1. 首先,我將 6TB LVM VG 合併為一個 PV。因此,如果 /dev/sdb1 和 /dev/sdc1 是我的舊驅動器,我將縮小我的一些 LV(resize2fs、lvresize),將所有內容移動到 sdb1(pvmove),並從 VG(vgreduce)中刪除 sdc1。
  2. 接下來,我將添加一個新驅動器並在 BIOS 設置中為 sdc1 和新驅動器(稱為 sdd1)創建一個 RAID 1。我們稱之為 rda1 (我不知道使用什麼命名,但只是為了在我的步驟中清楚)。
  3. 將 rda1 添加到我的 VG (vgextend)
  4. 將所有 LV 移動到 rda1 (pvmove)
  5. 從 VG (vgreduce) 中刪除 sdb1
  6. 添加另一個新驅動器並在 BIOS 中為 sdb1 和新驅動器 2 (sde1) 創建一個 RAID 1。我們稱之為 rdb1。
  7. 將 rdb1 添加到我的 VG (vgextend)

最後,我真的很想在兩個 RAID 之間重新分配數據,這樣它就不僅僅是坐在一個上。手動將一些 LV 移動到另一個 RAID 磁碟對我來說有意義嗎?我可以以某種方式添加條帶並讓數據均勻分佈,還是我必須重新創建 LV 才能做到這一點?

這是我目前設置的快速概述(我還有一個帶有作業系統安裝和 LVM 的 SSD,但我只是顯示數據驅動器):

$ sudo pvdisplay
 --- Physical volume ---
 PV Name               /dev/sdb1
 VG Name               vg_media
 PV Size               2.73 TiB / not usable 19.00 MiB
 Allocatable           yes
 PE Size               32.00 MiB
 Total PE              89424
 Free PE               19792
 Allocated PE          69632
 PV UUID               D0Z3Fn-40Yr-akkx-TsLH-n5iM-LQNc-vdLbMf

 --- Physical volume ---
 PV Name               /dev/sdc1
 VG Name               vg_media
 PV Size               2.73 TiB / not usable 19.00 MiB
 Allocatable           yes
 PE Size               32.00 MiB
 Total PE              89424
 Free PE               40272
 Allocated PE          49152
 PV UUID               4A1tD5-Rj2I-IdZX-2FPS-4KmS-WnjT-TcAGPf

$ sudo vgdisplay
 --- Volume group ---
 VG Name               vg_media
 System ID
 Format                lvm2
 Metadata Areas        2
 Metadata Sequence No  7
 VG Access             read/write
 VG Status             resizable
 MAX LV                0
 Cur LV                4
 Open LV               4
 Max PV                0
 Cur PV                2
 Act PV                2
 VG Size               5.46 TiB
 PE Size               32.00 MiB
 Total PE              178848
 Alloc PE / Size       118784 / 3.62 TiB
 Free  PE / Size       60064 / 1.83 TiB
 VG UUID               wneSMl-nllf-9yaO-GGv2-iDGv-n4vK-mVfGjk

$ sudo lvdisplay
 --- Logical volume ---
 LV Path                /dev/vg_media/library
 LV Name                library
 VG Name                vg_media
 LV UUID                AOs1yk-sVQE-f6sI-PstX-txtm-mu2d-mgJj4W
 LV Write Access        read/write
 LV Creation host, time srv.mattval.us.to, 2013-05-13 02:37:31 -0700
 LV Status              available
 # open                 1
 LV Size                1.00 TiB
 Current LE             32768
 Segments               2
 Allocation             inherit
 Read ahead sectors     auto
 - currently set to     256
 Block device           253:2

 --- Logical volume ---
 LV Path                /dev/vg_media/photos
 LV Name                photos
 VG Name                vg_media
 LV UUID                2DWA1Q-MYTH-1bqq-QgW3-7LiJ-3jNe-v9WXlK
 LV Write Access        read/write
 LV Creation host, time srv.mattval.us.to, 2013-05-13 02:37:48 -0700
 LV Status              available
 # open                 1
 LV Size                1.00 TiB
 Current LE             32768
 Segments               1
 Allocation             inherit
 Read ahead sectors     auto
 - currently set to     256
 Block device           253:3

 --- Logical volume ---
 LV Path                /dev/vg_media/projects
 LV Name                projects
 VG Name                vg_media
 LV UUID                027kQC-dSSJ-Bo40-Xmpa-8ELo-hbGD-jZITBJ
 LV Write Access        read/write
 LV Creation host, time srv.mattval.us.to, 2013-05-13 02:38:01 -0700
 LV Status              available
 # open                 1
 LV Size                1.50 TiB
 Current LE             49152
 Segments               1
 Allocation             inherit
 Read ahead sectors     auto
 - currently set to     256
 Block device           253:4

 --- Logical volume ---
 LV Path                /dev/vg_media/docs
 LV Name                docs
 VG Name                vg_media
 LV UUID                El10u0-yYeW-XekC-TP7t-xF9t-qLgz-aFU8AQ
 LV Write Access        read/write
 LV Creation host, time srv.mattval.us.to, 2013-05-13 02:38:15 -0700
 LV Status              available
 # open                 1
 LV Size                128.00 GiB
 Current LE             4096
 Segments               1
 Allocation             inherit
 Read ahead sectors     auto
 - currently set to     256
 Block device           253:5

實際使用的大小是 docs=100GB,library=500GB,photos=350GB,projects=620GB

不是硬體,而是要考慮的一個簡單選項是將邏輯卷轉換為 RAID1,使用lvconvert --type raid1 -m 1 vg/lv可選地指定應使用的 PV,以便正確地將新驅動器與舊驅動器耦合。這是使用與 mdadm 相同的核心驅動程序。

優點:

  • 更大的靈活性,允許線性/條帶 LV 用於丟棄/批量數據(如記憶體或下載的 ISO 映像),以及 RAID1 和/或 RAID5 用於您希望的其他數據
  • 如果您的 RAID 控制器出現故障,它將在其他地方工作。其他地方我的意思是如果您將磁碟插入其他地方,它們將被任何最近的Linux發行版辨識。在 Windows 和 *BSD 下肯定不行,這對你的 NAS 來說不是問題。

缺點:

  • 伺服器上的負載稍大(我沒有性能數據。)

LVM 與 mdadm:

專業人士:

  • mdadm 使用更廣泛,經過幾代管理員的測試,許多教程……
  • LVM 缺少一些您不需要(現在)的 mdadm 功能(重塑)。這是一個正在進行的工作。

專業版 lvm:

  • LVM 更靈活,您可能不需要(現在)
  • 遷移到 LVM RAID 非常簡單

表現:

LVM 與 mdadm RAID:

  • 性能應該是一樣的,但是……
  • 有一個已知錯誤,其中 LVM RAID 上的某些操作比 mdadm 慢得多:錯誤 1332221 - lvm raid1 的 fsyncs 性能不佳

軟體 RAID 與 FakeRAID

  • 不知道,但這很大程度上取決於 RAID 控制器。

解析度:

如果您想要經過驗證的解決方案 mdadm raid 和 LVM 在此之上將是一個不錯的選擇。

如果您想要輕鬆的遷移和靈活性,LVM RAID 是您的最佳選擇。

引用自:https://serverfault.com/questions/784913