溫馨提示×

Linux虛擬機集群部署怎樣操作

小樊
46
2025-09-27 03:25:44
欄目: 云計算

一、前期準備

  1. 硬件要求:物理服務器需滿足多核CPU(支持虛擬化技術,如Intel VT/AMD-V)、充足內存(建議每節點≥4GB)、足夠存儲(用于虛擬機鏡像及共享存儲,如iSCSI/NFS磁盤)及高速網絡(千兆及以上以太網)。
  2. 軟件準備:選擇虛擬化平臺(如KVM/QEMU,主流Linux發行版均內置支持)、集群管理工具(如Pacemaker+Corosync用于高可用,Keepalived用于負載均衡)、共享存儲軟件(如targetcli用于iSCSI、drbd-utils用于DRBD)、虛擬機鏡像(如Ubuntu Server、CentOS Stream,建議統一版本)。

二、安裝虛擬化基礎環境 以Ubuntu為例,安裝KVM及libvirt工具包(包含虛擬化管理工具):

sudo apt update
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager

啟動libvirtd服務并設置開機自啟:

sudo systemctl start libvirtd
sudo systemctl enable libvirtd

將當前用戶加入kvm組(避免每次操作需sudo):

sudo usermod -aG kvm $USER
newgrp kvm  # 刷新組權限

配置網絡橋接(實現虛擬機與物理網絡互通,可選NAT/橋接模式,橋接更適合集群通信):

sudo brctl addbr kvm_bridge  # 創建橋接接口
sudo brctl addif kvm_bridge eth0  # 將物理網卡加入橋接
sudo ifconfig kvm_bridge up  # 啟用橋接接口

可使用virt-manager圖形工具或virsh命令行創建虛擬機(建議預分配足夠CPU、內存及磁盤空間,如2核4G、50GB磁盤)。

三、創建Linux虛擬機節點

  1. 使用virt-manager(圖形化):打開工具后點擊“創建新虛擬機”,選擇鏡像文件(如Ubuntu ISO),跟隨向導配置虛擬機名稱、內存(≥2GB)、CPU(≥2核)、磁盤(≥50GB),關鍵步驟:選擇已創建的橋接網絡(kvm_bridge),完成創建后啟動虛擬機并安裝系統。
  2. 使用virsh(命令行):通過virt-install命令快速創建,示例如下:
sudo virt-install \
--name node1 \
--ram 4096 \
--vcpus 2 \
--disk path=/var/lib/libvirt/images/node1.qcow2,size=50 \
--os-type linux \
--os-variant ubuntu22.04 \
--network bridge=kvm_bridge \
--graphics spice \
--cdrom /path/to/ubuntu-22.04.iso

重復上述步驟創建多個節點(建議≥3臺,滿足集群 quorum 要求)。

四、配置集群通信與同步

  1. SSH免密登錄:在管理節點生成SSH密鑰,分發至所有節點:
ssh-keygen -t rsa  # 生成密鑰(默認路徑~/.ssh/id_rsa)
ssh-copy-id node1  # 復制密鑰至node1(依次執行node2、node3...)

