我希望这是一个简短的问题。我正在运行:
- CENTOS 9
- 虚拟机管理程序
- 起搏器、DLM、lvmlockd、fence_scsi
我有一个简单的双节点 KVM 集群,其中我在连接的使用 GFS2 格式化的 iSCSI LUN 上设置了一个 LVM 逻辑卷。我一直在遵循 RH 的“配置和管理高可用性集群指南“。
从起搏器、LVM 锁定、隔离、共享文件系统的角度来看,情况看起来不错:
[root@lab-kvm-01 ~]# pcs status --full
Cluster name: kvm_cluster
Cluster Summary:
* Stack: corosync (Pacemaker is running)
* Current DC: lab-kvm-01.domain.local (1) (version 2.1.6-10.1.el9-6fdc9deea29) - partition with quorum
* Last updated: Wed Dec 6 15:11:19 2023 on lab-kvm-01.domain.local
* Last change: Wed Dec 6 12:10:47 2023 by root via cibadmin on lab-kvm-02.domain.local
* 2 nodes configured
* 7 resource instances configured
Node List:
* Node lab-kvm-01.domain.local (1): online, feature set 3.17.4
* Node lab-kvm-02.domain.local (2): online, feature set 3.17.4
Full List of Resources:
* Clone Set: locking-clone [locking]:
* Resource Group: locking:0:
* dlm (ocf:pacemaker:controld): Started lab-kvm-01.domain.local
* lvmlockd (ocf:heartbeat:lvmlockd): Started lab-kvm-01.domain.local
* Resource Group: locking:1:
* dlm (ocf:pacemaker:controld): Started lab-kvm-02.domain.local
* lvmlockd (ocf:heartbeat:lvmlockd): Started lab-kvm-02.domain.local
* scsi-shooter (stonith:fence_scsi): Started lab-kvm-01.domain.local
* Clone Set: shared_vg-clone [shared_vg]:
* Resource Group: shared_vg:0:
* shared_lv (ocf:heartbeat:LVM-activate): Started lab-kvm-01.domain.local
* Resource Group: shared_vg:1:
* shared_lv (ocf:heartbeat:LVM-activate): Started lab-kvm-02.domain.local
Migration Summary:
Fencing History:
* unfencing of lab-kvm-02.domain.local successful: delegate=lab-kvm-02.domain.local, client=pacemaker-controld.1642, origin=lab-kvm-01.domain.local, completed='2023-12-06 14:42:24.976410 -05:00'
* unfencing of lab-kvm-01.domain.local successful: delegate=lab-kvm-01.domain.local, client=pacemaker-controld.1642, origin=lab-kvm-01.domain.local, completed='2023-12-06 14:26:16.176473 -05:00'
Tickets:
PCSD Status:
lab-kvm-01.domain.local: Online
lab-kvm-02.domain.local: Online
Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabled
此时我希望做的是将此共享存储添加为 libvirt 存储池。但是,在 libvirt 文档中,设置共享存储池似乎有点模糊。目前,在定义存储池后,我遇到的情况是启动池时出现锁定错误:
[root@lab-kvm-01 ~]# virsh pool-define-as shared_pool logical --source-name vg_gfs2 --target /dev/vg_gfs2/
Pool shared_pool defined
[root@lab-kvm-01 ~]# virsh pool-start shared_pool
error: Failed to start pool shared_pool
error: internal error: Child process (/usr/sbin/vgchange -aly vg_gfs2) unexpected exit status 5: LV locked by other host: vg_gfs2/lv_gfs2
Failed to lock logical volume vg_gfs2/lv_gfs2.
所以现在回过头来,我有几个问题:
您究竟如何为 KVM / QEMU 集群设置共享存储池?显然我想要一个像 GFS2 这样的共享文件系统。让 Pacemaker 管理 DLM、lvmlocking 等就好了。
在阅读手册页和 libvirt 文档时,设置逻辑存储池似乎是在卷组上完成的。我猜 libvirt 应该识别现有的文件系统?然而,看起来 libvirt 想要对激活和管理卷组有一定的控制权。我曾希望我可以简单地将存储提供给 libvirt,它会很高兴。
还有pool-build选项提到创建文件系统。但它如何知道我想要一个共享文件系统并相应地管理锁定?
希望以上内容有意义。我想要的只是为我的虚拟机提供一个共享存储池。我只是对如何使用 libvirt 进行设置感到困惑。