B.3.3. 獨佔啟用(exclusive activation)叢集中的卷冊群組

下列程序能配置卷冊群組,以確保只有叢集能夠啟用卷冊群組,並且卷冊群組將無法在開機時於叢集外啟用。若卷冊群組被叢集外的系統啟用的話,卷冊群組的 metadata 將會有損毀的風險。

注意

您必須確認使用 Pacemaker 時,lvmetad daemon 已停用。您可藉由執行下列指令來檢查 daemon 是否已停用,以及是否有任何 lvmetad 程序正在執行中。
# grep use_lvmetad /etc/lvm/lvm.conf
use_lvmetad = 0
# ps -ef | grep -i [l]vm
root     23843 15478  0 11:31 pts/0    00:00:00 grep --color=auto -i lvm
若您取得的結果與此範例不同,請在 /etc/lvm/lvm.conf 檔案中設置 use_lvmetad = 0,並停止任何執行中的 lvmetad 程序。
此程序會修改 /etc/lvm/lvm.conf 配置檔案中的 volume_list 項目。列在 volume_list 項目中的卷冊群組允許在叢集管理員控制之外的本機節點上自動啟用。與節點的本機 root 和家目錄相關的卷冊群組應包含在此清單中。所有由叢集管理員所管理的卷冊群組皆必須排除在 volume_list 項目之外。請注意,此程序無需使用到 clvmd
在叢集的各個節點上執行以下程序。
  1. 透過以下指令來判斷哪些卷冊群組目前已配置於您的本機儲存裝置上。這將會輸出一列目前已配置的卷冊群組。若您在此節點上為 root 和您的家目錄分配了獨立的卷冊群組,您將會在輸出中看見這些卷冊,如以下範例所示。
    # vgs --noheadings -o vg_name
      my_vg        
      rhel_home
      rhel_root
  2. /etc/lvm/lvm.conf 配置檔案中,加入 my_vg(您剛為叢集定義的卷冊群組)以外的卷冊群組作為 volume_list 的項目。比方說,若您在獨立的卷冊群組中為 root 與您的家目錄分配了空間,您將需要反註解 lvm.conf 檔案中的 volume_list 一行,並如下將這些卷冊群組作為 volume_list 的項目加入:
    volume_list = [ "rhel_root", "rhel_home" ]

    注意

    若在叢集管理員之外啟動的節點上沒有卷冊群組的話,您還是必須將 volume_list 項目初始化為 volume_list = []
  3. 重建 initramfs 開機映像檔以確保開機映像檔不會嘗試啟用一個由叢集所控制的卷冊群組。請透過以下指令更新 initramfs 裝置。這項指令要完成可能會花上一分鐘。
    # dracut -H -f /boot/initramfs-$(uname -r).img $(uname -r)
  4. 重新啟動節點。

    注意

    若您在啟動了一部建立了開機映像檔的節點後安裝了一個新的 Linux kernel,新的 initrd 映像檔將會屬於您建立該映像檔時正在執行的 kernel,而不是您重新啟動節點時執行的新 kernel。您能藉由在重新開機之前或之後執行 uname -r 指令來判斷正在執行的 kernel 版本,並確認是否正在使用正確的 initrd 裝置。若版本不一樣的話,請在以新的 kernel 重新啟動後更新 initrd 檔案,然後重新啟動節點。
  5. 當節點重新啟動後,請藉由在此節點上執行 pcs cluster status 指令,以檢查叢集服務是否有再次啟用於該節點上。若出現了 Error: cluster is not currently running on this node 錯誤訊息的話,情執行以下指令:
    # pcs cluster start
    此外,您能等到您重新啟動了叢集中的各個節點後,透過以下指令啟用各個節點上的叢集服務。
    # pcs cluster start --all