ovirt Self-Hosted Engine GlusterFS Highly Available VMs 超融合+高可用的部署-保姆級教程-避坑版

Introduction 簡介
本教程是本人花了大量的時間和精力,本人也是小白,剛開始跟大家一樣,不斷的百度,不斷的加群,問大佬。不斷折騰虛擬機,總之總結一些經驗,為了方便大家,所以寫了這篇文章。當然如果您覺得對您有所幫助,可以默念南無大慈大悲地藏王菩薩,七遍。或者是佈施杯奶茶錢也行。 以下教程介紹了如何在運行 Oracle Linux 8 或更高版本的多個節點上安裝和設置適用於 Oracle Linux 部署 ovirt Self-Hosted Engine Gluster 存儲。 在此實驗室中,我們將建立由三個節點,node01 node02 node03,每臺節點,單硬碟、雙網卡,一條用於外網,一條用於內部存儲。本次使用的是VMWARE 17,Oraclelinux8.8的Full安裝做為環境測試。 Self-Hosted Engine 在它管理的同一環境中的自託管引擎節點(專用主機)上作為虛擬機運行。自託管引擎環境所需要的物理伺服器會少一個,但需要更多的管理開銷來部署和管理。管理器本身具有高可用性,無需外部 HA 管理。 為什麼使用Oracle Linux 8的ovirt呢?而不是官方的呢?實際上Oracle版的是在ovirt開源基礎上進行了大量的優化和測試,能够正式用於生產環境下使用。所以才選擇此版本,並且部署比較方便,穩定。

  • 自託管引擎架構

自託管引擎架構-南無地藏王菩薩

Objectives 目標

  • 完成Oracle Linux8的安裝、部署、以及後期的優化
  • SSH互信免密的操作方式
  • dnf/yum的安裝源的處理
  • 可存取 Gluster 回應和套裝程式,並安裝 Gluster 伺服器套裝程式
  • 準備每個節點以使用 Gluster 儲存節、掛載 Gluster 磁碟區
  • 測試高可用和超融合

Prerequisites 先決條件

Node NameNode FQDNRamDISKIP-1IP-2Note
enehttp://engine.yihuos.com最少4096100G192.168.233.10Self-Hosted Engine
ng1http://node01.yihuos.com10G500G192.168.233.1110.10.10.11ng=Nodehost+Gluster
ng2http://node02.yihuos.com10G500G192.168.233.1210.10.10.12
ng3http://node03.yihuos.com10G500G192.168.233.1310.10.10.13

Common errors 避坑記錄

  1. 為引擎和部署主機準備的 FQDN。必須在 DNS 中設置正向和反向查找記錄。新引擎必須具有與原始引擎相同的 FQDN。說簡單點必須能連互聯網
  2. 管理網路(預設為 ovirtmgmt)必須配置為虛擬機網路,這樣它才能管理 Engine 虛擬機。
  3. 必須在部署自託管引擎之前部署 GlusterFS。切記這一點。
  4. 生產環境下必須合理規則好網絡流量
  5. oVirt Engine Appliance 主機上至少 10GB 的目錄。在部署過程中, /var/tmp 將檢查目錄以查看它是否有足夠的空間來提取設備檔。如果目錄沒有足夠的空間,您可以指定其他 /var/tmp 目錄或掛載外部存儲。這是一個大坑,一定要記住。
  6. VDSM 使用者和 KVM 組必須對目錄具有讀取、寫入和執行許可權。
  7. 請勿選擇「最小安裝」以外的任何其他基本環境進行安裝,否則您的主機將具有不正確的 qemu 和 libvirt 版本、配置的不正確的存儲庫以及無法存取虛擬機控制臺。
  8. 系統安裝完後,在安裝Manager軟體包之前,不要安裝任何其他軟體包,因為它們可能會導致依賴關係問題。
  9. 確保 firewalld 服務已啟用並啟動。
  10. 為了實現生產用途和高可用性,每個受信任的存儲池至少需要三臺伺服器。

Preparation work 準備工作
VMware Workstation 的網絡設置
1. Nat網絡模式的設置

2. Host網絡模式的設置

3. VM NODE的硬體配置

OracleLinuxiso 系統下載地址
OracleLinux-R8-U8-x86_64-dvd.iso的官方下載地址
Oracle Linux ISOs | Oracle, Software. Hardware. Complete.
Install Oracle Linux8的系統安裝
1. Localization Keyboard 鍵盤選擇
沒有人玩LINUX還裝中文的吧?

2. System Installation Destination 硬盤設置
採用默認的分區即可,省事。後面當然也可以改LVM進行大小的設置,不過XFS只能擴容不能縮容。

3. Network&HostName 網絡與主機
3.1.HostName主機名的設置

3.2.網絡的設置

3.2.1.網卡1的靜態地址設置

3.2.2.網卡2的靜態地址設置

4. Generate snapshot backups 生成快照備份
安裝完成之後最好生成一相快照備份,優秀的運維人員在於備份和折騰,這是一個良好的習慣

5. License Information 完成許可協議

linux Basic optimization settings 系統的基礎優化設置
1. 節點1先安裝sshpass(NODE01節點上操作)
dnf -y install sshpass

