LVM:這是鏡像的嗎?複製這麼慢?
背景:我的 Windows Home Server 塵土飛揚——某種作業系統掛起。驅動器和硬體仍然很好。在確保我備份了所有數據之後,我決定研究 Ubuntu 和 LVM(以及 btsync 和 samba,但那是另一回事了)
我可以使用以下驅動器:1TB、1.5TB 和 2TB。
我試圖弄清楚如何對它們進行分區並將它們一起突襲。我跑了好幾圈。我最終做的是:
- 每個磁碟上的 1 個分區用於整個磁碟
- pvcreate /dev/sd$$ b,c,d $$
- vgcreate 將以上所有內容合併為一個 vg “vg1”
- lvcreate -m1 在那個 vg1 上。
我玩的大小。果然它會讓我 lvcreate 並擴展到 1.8tb,但不會更多。
問題#1:它真的是鏡像嗎?我認為是這樣; 但是,我沒有遵循“將此驅動器與該驅動器配對,因為它們的大小相同”的任何準則(這幾乎是我在 LVM 上找到的每個範例)。
lsblk 的輸出,不包括 O/S 驅動器:
sdb 8:16 0 1.4T 0 disk └─sdb1 8:17 0 1.4T 0 part └─vg1-lv1_mimage_0 (dm-1) 252:1 0 1.8T 0 lvm └─vg1-lv1 (dm-3) 252:3 0 1.8T 0 lvm /srv/samba/share sdc 8:32 0 1.8T 0 disk └─sdc1 8:33 0 1.8T 0 part └─vg1-lv1_mimage_1 (dm-2) 252:2 0 1.8T 0 lvm └─vg1-lv1 (dm-3) 252:3 0 1.8T 0 lvm /srv/samba/share sdd 8:48 0 931.5G 0 disk └─sdd1 8:49 0 931.5G 0 part ├─vg1-lv1_mlog (dm-0) 252:0 0 4M 0 lvm │ └─vg1-lv1 (dm-3) 252:3 0 1.8T 0 lvm /srv/samba/share └─vg1-lv1_mimage_0 (dm-1) 252:1 0 1.8T 0 lvm └─vg1-lv1 (dm-3) 252:3 0 1.8T 0 lvm /srv/samba/share
問題 #2: !# $ ! $ % 複製要完成嗎?到目前為止,它已經執行了大約 24 小時。真的這麼慢嗎?還是因為我目前也在將數據同步回陣列而落後?或者有什麼問題我可以去調整和修復?
lvs -a 的輸出:
LV VG Attr LSize Pool Origin Data% Move Log Copy% root ubuntu-vg -wi-ao--- 697.39g swap_1 ubuntu-vg -wi-ao--- 1.00g lv1 vg1 mwi-aom-- 1.80t lv1_mlog 43.83 [lv1_mimage_0] vg1 Iwi-aom-- 1.80t [lv1_mimage_1] vg1 Iwi-aom-- 1.80t [lv1_mlog] vg1 lwi-aom-- 4.00m
感謝您提前提供任何回饋和指導。
其他詳細資訊(如果完全相關):
- EX485 前 HP 媒體伺服器
- Ubuntu Desktop 32bit 14.something as of 3 days ago (<2G of ram)
- 通過將引導驅動器安裝在其他地方安裝,添加sshd,然後將其移過來,因此可能是低級磁碟驅動程序問題
更新#1我在這裡找到了一些細則(我的粗體添加):
創建鏡像時,鏡像區域是同步的。對於大型鏡像組件,同步過程可能需要很長時間。當您創建不需要恢復的新鏡像時,您可以指定 nosync 參數以指示不需要從第一個設備進行初始同步。
這可能表明“長複製時間”是正確的。
如果您要從 TB 的零創建 lvm 鏡像卷,也許您可以使用選項 –nosync
man lvcreate Specifying the optional argument --nosync will cause the creation of the mirror to skip the initial resynchronization. Any data written afterwards will be mirrored, but the original contents will not be copied. This is useful for skipping a potentially long and resource intensive initial sync of an empty device.
要回答您的第一個問題,是的,它正在被鏡像。該
lvs
命令的輸出在列中顯示該資訊Copy%
:LV VG Attr LSize Pool Origin Data% Move Log Copy% lv1 vg1 mwi-aom-- 1.80t lv1_mlog 43.83
正如我們所看到的,在您的情況下,您的比例為 43.83%,這意味著當時鏡像仍然是部分的(您無法從鏡像中恢復)。
要獲取更多資訊並查看使用了哪些磁碟,您需要沿邏輯分區列出設備。這是使用以下命令完成的:
sudo lvs -a -o +devices
然後您會看到哪個圖像使用了哪個設備。在我的電腦(有兩個相同大小的驅動器)上,它看起來像這樣:
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices root tristan mwi-aom--- <250.00g [root_mlog] 100.00 root_mimage_0(0),root_mimage_1(0) [root_mimage_0] tristan iwi-aom--- <250.00g /dev/sda5(0) [root_mimage_1] tristan iwi-aom--- <250.00g /dev/sdb5(0) [root_mlog] tristan mwn-aom--- 4.00m 100.00 root_mlog_mimage_0(0),root_mlog_mimage_1(0) [root_mlog_mimage_0] tristan iwi-aom--- 4.00m /dev/sdb5(472781) [root_mlog_mimage_1] tristan iwi-aom--- 4.00m /dev/sdb5(63999) swap_1 tristan -wi-ao---- <15.97g /dev/sda5(472748) tristan-home tristan rwi-aor--- <1.56t 2.72 tristan-home_rimage_0(0),tristan-home_rimage_1(0)
在您的情況下,它將使用 1Tb 和 1.5Tb 用於一個副本,而將 2Tb 用於另一個副本。結果是大約 1.8Tb 的分區(因為驅動器顯示 2Tb,但實際上是 2,000,000,000,000 [或 2x10¹² 而不是 2⁴¹)。當您請求 RAID1 鏡像時,LVM 軟體非常智能,可以選擇多個物理設備。我不知道是否有辦法在不為您的 RAID 創建特定組的情況下強制使用某個物理設備。
至於您的第二個問題(複製這麼慢?),我想您的意思是«“寫”這麼慢?»,是的,寫最終可能會很慢。為了獲得最佳 RAID1 性能,您需要有 N 個驅動器,它們具有完全相同的特徵,並且所有塊都位於所有驅動器上的相同位置。
慢速寫入的最壞情況是每個驅動器的速度不同。例如,您可能有 5000 rpm 和 7200 rpm,在這種情況下,您將受限於較慢的速度以及兩種速度之間的各種同步。
您的硬體也可能很糟糕,因為用於將數據發送到驅動器的 DMA 需要正確共享,並且一些較舊的台式電腦可能不太適合 RAID1。