測試免密登錄:ssh node1,無需輸入密碼即為成功。
2. 共享存儲配置(高可用必需):

  • iSCSI方案(適用于集中式存儲):在存儲服務器上安裝targetcli,創建塊存儲并導出iSCSI目標:
    sudo apt install -y targetcli-fb
    sudo targetcli
    /> backstores/block create name=shared_storage dev=/dev/sdb  # 創建塊存儲
    /> iscsi/ create iqn.2023-08.example.com:storage  # 創建iSCSI目標
    /> iscsi/iqn.2023-08.example.com:storage/tpg1/luns create /backstores/block/shared_storage  # 關聯存儲與目標
    /> iscsi/iqn.2023-08.example.com:storage/tpg1/acls create iqn.2023-08.example.com:node1  # 授權節點1訪問
    /> iscsi/iqn.2023-08.example.com:storage/tpg1/acls create iqn.2023-08.example.com:node2  # 授權節點2訪問
    /> saveconfig  # 保存配置
    /> exit
    
    在節點上安裝open-iscsi并連接目標:
    sudo apt install -y open-iscsi
    sudo iscsiadm -m discovery -t st -p <存儲服務器IP>  # 發現目標
    sudo iscsiadm -m node -T iqn.2023-08.example.com:storage -l  # 登錄目標
    
  • DRBD方案(適用于分布式存儲):在兩節點上配置DRBD資源(示例為/dev/sdb):
    sudo modprobe drbd  # 加載內核模塊
    sudo vim /etc/drbd.d/r0.res  # 創建資源文件
    
    資源文件內容:
    resource r0 {
      protocol C;
      on node1 {
        device /dev/drbd0;
        disk /dev/sdb;
        address 192.168.1.101:7788;
        meta-disk internal;
      }
      on node2 {
        device /dev/drbd0;
        disk /dev/sdb;
        address 192.168.1.102:7788;
        meta-disk internal;
      }
    }
    
    初始化并啟動DRBD:
    sudo drbdadm create-md r0
    sudo drbdadm up r0
    
    在節點1上設置主節點:
    sudo drbdadm primary --force r0
    
    格式化并掛載共享存儲(僅在主節點操作):
    sudo mkfs.ext4 /dev/drbd0
    sudo mkdir /mnt/shared
    sudo mount /dev/drbd0 /mnt/shared
    ```。  
    
    

五、部署集群管理工具(以Pacemaker+Corosync為例)

  1. 安裝軟件包:在所有節點安裝Corosync(通信層)、Pacemaker(資源管理)、pcs(命令行工具):
sudo apt install -y corosync pacemaker pcs fence-agents
  1. 配置集群認證:設置集群節點間通信密碼(hacluster為默認用戶):
sudo passwd hacluster  # 設置密碼
sudo pcs cluster auth node1 node2 node3 -u hacluster -p yourpassword  # 認證節點
  1. 創建集群:初始化集群并添加節點:
sudo pcs cluster setup --name ha_cluster node1 node2 node3  # 創建集群
sudo pcs cluster start --all  # 啟動所有節點集群服務
sudo pcs cluster enable --all  # 設置開機自啟
  1. 配置集群屬性:禁用quorum檢查(小規模集群可選)、關閉stonith(生產環境必須配置):
sudo pcs property set stonith-enabled false  # 生產環境需配置stonith(如虛擬機強制關機)
sudo pcs property set no-quorum-policy ignore  # 忽略quorum,避免節點故障時集群停止
```。  

**六、配置虛擬機資源(高可用核心)**
將虛擬機作為集群資源管理,實現故障自動遷移:  
1. **導出虛擬機配置**:將虛擬機XML定義文件復制到共享存儲(所有節點可訪問):  
```bash
sudo virsh dumpxml vm1 > /mnt/shared/vm1.xml  # 導出vm1配置
  1. 創建虛擬機資源:使用Pacemaker創建VirtualDomain資源(指向共享存儲中的XML文件):
sudo pcs resource create vm1 ocf:heartbeat:VirtualDomain \
config=/mnt/shared/vm1.xml \
hypervisor="qemu:///system" \
migration_transport=ssh \
op monitor interval=30s \  # 每30秒檢查一次資源狀態
op start timeout=120s \    # 啟動超時120秒
op stop timeout=120s       # 停止超時120秒
  1. 設置資源約束:確保虛擬機僅在活動節點運行(偏好node1,若node1故障則遷移至node2):
sudo pcs constraint location vm1 prefers node1=100 node2=50
  1. 測試故障轉移:手動停止node1上的Pacemaker服務,觀察虛擬機是否自動遷移至node2:
sudo pcs cluster stop node1
sudo pcs status  # 檢查虛擬機狀態(應在node2上運行)
```。  

**七、測試與優化**
1. **功能測試**:模擬節點故障(如關閉物理服務器),驗證虛擬機是否自動遷移、服務是否恢復;測試共享存儲讀寫(如node1寫入文件,node2能否讀?。?。  
2. **性能優化**:  
   - **網絡優化**:使用bonding綁定多網卡(如active-backup模式),提高網絡冗余;為KVM創建橋接接口,減少網絡延遲。  
   - **存儲優化**:使用SSD作為共享存儲介質,提高IO性能;調整DRBD同步策略(如`syncer rate`),平衡同步速度與帶寬占用。  
   - **虛擬機優化**:為虛擬機分配足夠CPU核心(避免單核瓶頸)、內存(預留10%以上緩沖),使用virtio驅動(提升磁盤/網絡性能)。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女