2. 禁止SSH首次連接的詢問過程
此操作在節點1上執行,另外二臺節點機會同步執行
for i in {1..3};do sshpass -p '這裡改成您的密碼' ssh -o "StrictHostKeyChecking no" root@10.10.10.1$i "sed -i '/StrictHostKeyChecking/s/.*/StrictHostKeyChecking no/' /etc/ssh/ssh_config&&systemctl restart sshd";done
3. 設置默認開機為字元介面
此操作在節點1上執行,另外二臺節點機會同步執行
for i in {1..3};do sshpass -p '這裡改成您的密碼' ssh root@10.10.10.1$i "systemctl set-default multi-user.target";done
4. 將系統更新到最新狀態
此操作在節點1上執行,另外二臺節點機會同步執行,並且安裝sshpass,然後重啟,此時建議在VMWARE上生成快照備份
for i in {1..3};do sshpass -p '這裡改成您的密碼' ssh root@10.10.10.1$i "dnf -y distro-sync --nobest&&dnf -y update&&dnf -y install sshpass";done

SSH Node mutual trust 建立節點免密互信
1. 生成到信批量腳本
cat<<"EOF">/etc/sshcopy.sh Nodepwd="這裡改成您的密碼" Raspath="$HOME/.ssh/id_rsa.pub" #hostnames=$(nmcli general hostname) sshpass -p "$Nodepwd" ssh -tt ng2 echo $(uname -a | awk '{print $2}') hostnames=$(uname -a | awk '{print $2}') LocalIP=$(ip a s | grep -w "inet" | awk 'NR==2{ print $2 }' | awk -F/ '{ print $1 }') HostsIP=$(ip a s | grep -w "inet" | awk 'NR==3{ print $2 }' | awk -F/ '{ print $1 }') #生成host檔 # ! grep "eng" /etc/hosts &&echo "192.168.233.10 engine.com eng">>/etc/hosts if [[ $(grep -wic "engine" /etc/hosts) = 0 ]]; then echo "192.168.233.10 engine.yihuos.com ene">>/etc/hosts ;fi #if [[ $(grep -wic "ene" /etc/hosts) = 0 ]]; then echo "10.10.10.10 ene">>/etc/hosts ;fi #批量添加節點到hosts裏中 for i in {1..3};do ! grep "node0$i" /etc/hosts&&echo "192.168.233.1$i node0$i.yihuos.com">>/etc/hosts;done for i in {1..3};do ! grep "ng$i" /etc/hosts&&echo "10.10.10.1$i ng$i">>/etc/hosts;done shortname=$(cat /etc/hosts|grep -w $LocalIP|awk -F" " '{ print $4 }') echo "=========$hostnames $LocalIP /etc/hosts=============" cat /etc/hosts |grep -v "local" #下載免交互輸入密碼工具 if [ $(rpm -qa |grep sshpass|wc -l) != 1 ];then dnf install -y sshpass &> /dev/null;fi #生成密鈅對 if [ ! -e $Raspath ];then ssh-keygen -t rsa -q -f $HOME/.ssh/id_rsa -N '' &> /dev/null;fi #批量分發公鈅 echo "======pub-key開始分發,敬請雙手合十,默念南無大慈大悲地藏王菩薩!七遍======" for i in {1..3} do sshpass -p "$Nodepwd" ssh-copy-id -f -i $Raspath ng$i &> /dev/null #if [ $? == 0 ]; then echo "$shortname ssh copy to ng$i success!" ; fi sshpass -p "$Nodepwd" ssh-copy-id -f -i $Raspath node0$i.yihuos.com &> /dev/null #if [ $? == 0 ]; then echo "$hostnames ssh copy to node0$i.yihuos.com success!" ; fi sshpass -p "$Nodepwd" ssh-copy-id -f -i $Raspath 10.10.10.1$i &> /dev/null #if [ $? == 0 ]; then echo "$HostsIP ssh copy to 10.10.10.1$i success!" ; fi sshpass -p "$Nodepwd" ssh-copy-id -f -i $Raspath 192.168.233.1$i &> /dev/null #if [ $? == 0 ]; then echo "$LocalIP ssh copy to 192.168.233.1$i success!" ; fi done #echo "========= $LocalIP pub-key end fenfa=============" #for i in {1..3};do sshpass -p "$Nodepwd" ssh-copy-id -f -i $Raspath ng$i;done #for i in {1..3};do sshpass -p "$Nodepwd" ssh-copy-id -f -i $Raspath node0$i;done #for i in {1..3};do sshpass -p "$Nodepwd" ssh-copy-id -f -i $Raspath 10.10.10.1$i;done #for i in {1..3};do sshpass -p "$Nodepwd" ssh-copy-id -f -i $Raspath 192.168.233.1$i;done #每臺節點之間測試是否成功 for i in {1..3} do echo "====== SSH Login to (ng$i、node0$i.yihuos.com、10.10.10.1$i、192.168.233.1$i) check======" #if [ $(ssh ng$i -o PreferredAuthentications=publickey -o StrictHostKeyChecking=no "date" |wc -l) = 1 ];then echo "已配置免密";else echo "未配置免密";fi if [ $(ssh ng$i "pwd" |wc -l) = 1 ] then echo "連接正常,目標主機:ng$i 已免密" else echo" 連接失敗,目標主機:ng$i 未免密" fi if [ $(ssh node0$i.yihuos.com "pwd" |wc -l) = 1 ] then echo "連接正常,目標主機node0$i.yihuos.com 已免密" else echo "連接失敗,目標主機node0$i.yihuos.com 未免密" fi if [ $(ssh 10.10.10.1$i "pwd" |wc -l) = 1 ] then echo "連接正常,目標主機:10.10.10.1$i 已免密" else echo "連接失敗,目標主機:10.10.10.1$i 未免密" fi if [ $(ssh 192.168.233.1$i "pwd" |wc -l) = 1 ] then echo "連接正常,目標主機:192.168.233.1$i 已免密" else echo" 連接失敗,目標主機:192.168.233.1$i 未免密" fi done EOF
2. 執行互信批量腳本
#在節點1執行腳本 for host in {1..3};do sshpass -p '這裡改成您的密碼' ssh 10.10.10.1$host 'bash -s' </etc/sshcopy.sh;done

