在 Azure 中的 Linux VM 上設定 LVM
本檔將討論如何在 Azure 虛擬機中設定邏輯磁碟區管理員 (LVM)。 LVM 可用於 AZURE VM 中的 OS 磁碟或數據磁碟,不過,根據預設,大部分的雲端映射都不會在 OS 磁碟上設定 LVM。 下列步驟將著重於設定數據磁碟的 LVM。
線性與分條邏輯磁碟區
LVM 可用來將數個實體磁碟合併成單一儲存體磁碟區。 根據預設,LVM 通常會建立線性邏輯磁碟區,這表示實體記憶體會串連在一起。 在此情況下,讀取/寫入作業通常只會傳送至單一磁碟。 相反地,我們也可以建立條帶式邏輯磁碟區,其中讀寫操作會分散到磁碟區群組中的多個磁碟上(類似於RAID0)。 基於效能考量,您可能會希望對邏輯磁碟區進行條帶化,以便讀取和寫入操作能夠利用所有已連接的數據磁碟。
本文件將說明如何將數個數據磁碟合併成單一磁碟區群組,然後建立等量邏輯磁碟區。 下列步驟已被一般化,以適用於大多數發行版。 在大部分情況下,在 Azure 上管理 LVM 的公用程式和工作流程與其他環境並不大不相同。 如同往常,請洽詢您的 Linux 發行商,以取得在特定發行版本中使用 LVM 的文件與最佳實踐。
鏈接數據磁碟
使用 LVM 時,一個通常會想要從兩個以上的空白數據磁碟開始。 根據您的 IO 需求,您可以選擇連結儲存在我們的標準記憶體中的磁碟,每個磁碟最多可有 500 個 IO/ps,或每個磁碟最多 5000 個 IO/ps 的進階記憶體。 本文不會詳細說明如何將數據磁碟布建和連結至Linux虛擬機。 如需如何將空白數據磁碟連結至 Azure 上 Linux 虛擬機的詳細指示,請參閱Microsoft Azure 一文 連結磁碟。
安裝 LVM 公用程式
Ubuntu
sudo apt-get update sudo apt-get install lvm2
RHEL、CentOS 和 Oracle Linux
sudo yum install lvm2
SLES 12 和 openSUSE
sudo zypper install lvm2
SLES 11
sudo zypper install lvm2
在 SLES11 上,您也必須編輯
/etc/sysconfig/lvm
並設定LVM_ACTIVATED_ON_DISCOVERED
為 「啟用」:LVM_ACTIVATED_ON_DISCOVERED="enable"
設定 LVM
在本指南中,我們將假設您已連結三個數據磁碟,我們將稱之為 /dev/sdc
、 /dev/sdd
和 /dev/sde
。 這些路徑可能不符合 VM 中的磁碟路徑名稱。 您可以執行 'sudo fdisk -l
' 或類似的命令來列出可用的磁碟。
準備實體卷:
sudo pvcreate /dev/sd[cde] Physical volume "/dev/sdc" successfully created Physical volume "/dev/sdd" successfully created Physical volume "/dev/sde" successfully created
建立磁碟區群組。 在此範例中,我們會呼叫磁碟區群組
data-vg01
:sudo vgcreate data-vg01 /dev/sd[cde] Volume group "data-vg01" successfully created
建立邏輯磁碟區。 下列命令會建立稱為
data-lv01
的單一邏輯磁碟區,以跨越整個磁碟區群組,但請注意,在磁碟區群組中建立多個邏輯磁碟區也是可行的。sudo lvcreate --extents 100%FREE --stripes 3 --name data-lv01 data-vg01 Logical volume "data-lv01" created.
格式化邏輯磁碟區
sudo mkfs -t ext4 /dev/data-vg01/data-lv01
備註
使用 SLES11 時,請使用
-t ext3
而非 ext4。 SLES11 僅支援 ext4 檔案系統的唯讀取。
將新的文件系統新增至 /etc/fstab
這很重要
不當編輯 /etc/fstab
檔案會導致系統無法開機。 如果不確定,請參閱散發套件的文件,以取得如何適當編輯此檔案的相關資訊。 在編輯之前,也建議先備份 /etc/fstab
檔案。
為新的檔案系統建立所需的裝入點,例如:
sudo mkdir /data
找出邏輯磁碟區路徑
lvdisplay --- Logical volume --- LV Path /dev/data-vg01/data-lv01 ....
在文字編輯器中開啟
/etc/fstab
並添加新檔案系統的條目,例如:/dev/data-vg01/data-lv01 /data ext4 defaults 0 2
然後,儲存並關閉
/etc/fstab
。/etc/fstab
測試專案是否正確:sudo mount -a
如果此命令導致錯誤訊息,請檢查 檔案中的
/etc/fstab
語法。接下來執行
mount
命令,以確保檔案系統已掛接:mount ...... /dev/mapper/data--vg01-data--lv01 on /data type ext4 (rw)
/etc/fstab
中的(選擇性)安全啟動參數許多散發套件包含
nobootwait
或nofail
的掛載參數,這些參數可能會新增至/etc/fstab
檔案。 這些參數允許掛接特定文件系統時發生失敗,並允許 Linux 系統繼續開機,即使無法正確掛接 RAID 檔案系統也一樣。 如需這些參數的詳細資訊,請參閱您的發行版的文件。範例 (Ubuntu):
/dev/data-vg01/data-lv01 /data ext4 defaults,nobootwait 0 2
TRIM/UNMAP 支援
有些 Linux 核心會支援 TRIM/UNMAP 作業以捨棄磁碟上未使用的區塊。 這些作業主要適用於標準記憶體,以通知 Azure 已刪除的頁面不再有效且可捨棄。 建立大型檔案後,您可以透過刪除其中的頁面來節省成本。
有兩種方式可在 Linux VM 中啟用 TRIM 支援。 像往常一樣,請參考您所使用的發行版本以了解建議的方法︰
請在
discard
中使用/etc/fstab
掛載選項,例如:/dev/data-vg01/data-lv01 /data ext4 defaults,discard 0 2
在某些情況下,
discard
選項可能會影響效能。 或者,您也可以從命令列手動執行fstrim
命令,或將它新增到 crontab 來定期執行︰Ubuntu
# sudo apt-get install util-linux # sudo fstrim /datadrive
RHEL、CentOS 和 Oracle Linux
# sudo yum install util-linux # sudo fstrim /datadrive