virsh常用維護命令:https://www.cnblogs.com/cyleon/p/9816989.html
openstack使用2——制作centos7鏡像:https://blog.csdn.net/kwame211/article/details/79759931
kvm虛擬化環境安裝:https://blog.51cto.com/koumm/1288795
centos創建kvm虛擬機:https://www.cnblogs.com/jottings/p/11831413.html
KVM虛擬化:https://www.cnblogs.com/xueheng36/p/10990521.html
kvm創建虛擬機報錯:https://blog.csdn.net/weixin_30879169/article/details/95735499
無桌面搭建kvm虛擬化:https://www.jianshu.com/p/80f759885d3a/
二、創建qcow2鏡像
上傳centos7官方鏡像:CentOS-7-x86_64-DVD-1511.iso
1、宿主機虛擬化環境配置
1.首先要開啟宿主機的虛擬化:
執行 grep -E "(vmx|svm)" /proc/cpuinfo
,可以看CPU有沒有開啟虛擬化
vmware虛擬機的話,在虛擬機設置里,點擊“處理器”,勾選 "虛擬化 intel VT-x/EPT 或 AMD-V/RVI(V)"
[root@controller ~]# grep -E "(vmx|svm)" /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch arat tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec xsaves
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch arat tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec xsaves
隨后需要關閉防火牆和selinux、配置yum環境,步驟略。
2.安裝kvm軟件包
yum -y install kvm python-virtinst libvirt tunctl bridge-utils virt-manager qemu-kvm-tools virt-viewer virt-v2v --skip-broken
# 補充安裝kvm虛擬化的一些管理包
yum -y install libguestfs-tools
yum install virt-install.noarch -y
3.檢查虛擬化環境
# 檢查libvirtd服務
[root@controller ~]# systemctl start libvirtd
[root@controller ~]# systemctl status libvirtd
● libvirtd.service - Virtualization daemon
Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2021-11-18 10:34:54 EST; 1s ago
Docs: man:libvirtd(8)
http://libvirt.org
Main PID: 3935 (libvirtd)
CGroup: /system.slice/libvirtd.service
└─3935 /usr/sbin/libvirtd
Nov 18 10:34:54 controller systemd[1]: Starting Virtualization daemon...
Nov 18 10:34:54 controller libvirtd[3935]: libvirt version: 1.2.17, package: 13.el7_2.5 (CentOS BuildSystem <http://bugs.cento...os.org)
Nov 18 10:34:54 controller libvirtd[3935]: Module /usr/lib64/libvirt/connection-driver/libvirt_driver_lxc.so not accessible
Nov 18 10:34:54 controller systemd[1]: Started Virtualization daemon.
Hint: Some lines were ellipsized, use -l to show in full.
# 檢查kvm模塊支持
[root@controller ~]# lsmod | grep kvm
kvm_intel 162153 0
kvm 525259 1 kvm_intel
# 檢查虛擬工具版本
[root@controller ~]# virsh --version
1.2.17
[root@controller network-scripts]# virt-install --version
1.2.1
2、kvm虛擬機創建
1.宿主機創建系統盤:
[root@controller ~]# qemu-img create -f qcow2 centos7.qcow2 16G
Formatting 'centos7.qcow2', fmt=qcow2 size=17179869184 encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16
[root@controller ~]# du -sh *
4.0K anaconda-ks.cfg
196K centos7.qcow2
- 虛擬網絡創建
# 首先判斷是否有默認虛擬網絡
[root@controller network-scripts]# virsh net-list --all
Name State Autostart Persistent
----------------------------------------------------------
# 在沒有默認虛擬網情況下需要啟動
# 首先判斷/usr/share/libvirt/networks/default.xml是否存在,不存在如下操作:
[root@controller libvirt]# mkdir -p /usr/share/libvirt/networks
[root@controller libvirt]# cd /usr/share/libvirt/networks/
[root@controller networks]# touch default.xml
# default.xml文件內容:(根據openstack內網信息編寫)
[root@controller networks]# vi default.xml
<network>
<name>default</name>
<bridge name="virbr0" />
<forward/>
<ip address="10.10.1.0" netmask="255.255.255.0">
<dhcp>
<range start="10.10.1.101" end="10.10.1.240" />
</dhcp>
</ip>
</network>
# 重新加載網絡並激活xml配置
[root@controller networks]# virsh net-define /usr/share/libvirt/networks/default.xml
Network default defined from /usr/share/libvirt/networks/default.xml
# 激活網絡
[root@controller networks]# virsh net-autostart default
Network default marked as autostarted
[root@controller networks]# virsh net-start default
Network default started
[root@controller networks]# virsh net-list --all
Name State Autostart Persistent
----------------------------------------------------------
default active yes yes
# 檢查宿主機網卡
[root@controller networks]# ifconfig
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
eno3554960: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 10.10.1.0 netmask 255.255.255.0 broadcast 10.10.1.255
ether 52:54:00:68:28:4c txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
如上所示,多了一個virbr0網卡
3、手動完成虛擬網卡配置
# 創建一個新網卡
[root@controller networks]# cd /etc/sysconfig/network-scripts/
# 修改virbr0網卡內容
[root@controller network-scripts]# vi ifcfg-virbr0
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
NAME=virbr0
DEVICE=virbr0
ONBOOT=yes
NETMASK=255.255.255.0
UUID=c3295183-7dca-41a8-a60d-abf1ab7be8ed
4.創建kvm虛擬機
[root@controller opt]# pwd
/opt
[root@controller opt]# ls
CentOS-7-x86_64-DVD-1511.iso centos7.qcow2
# 執行創建kvm操作
virt-install --virt-type kvm \
--name centos7 --ram 1024 \
--cdrom=/opt/CentOS-7-x86_64-DVD-1511.iso \
--disk path=/opt/centos7.qcow2 \
--network network=default \
--graphics vnc,listen=0.0.0.0 \
--noautoconsole
5.vnc view 連接虛擬機
# 首先下載vnc view軟件
# 查看qemu-kvm端口
[root@controller opt]# netstat -ntpl | grep qemu-kvm
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 9102/qemu-kvm
# 訪問192.168.16.10:5900,完成虛擬機安裝,注意勾選上development-tools(gcc)
# 安裝重啟后,虛擬機往往是關機狀態
# 執行如下命令查看狀態
[root@controller ~]# virsh list --all
# 執行如下命令啟動kvm虛擬機
[root@controller ~]# virsh start centos7
# 啟動后查看端口
[root@controller opt]# netstat -ntpl | grep qemu-kvm
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 9102/qemu-kvm
# 即可再次用vnc訪問kvm虛擬機
[root@controller ~]# systemctl restart sshd
[root@controller ~]# systemctl enable sshd
三、上傳openstack使用
1、鏡像上傳glance
# 在控制節點,通過glance命令,將qcow2鏡像上傳到平台
[root@controller images]# source /etc/keystone/admin-openrc.sh
[root@controller images]# glance image-create --name "centos7" --disk-format qcow2 --container-format bare --progress < /opt/centos7.qcow2
[=============================>] 100%
+------------------+--------------------------------------+
| Property | Value |
+------------------+--------------------------------------+
| checksum | 8fedcc705e0f107be3376ebf57f304cd |
| container_format | bare |
| created_at | 2021-12-06T22:06:30Z |
| disk_format | qcow2 |
| id | 3023637e-045b-4833-b953-476d72f2f21b |
| min_disk | 0 |
| min_ram | 0 |
| name | centos7 |
| owner | 386dbfcf77e444c7872e4e23d5829fcc |
| protected | False |
| size | 1141178368 |
| status | active |
| tags | [] |
| updated_at | 2021-12-06T22:06:33Z |
| virtual_size | None |
| visibility | private |
+------------------+--------------------------------------+
基於鏡像創建新的雲主機。
注意flavor類型:硬盤要大於19G。
注意檢查dashboard上:系統——系統信息里面所有服務是否啟動。
# 在compute節點上執行的服務恢復命令——如下參考
systemctl restart openstack-cinder-volume
systemctl restart openstack-nova-compute
service neutron-metadata-agent restart
service neutron-openvswitch-agent restart
2、控制台配置雲主機
從 http://192.168.16.10/dashboard 登錄openstack的dashboard。
項目——計算——雲主機,進入雲主機管理頁面,點擊 雲主機名稱 ,點擊 控制台,點擊只顯示控制台進入控制台管理。
1.修改網卡信息
# 將網卡信息修改為平台上顯示的ip地址
vi /etc/sysconfig/network-scripts/ifcfg-eth0
# 主要修改和增加如下內容
BOOTPROTO=static
ONBOOT=yes
IPADDR=10.10.1.124
NETMASK=255.255.255.0
GATEWAY=10.10.1.2
DNS=8.8.8.8
# 重啟網絡
systemctl restart network
2.網絡配置
# 關閉防火牆
systemctl stop firewalld
systemctl disable firewalld
# 關閉網絡管理
systemctl disable NetworkManager
# 關閉selinux,修改文件為disabled
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# 修改dns配置文件
vi /etc/resolv.conf
# 其他注釋,添加如下內容:
nameserver 8.8.8.8
# 修改生效
setenforce 0
# 網絡測試
ping www.baidu.com
3.yum源更新
# 將官方的yum源備份到一個新目錄:
mkdir /etc/yum.repos.d/repo.bak/
mv /etc/yum.repos.d/*.repo repo.bak/
# 更新下載阿里源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 清理yum
yum clean all
yum makecache
# 更新yum信息
yum update -y