Gluster Storage Deployment GlusterFS存儲部署
請在叢集的所有指定節點上執行此程式。用for命令,可以隻在節點1上操作即可

GlusterFS卷Gluster路徑掛載(節點1為例)本機目錄掛載目錄使用說明
enginenode01.yihuos.com:/engine(ng1:engine)/home/glusterfs/engine/glusterfs/enginehosted引擎
vmstorenode01.yihuos.com:/vmstore(ng1:vmstore)/home/glusterfs/vmstore/glusterfs/vmstore導出備份
datanode01.yihuos.com:/data(ng1:data)/home/glusterfs/data/glusterfs/dataVM主要存儲



配置GlusterFS存儲路徑
1.建立GlusterFS存儲目錄
1. 查看磁盤分區決定存儲路徑
df -Th

2. 建立GlusterFS的掛載目錄
for i in ng{1..3};do ssh $i mkdir -p /glusterfs/{vmstore,engine,data}&&ssh $i "echo $(nmcli general hostname):/glusterfs&& ls /glusterfs";done

4. 建立GlusterFS的存儲目錄
for i in ng{1..3};do ssh -o "StrictHostKeyChecking no" $i mkdir -p /home/glusterfs/{vmstore,engine,data}&&ssh $i "echo $(nmcli general hostname):/home/glusterfs&& ls /glusterfs";done

2.設置GlusterFS訪問權限
在每一臺brick伺服器上創建新用戶組kvm,vdsm,並且賦予讀寫許可權
#for i in ng{1..3};do ssh $i groupadd -g 36 kvm&&ssh $i useradd -u 36 -g 36 vdsm&&ssh -o "StrictHostKeyChecking no" $i chown -R 36:36 /home/glusterfs /glusterfs;done #for i in ng{1..3};do ssh $i chmod 777 -R /home/glusterfs /glusterfs&&chown -R vdsm:kvm /home/glusterfs /glusterfs&&systemctl restart glusterd;done
安裝GlusterFS套裝程式
1. 配置GlusterFS存取權限
for i in {1..3};do ssh ng$i "dnf install oracle-gluster-release-el8 -y";done for i in {1..3};do ssh ng$i "dnf config-manager --enable ol8_gluster_appstream ol8_baseos_latest ol8_appstream";done

2. 安裝GlusterFS伺服器套裝程式
for i in {1..3};do ssh ng$i "dnf install @glusterfs/server -y";done

3. 啟用GlusterFS伺服器服務
for i in {1..3};do ssh ng$i "systemctl enable --now glusterd";done

4. 設定防火牆開放GlusterFS
for i in {1..3};do ssh ng$i "firewall-cmd --permanent --add-service=glusterfs";done for i in {1..3};do ssh ng$i "firewall-cmd --permanent --zone=public --add-port={24007-24008,49152-49251}/tcp &&firewall-cmd --reload";done

建立信任的儲存集區
您只需從其中一個指定的主機執行這些步驟。例如,若要從 node01 建立集區,請輸入下列項目:
1. 建立GlusterFS集群區域
for i in ng{2..3};do gluster peer probe $i;done&&gluster peer status

2. 查看GlusterFS集群狀態
若要列出集區的對等成員,請輸入下列內容:
gluster peer status

3. 查看GlusterFS集群節點
此指令會列出您發出命令的節點對等。在此情況下,對等項目為 node02 和 node03。
若要列出構成集區的節點,請輸入下列事項:
gluster pool list

產生的清單包含您所使用的節點及其對等節點。


配置GlusterFS儲存卷
此範例顯示如何建立複製磁碟區。
注意:複製磁碟區是一種在叢集中設定磁碟區的方式。如需其他磁碟區配置及其建立指示,請參閱 Oracle Linux 檔的 Gluster 儲存。
您只需從其中一個指定的主機執行這些步驟。
1. 創建複製卷 Replicated

  • 複製卷-Replicated Glusterfs Volume,避免了分佈式卷中存在的數據丟失風險。
  • 在複製卷中,數據會在每一個Brick上保存一份副本。如不需要那麼多份副本數,則可以在創建卷的時候指定保存的副本數量。
  • 複製卷需要至少2個Brick來創建具有 2 個副本的卷,或者至少需要3個Brick來創建包含 3 個副本的卷。
  • 這種卷的一個主要優點是,即使一個塊發生故障,仍然可以從其複製的塊訪問數據。複製卷在數據的可靠性冗餘性都優於分佈式卷。

#創建engine data vmstore這三個複製卷 for i in engine data vmstore;do gluster volume create $i replica 3 ng{1..3}:/home/glusterfs/$i force;done #for i in engine data vmstore;do gluster volume delet $i ;done
2. 創建分佈分散卷 - Distributed Dispersed

  • 分佈式分散卷-Distributed Dispersed Glusterfs Volume與分佈式複製卷是相似的,只是使用的分散子卷,而不是複製子卷。
  • 既分佈,又分散。disperse-data 必須大於2
  • Brick的數量必須是第一個子卷的倍數,且必須至少有3個Brick。
  • 這種卷能支持方便擴縮容卷的大小並將負載分佈在各個Brick上

