章 4. 透過 CLI 指令來進行 LVM 管理

本章節包含了透過 LVM 指令列介面(CLI)來建立與維護邏輯卷冊的各別管理作業的概述。

注意

若您要建立或是修改一個叢集環境下的 LVM 卷冊的話,您必須確認您有執行 clvmd daemon。如欲取得更多相關資訊,請參閱〈節 3.1, “在叢集中建立 LVM 卷冊”〉。

4.1. 使用 CLI 指令

所有 LVM CLI 指令都有幾個通用的功能。
當在指令列引數中需要使用到大小時,單位可被明確地指定。若您不指定單位的話,那麼預設值便會被使用,一般會是 KB 或是 MB。LVM CLI 指令不接受分數。
當在指令列引數中指定單位時,LVM 並不區分大小寫;比方說,指定 M 或 m 都是相等的,在此情況下 2 進位(1024 的倍數)會被使用。不過,當在指令中指定了 --units 引數時,小寫表示單位為 1024 的倍數,而大寫則表示單位為 1000 的倍數。
當指令使用卷冊群組或是邏輯卷冊名稱為引數時,完整路徑名稱為非必要的。一個稱為 vg0 的卷冊群組中的 lvol0 邏輯卷冊可被指定為 vg0/lvol0。當需要一列必要的卷冊群組,不過卻被保留為空白時,該卷冊群組中的所有邏輯卷冊就會被帶入。比方說,lvdisplay vg0 指令將會顯示 vg0 卷冊群組中所有的邏輯卷冊。
所有的 LVM 指令都接受 -v 引數,您可多重輸入該引數來增加輸出的詳細度。比方說,下列範例顯示了 lvcreate 指令的預設輸出。
# lvcreate -L 50MB new_vg
  Rounding up size to full physical extent 52.00 MB
  Logical volume "lvol0" created
下列指令顯示了 lvcreate 指令以及 -v 引數的輸出。
# lvcreate -v -L 50MB new_vg
    Finding volume group "new_vg"
  Rounding up size to full physical extent 52.00 MB
    Archiving volume group "new_vg" metadata (seqno 4).
    Creating logical volume lvol0
    Creating volume group backup "/etc/lvm/backup/new_vg" (seqno 5).
    Found volume group "new_vg"
    Creating new_vg-lvol0
    Loading new_vg-lvol0 table
    Resuming new_vg-lvol0 (253:2)
    Clearing start of logical volume "lvol0"
    Creating volume group backup "/etc/lvm/backup/new_vg" (seqno 5).
  Logical volume "lvol0" created
您也能使用 -vv-vvv 或是 -vvvv 引數來顯示更加詳細的指令執行資訊。目前,-vvvv 引數提供了最大量的資訊。下列範例僅顯示了 lvcreate 指令以及 -vvvv 引數的輸出的前幾個行列。
# lvcreate -vvvv -L 50MB new_vg
#lvmcmdline.c:913         Processing: lvcreate -vvvv -L 50MB new_vg
#lvmcmdline.c:916         O_DIRECT will be used
#config/config.c:864       Setting global/locking_type to 1
#locking/locking.c:138       File-based locking selected.
#config/config.c:841       Setting global/locking_dir to /var/lock/lvm
#activate/activate.c:358       Getting target version for linear
#ioctl/libdm-iface.c:1569         dm version   OF   [16384]
#ioctl/libdm-iface.c:1569         dm versions   OF   [16384]
#activate/activate.c:358       Getting target version for striped
#ioctl/libdm-iface.c:1569         dm versions   OF   [16384]
#config/config.c:864       Setting activation/mirror_region_size to 512
...
您可透過使用指令的 --help 引數來顯示任何 LVM CLI 指令的協助畫面。
# commandname --help
若要顯示某項指令的 man page,請執行 man 指令:
# man commandname
man lvm 指令提供了有關於 LVM 的一般線上資訊。
所有的 LVM 物件皆會被藉由 UUID 內部參照,當您建立物件時,UUID 將會被分配。當您移除了一個稱為 /dev/sdf 的實體卷冊(卷冊群組的一部分),然後再將它放回去時,卻發現它已成為了 /dev/sdk 時,這將會非常有幫助。LVM 還是有辦法找到實體卷冊,因為它會藉由實體卷冊的 UUID 來進行辨識,而非藉由實體卷冊的裝置名稱。欲取得在建立實體卷冊時,指定實體卷冊 UUID 上的相關資訊,請參閱〈節 6.4, “復原實體卷冊的 Metadata”〉。