#創建engine data vmstore這三個分佈分散卷 for i in engine data vmstore;do gluster volume create $i disperse-data 2 redundancy 1 ng{1..3}:/home/glusterfs/$i force;done ​
這一步一般不用創建。
3. 啟動GlusterFS卷
#查GFS的卷,一共有三個engine data vmstore,並開啟
for vol in engine data vmstore;do gluster volume start $vol;done

4. 查看GlusterFS卷的相關資訊
for vol in engine data vmstore;do gluster volume info $vol;done



5.glusterfs配置文件優化
對於 Gluster 存儲,使用 FQDN 或 IP 地址以及共用存儲域的路徑名稱指定完整地址。
a. option rpc-auth-allow-insecure on
if [[ $(grep -wic "rpc-auth-allow-insecure" /etc/glusterfs/glusterd.vol) = 0 ]]; then sed -i '3 i\ option rpc-auth-allow-insecure on' /etc/glusterfs/glusterd.vol;fi&&cat -n /etc/glusterfs/glusterd.vol

option rpc-auth-allow-insecure on 這是因為glusterd默認只接受小於1024的端口下發的請求 而Qemu使用了大於1024的端口下發請求,造成gluterd的安全機制默認阻止Qemu的請求
b. 配置優化所有的glusterfs卷
echo '#!/bin/bash -eux'>/etc/glusterset.sh for volume in engine data vmstore;do for option in {"cluster.quorum-type auto","network.ping-timeout 10",'auth.allow \*',"group virt",storage."owner-uid 36","storage.owner-gid 36","server.allow-insecure on"};do echo gluster volume set $volume $option >>/etc/glusterset.sh;done;done&&cat -n /etc/glusterset.sh for host in {1..3};do ssh 10.10.10.1$host 'bash -s' </etc/glusterset.sh;done

配置GlusterFS客戶端
安裝GlusterFS客戶端
本節向您測試從屬端對 Gluster 磁碟區的存取方式。
注意:本節中描述用於掛載檔案系統和存取 Gluster 磁碟區的機制是以 Gluster FUSE 從屬端為基礎。其他服務 (例如 NFS 或 CIFS) 也可以用於相同用途,在 Gluster 儲存以供 Oracle Linux 檔使用。
對 node01 執行下列步驟。
1. 啟用GlusterFS客戶端的存取權
for i in {1..3};do ssh ng$i "dnf install oracle-gluster-release-el8 lrzsz -y&&dnf config-manager --enable ol8_gluster_appstream ol8_baseos_latest ol8_appstream&&dnf module enable glusterfs -y";done

2. 安裝GlusterFS客戶端的的組件
for i in {1..3};do ssh ng$i "dnf install @glusterfs/client -y";done

掛載GlusterFS客戶端
1. 掛載測試
for vol in vmstore engine data;do mount -t glusterfs ng2:$vol /glusterfs/$vol;done
2. 永久掛載
#ng1 for path in vmstore engine data ;do echo ! grep -q "$path" /etc/fstab&&echo "ng2:$path /glusterfs/$path glusterfs backupvolfile-server=ng3,_netdev,defaults 0 0"|tee -a /etc/fstab;done&&cat /etc/fstab

3. 開始掛載並查看
此步驟會在 node01 中掛載磁碟區。不過,您可以從叢集中的任何節點掛載磁碟區。同樣地,如果先前掛載的節點無法使用,便可以重新掛載任何可用的叢集節點。
mount -a df -TH|grep glusterfs

測試GlusterFS客戶端
1. 在資料目錄中建立測試檔案。
touch /glusterfs/data/test{1..10}
2. 在每個 Gluster 伺服器節點上,執行下列命令:
ssh ng3 ls -l /home/glusterfs/data

三個節點 node01、node02 和 node03 應該將測試檔案列示為存在於其各自目錄中的。


Self-Hosted Engine Deployment 自託管引擎部署
個人強烈建議用命令行來部署

  • 在 Oracle Linux Virtualization Manager 中,自託管引擎是一個虛擬化環境,其中引擎在環境中主機上的虛擬機內運行。引擎的虛擬機是作為主機配置過程的一部分創建的。並且,引擎的安裝和配置與主機配置並行。
  • 由於引擎作為虛擬機運行,而不是在物理硬體上運行,因此自託管引擎需要較少的物理資源。此外,由於引擎配置為高可用性,因此,如果運行引擎虛擬機的主機進入維護模式或意外失敗,虛擬機將自動遷移到環境中的另一臺主機。至少需要兩個 KVM 主機。



1. 禁用 virt:ol 模組並啟用 virt:kvm_utils2 模組。
Disable the virt:ol module and enable the virt:kvm_utils2 module.
for i in {1..3};do ssh ng$i "dnf -y module disable virt:ol&&dnf -y module enable virt:kvm_utils2";done

2. 啟用 ol8_baseos_latest yum 儲存庫
Enable the ol8_baseos_latest yum repository
for i in {1..3};do ssh ng$i "dnf config-manager --enable ol8_baseos_latest";done
3. 安裝 Virtualization Manager版軟體包
Install the Oracle Linux Virtualization Manager Release 4.4 package.
for i in {1..3};do ssh ng$i "dnf install oracle-ovirt-release-el8 -y";done

4. 使用 dnf 命令驗證是否啟用了所需的儲存庫
Use the dnf command to verify that the required repositories are enabled.
a. 清除 yum 快取。
Clear the yum cache.
for i in {1..3};do ssh ng$i "dnf clean all";done
b. 列出已配置的存儲庫,並驗證是否啟用了所需的存儲庫。
List the configured repositories and verify that the required repositories are enabled.
for i in {1..3};do ssh ng$i "dnf repolist";done

c. 如果未啟用所需的存儲庫,請使用 config-manager 啟用它。
If a required repository is not enabled, use the config-manager to enable it.
for i in {1..3};do ssh ng$i "dnf config-manager --enable repositoryt";done
5. 安裝託管引擎部署工具和引擎設備。
a. install ovirt-hosted-engine-setup
for i in {1..3};do ssh ng$i "dnf install ovirt-hosted-engine-setup ovirt-engine-appliance -y";done

b. install ovirt-engine-appliance
for i in {1..3};do ssh ng$i "dnf install ovirt-engine-appliance -y";done

c. dnf upgrade --nobest
確保當前安裝的所有軟體包都為最新版本:
for i in {1..3};do ssh ng$i "dnf -y upgrade --nobest&&reboot";done


6. 使用命令行進行部署


1. 用tmux運行腳本
以避免在出現網路或終端中斷時丟失會話。安裝並運行 tmux :
a.安裝tmux
for i in {1..3};do ssh ng$i "dnf -y install tmuxt";done
b.啟用tmux的滑鼠支持
if [ ! -e $HOME/.tmux.conf ];then echo "set -g mouse on"|tee -a $HOME/.tmux.conf&&source $HOME/.tmux.conf;fi tmux
c.提前做好應答文本
後面直接複製即可,省事省力,沒出現在這裡的全部回車默認即可

  1. gatewayIP(網關): 192.168.233.2
  2. ovirtmgmt bridg(橋接的網卡):(nmcli device | awk '$2=="ethernet" {print $1}') 我這裡是ens160
  3. Please specify the number of virtual CPUs for the VM. The default is the appliance OVF value [4]: 2
  4. Please specify the memory size of the VM in MB. The default is the maximum available [8471]: 4096
  5. Engine VM FQDN: engine.yihuos.com
  6. Engine root password: 這裡改成您的密碼
  7. How should the engine VM network be configured? (DHCP, Static)[DHCP]: Static,這裡也可以是DHCP,我是比較懶,直接DHCP
  8. Please enter the IP address to be used for the engine VM: 192.168.233.10
  9. engine admin password:這裡改成您的密碼
  10. Please specify the storage you would like to use (glusterfs, iscsi, fc, nfs)[nfs]:glusterfs
  11. Please specify the full shared storage connection path to use (example: host:/path): ng1:/engine

2. 啓動部署腳本:
hosted-engine --deploy
或者,要在將部署主機添加到管理器後暫停部署,請使用命令行選項 --ansible-extra-vars=he_pause_host=true :
# hosted-engine --deploy --ansible-extra-vars=he_pause_host=true
注意 要隨時退出腳本,使用 *Ctrl*+*D*組合鍵中止部署。在會話超時或連接中斷時,運行 tmux attach 來恢復部署會話。
3. 開始部署
出現提示時,輸入 Yes 以
Continuing will configure this host for serving as hypervisor and will create a local VM with a running engine. The locally running engine will be used to configure a new storage domain and create a VM there. At the end the disk of the local VM will be moved to the shared storage. Are you sure you want to continue? (Yes, No)[Yes]:
4. 配置網關
檢查顯示的網關是否正確並按 *Enter*。在同一個子網中輸入可 ping 地址,以便腳本可以檢查主機的連通性。
192.168.233.2 這裡改成你自己的,千萬要注意一定要能聯網的。
Please indicate a pingable gateway IP address [X.X.X.X]:
5. 指定網卡
腳本會檢測可能的 NIC,以用作環境的管理網橋。輸入其中之一或按 Enter 以接受默認值。
我這裏是ens192
Please indicate a nic to set ovirtmgmt bridge on: (ens1, ens0) [ens1]:

6. 指定如何檢查網路連接。
默認值為 dns
Please specify which way the network connectivity should be checked (ping, dns, tcp, none) [dns]:

  • **ping**

嘗試 ping 網關。

  • **dns**

檢查與 DNS 伺服器的連接。

  • **tcp**

創建到主機和端口組合的 TCP 連接。您需要指定目標 IP 地址和端口。連接成功創建後,網路就被視為處於活動狀態。確保給定主機能夠接受給定端口上傳入的 TCP 連接。

  • **none**

網路始終被視為已連接。
7. 輸入數據中心的名稱
在其中為自託管引擎部署主機。默認名稱為 Default。
Please enter the name of the data center where you want to deploy this hosted-engine host. Data center [Default]:
8. 輸入集群的名稱
在其中為自託管引擎部署主機。默認名稱為 Default。
Please enter the name of the cluster where you want to deploy this hosted-engine host. Cluster [Default]:
9.輸入 OVA 存檔的路徑

  • 如果要使用自定義設備進行虛擬機安裝,請輸入 OVA 存檔的路徑。否則,將此字段留空,以使用 RHV-M Appliance。
  • 要使用自定義 RHV-M 設備設備鏡像進行部署,請指定 OVA 存檔的路徑。否則,將此字段留空,以使用 RHV-M Appliance。

If you want to deploy with a custom engine appliance image, please specify the path to the OVA archive you would like to use. Entering no value will use the image from the rhvm-appliance rpm, installing it if needed. Appliance image path []:
10. 輸入CPU和內存的配置
為 Manager 虛擬機輸入 CPU 和記憶體配置:
Please specify the number of virtual CPUs for the VM. The default is the appliance OVF value [4]: 2 Please specify the memory size of the VM in MB. The default is the maximum available [6824]: 4096

11.為 Manager 虛擬機指定 FQDN
如 http://manager.example.com
Please provide the FQDN you would like to use for the engine. Note: This will be the FQDN of the engine VM you are now going to launch, it should not point to the base host or to any other existing machine. Engine VM FQDN []:
12.指定引擎的域
例如,如果 FQDN 是 http://manager.example.com,則輸入 http://example.com。
我這裡是engine.yihuos.com,然後後面會自動出現,yihuos.com,但是前提是你的/etc/hosts裡有配置
Please provide the domain name you would like to use for the engine appliance. Engine VM domain: [http://example.com]

13.設置root密碼
為 Manager 創建root密碼,並重新輸入它以確認:
Enter root password that will be used for the engine appliance: Confirm appliance root password:
14. 輸入 SSH 公鑰(可選)
輸入 SSH 公鑰,可讓您在不輸入密碼的情況下以 root 用戶身份登錄 Manager 虛擬機,並指定是否為 root 用戶啟用 SSH 訪問:
You may provide an SSH public key, that will be added by the deployment script to the authorized_keys file of the root user in the engine appliance. This should allow you passwordless login to the engine machine after deployment. If you provide no key, authorized_keys will not be touched. SSH public key []: ​ Do you want to enable ssh access for the root user (yes, no, without-password) [yes]:
15. 是否啓用DISA STIG 安全配置集
可選:您可以在 Manager 虛擬機上應用 DISA STIG 安全配置集。DISA STIG 配置檔是默認的 OpenSCAP 配置檔。
Do you want to apply a default OpenSCAP security profile? (Yes, No) [No]:
16. 在自托管引擎中启用 FIPS
yes 這裏要啓用,不然後面GFS選項出不來。
Do you want to enable FIPS? (Yes, No) [No]: yes
17.輸入引擎機的MAC地址
輸入 Manager 虛擬機的 MAC 地址,或接受隨機生成的地址。如果要通過 DHCP 為 Manager 虛擬機提供 IP 地址,請確保此 MAC 地址具有有效的 DHCP 保留。部署腳本將不會為您配置 DHCP 伺服器。
You may specify a unicast MAC address for the VM or accept a randomly generated default [00:16:3e:3d:34:47]:
18. 配置引擎機的網絡
a. 輸入 Manager 虛擬機的網路詳情:
如果不太明白的話,個人建議直接回車,用DHCP。
How should the engine VM network be configured (DHCP, Static)[DHCP]?

b. 如果您指定了 Static,請輸入 Manager 虛擬機的 IP 地址:
還是用 DHCP

  • 靜態 IP 地址必須屬於與主機相同的子網。例如,如果主機在 10.1.1.0/24 中,則管理器虛擬機的 IP 必須位於同一子網範圍 (10.1.1.1-254/24) 中。
  • 對於 IPv6,Red Hat Virtualization 僅支持靜態尋址。

Please enter the IP address to be used for the engine VM [x.x.x.x]: Please provide a comma-separated list (max 3) of IP addresses of domain name servers for the engine VM Engine VM DNS (leave it empty to skip):
19.添加引擎機的IP到/etc/hosts
指定是否將 Manager 虛擬機和基礎主機的條目添加到虛擬機的 /etc/hosts 檔中。您必須確保主機名可以被解析。
Add lines for the appliance itself and for this host to /etc/hosts on the engine VM? Note: ensuring that this host could resolve the engine VM hostname is still up to you. Add lines to /etc/hosts? (Yes, No)[Yes]:
20.配置SMTP郵件通知服務
提供 SMTP 伺服器的名稱和 TCP 端口號、用於發送電子郵件通知的電子郵件地址,以及用於接收這些通知的電子郵件地址列表。或者,按 Enter 接受默認值:
Please provide the name of the SMTP server through which we will send notifications [localhost]: Please provide the TCP port number of the SMTP server [25]: Please provide the email address from which notifications will be sent [root@localhost]: Please provide a comma-separated list of email addresses which will get notifications [root@localhost]:
21.設置引擎機admin密碼
為 admin@internal 用戶創建一個密碼,以訪問管理門戶並重新輸入它以確認:
Enter engine admin password: Confirm engine admin password:
22.指定部署主機的主機名:
Please provide the hostname of this host on the management network [http://hostname.example.com]:
該腳本將創建虛擬機。默認情況下,腳本會先下載並安裝 RHV-M 設備,這將增加安裝時間。
22 Manager 的 FQDN
Please provide the domain name you would like to use for the engine appliance. Engine VM domain: [[http://example.com](https://example.com/)]
可選:如果您設置了變數 he_pause_host: true,部署會在將部署主機添加到 Manager 後暫停。現在,您可以從部署主機登錄到 Manager 虛擬機,以自定義它。您可以使用 FQDN 或 Manager 的 IP 地址登錄。例如,如果 Manager 的 FQDN 是 http://manager.example.com :
$ ssh root@manager.example.com
提示 在安裝日誌中,其 IP 地址位於 local_vm_ip 中。安裝日誌是 /var/log/ovirt-hosted-engine-setup/ovirt-hosted-engine-setup-ansible-bootstrap_local_vm* 的最新實例。

  1. 根據需要自定義 Manager 虛擬機。
  2. 完成後,使用帶有管理器 FQDN 的流覽器登錄管理門戶,並確保主機的狀態為 Up
  3. 通過配置 Manager 虛擬機,刪除鎖定檔和部署腳本自動繼續。

23.選擇要使用的存儲類型:
這裏選glusterfs
Please specify the storage you would like to use (glusterfs, iscsi, fc, nfs)[nfs]:
A. NFS

  • 對於 NFS,輸入版本、存儲的完整地址和路徑,以及任何掛載選項: Please specify the nfs version you would like to use (auto, v3, v4, v4_1)[auto]: Please specify the full shared storage connection path to use (example: host:/path): storage.example.com:/hosted_engine/nfs If needed, specify additional mount options for the connection to the hosted-engine storage domain []:

B. iSCSI
對於 iSCSI,請輸入門戶詳情並從自動檢測的列表中選擇目標和 LUN。您只能在部署期間選擇一個 iSCSI 目標,但支持多路徑連接同一門戶組的所有門戶。
注意 要指定多個 iSCSI 目標,您必須先啟用多路徑,然後才能部署自託管引擎。詳情請查看 Red Hat Enterprise Linux DM 多路徑。另外,還有一個多路徑幫助程式工具,它生成腳本來安裝和配置使用不同選項的多路徑。
Expand
Please specify the iSCSI portal IP address: Please specify the iSCSI portal port [3260]: Please specify the iSCSI discover user: Please specify the iSCSI discover password: Please specify the iSCSI portal login user: Please specify the iSCSI portal login password: ​ The following targets have been found: [1] iqn.2017-10.com.redhat.example:he TPGT: 1, portals: http://192.168.1.xxx:3260 http://192.168.2.xxx:3260 http://192.168.3.xxx:3260 ​ Please select a target (1) [1]: 1 ​ The following luns have been found on the requested target: [1] 360003ff44dc75adcb5046390a16b4beb 199GiB MSFT Virtual HD status: free, paths: 1 active ​ Please select the destination LUN (1) [1]:
C. Gluster
對於 Gluster 存儲,輸入存儲的完整地址和路徑,以及任何掛載選項: 重要 僅支持副本 1 和副本 3 Gluster 存儲。確保您按如下方式配置卷: gluster volume set VOLUME_NAME group virt gluster volume set VOLUME_NAME performance.strict-o-direct on gluster volume set VOLUME_NAME network.remote-dio off gluster volume set VOLUME_NAME storage.owner-uid 36 gluster volume set VOLUME_NAME storage.owner-gid 36 gluster volume set VOLUME_NAME network.ping-timeout 30 Please specify the full shared storage connection path to use (example: host:/path): storage.example.com:/hosted_engine/gluster_volume If needed, specify additional mount options for the connection to the hosted-engine storage domain []:
D. FC
對於光纖通道,從自動檢測的列表中選擇 LUN。必須配置並連接主機匯流排適配器,而且 LUN 不得包含任何現有數據。要重複使用現有 LUN,請參閱管理指南中的重新使用 LUN
The following luns have been found on the requested target: [1] 3514f0c5447600351 30GiB XtremIO XtremApp status: used, paths: 2 active ​ [2] 3514f0c5447600352 30GiB XtremIO XtremApp status: used, paths: 2 active ​ Please select the destination LUN (1, 2) [1]:
24.輸入引擎機的空間大小:
Please specify the size of the VM disk in GB: [50]:
當部署成功完成時,一個數據中心、集群、主機、存儲域和管理器虛擬機已在運行。您可以登錄到管理門戶來添加任何其他資源。

  1. 可選:安裝和配置 Red Hat Single Sign On,以便您可以向環境中添加其他用戶。如需更多資訊,請參閱 管理指南 中的 安裝和配置紅帽單點登錄
  2. 可選: 部署 Grafana,以便您可以監控和顯示來自 RHV 環境的報告。如需更多資訊,請參閱管理指南中的配置 Grafana

Manager 虛擬機、運行它的主機以及自託管引擎存儲域在管理門戶中標有金色標牌。
注意 管理器的 I/O 調度程式和託管 Manager 的 I/O 請求重新排序 I/O 請求。這種雙重重新排序可能會延遲 I/O 請求到存儲層,從而影響性能。 根據您的數據中心,您可以通過將 I/O 調度程式更改為 none 來提高性能。如需更多資訊,請參閱 RHEL 監控和管理系統狀態中的可用磁片調度程式。 下一步是啟用 Red Hat Virtualization Manager 存儲庫。
25.HostedEngine部署完成
Hosted Engine successfully deployed

ovirt Hosted Engine successfully deployed

7.部署中的常見問題集錦
a.最大的問題在這
[ ERROR ] Verify permission settings on the specified storage path.]". HTTP response code is 400. [ ERROR ] fatal: [localhost]: FAILED! => {"changed": false, "msg": "Fault reason is \"Operation Failed\". Fault detail is \"[Permission settings on the specified path do not allow access to the storage.\nVerify permission settings on the specified storage path.]\". HTTP response code is 400."} for i in ng{1..3};do ssh $i chmod 777 -R /home/glusterfs /glusterfs&&chown -R vdsm:kvm /home/glusterfs /glusterfs&&systemctl restart glusterd;done 然後用 10.10.10.11:/engine 或者是 node01.yihuos.com:/engine
b.Engine VM IP address is
[ ERROR ] fatal: [localhost]: FAILED! => {"changed": false, "msg": "Engine VM IP address is while the engine's he_fqdn http://engine.yihuos.com resolves to 192.168.233.10. If you are using DHCP, check your DHCP reservation configuration"} [ ERROR ] Failed to execute stage 'Closing up': Failed executing ansible-playbook
這個問題是/etc/hosts文件裡配置了引擎的域名,刪除即可,然後重新部署hosted-engine --deploy
{"changed": false, "msg": "The resolved address doesn't resolve on the selected interface\n"} [ ERROR ] Failed to execute stage 'Closing up': Failed executing ansible-playbook
出現這個問題,請cat /etc/hosts文件,看看你配置的IP有沒有在HOSTS文件裡做綁定
b.查看引擎機的IP地址
cat /etc/hosts|grep boot|awk '{print $1}' ​ vdsm-client --insecure -f - Host setupNetworks vdsm-client --insecure Host setSafeNetworkConfig

c.查看引擎機安裝
一般安裝hosted-engine需要時間比較長,但可以另一個窗口,用命令查看
#virsh list --all | egrep -- 'Name|----|node' #virsh list --all | awk '/running|shut/ {print $2}' #virsh list --all | grep "running" | awk '{print $3}' # echo "vdsm@ovirt" | virsh list --all #用戶:vdsm@ovirt #密碼:shibboleth echo "list --all" |virsh -c qemu:///system?authfile=/etc/ovirt-hosted-engine/virsh_auth.conf| egrep -vE "quit|virsh|Type|^$" ​ ​
查看虚拟机的配置信息
echo "dominfo HostedEngineLocal" |virsh -c qemu:///system?authfile=/etc/ovirt-hosted-engine/virsh_auth.conf| egrep -vE "quit|virsh \#|Type|Welcome|^$"
查看网卡配置信息
echo "domiflist HostedEngineLocal" |virsh -c qemu:///system?authfile=/etc/ovirt-hosted-engine/virsh_auth.conf| egrep -vE "quit|virsh \#|Type|Welcome|^$"
查看该虚拟机的磁盘位置
echo "domblklist HostedEngineLocal" |virsh -c qemu:///system?authfile=/etc/ovirt-hosted-engine/virsh_auth.conf| egrep -vE "quit|virsh \#|Type|Welcome|^$"
进入虚拟机
echo "console HostedEngineLocal" |virsh -c qemu:///system?authfile=/etc/ovirt-hosted-engine/virsh_auth.conf| egrep -vE "quit|virsh \#|Type|Welcome|^$"
查看IP
echo "domifaddr HostedEngineLocal" |virsh -c qemu:///system?authfile=/etc/ovirt-hosted-engine/virsh_auth.conf| egrep -vE "quit|virsh \#|Type|Welcome|^$" echo "list --state-running" |virsh -c qemu:///system?authfile=/etc/ovirt-hosted-engine/virsh_auth.conf| egrep -vE "quit|virsh \#|Type|Welcome|^$" | sed '1,2d' | sed '/^$/d' | awk '{print $2}' ​ virshs=$('virsh -c qemu:///system?authfile=/etc/ovirt-hosted-engine/virsh_auth.conf|egrep -vE "quit|virsh \#|Type|Welcome|^$"') vmhost=$(echo "list --state-running" |$virshs|awk '/running|shut/ {print $2}') MAC2_VM01=$(virsh domifaddr "${VM01}" | grep ipv4 | xargs | cut -d ' ' -f6) echo "domifaddr $vmhost" |$virshs | awk -F'[ /]+' '{if (NR>2 && $5) print $5}' | tail -1 echo "domifaddr HostedEngineLocal" |virsh -c qemu:///system?authfile=/etc/ovirt-hosted-engine/virsh_auth.conf| egrep -vE "quit|virsh \#|Type|Welcome|^$" | awk -F'[ /]+' '{if (NR>2 && $5) print $5}' | tail -1

d.查看應答文件
answers=/var/lib/ovirt-hosted-engine-setup/answers/ cat -n $answers$(ls -lrt $answers|tail -1| awk '{print $9}')

Engine web 引擎設置
1、windows綁定host
@ECHO OFF SET hosts=%WinDir%\system32\drivers\etc\hosts ::這裡改成自己的域名 SET hosturl=http://engine.yihuos.com ::這裡改成自己的IP SET hostIP=192.168.233.10 takeown /f "%SystemRoot%\System32\drivers\etc\hosts" /a if exist %hosts% echo y|icacls %hosts% /c /grant "administrators:F" >NUL 2>NUL if exist %hosts% attrib -h -r -s %hosts% echo. >>%hosts% SET NEWLINE=^& echo. FIND /C /I "%hosturl%" %hosts% >NUL 2>NUL IF %ERRORLEVEL% NEQ 0 ECHO. %NEWLINE%^%hostIP% %hosturl%>>%hosts% type %SystemRoot%\System32\drivers\etc\hosts|findstr "%hosturl%" START https://%hosturl% ECHO.&ECHO 完成 &TIMEOUT /t 5 >NUL
將以上內容另存為host.bat,然後運行即可。最好是用火狐瀏覽器打開

2、進入Engineweb
折騰了幾個小時,終於迎於激動人心的時刻,在南無大慈大悲地藏王菩薩加持之下,終於能進engine的web了

3、添加GlusterFS存儲

A。添加備份導出存儲

B.添加主要VM存儲

後續還會再寫ovirt+ceph,另外關於glusterfs擴容的教程也會一一完成,創作不易,請大家多多支持和理解。

发布于 2023-11-17 14:11・IP 属地广东・来源 2023-11-16 广东省深圳市 ,编辑于 2023-11-17 15:10・IP 属地广东・来源 2023-11-16 广东省深圳市

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值