KVM虚拟机
那个机器登陆慢执行
echo "UseDNS no" >> /etc/ssh/sshd_config
systemctl restart sshd
kvm常用命令
brctl show br0 // 查看宿主机与虚拟机映射网卡
virsh console sg-14 // 宿主机进入虚拟机
control+']' // 虚拟机切换到宿主机
1.virsh list // 查看运行的虚拟机列表
virsh list --all // 查看全部虚拟机列表
2.virsh start sg-15 //启动虚拟机
virsh auotstart --disable sg-15 //取消自动启动
3. 连接虚拟机
virsh console +域名(虚拟机的名称)
4. 退出虚拟机
ctrl+]
5. 关闭虚拟机
virsh shutdown +域名
virsh destroy +域名
这种⽅式的关闭,是⼀种删除的⽅式,只是在virsh list中删除了该虚拟机。
6. 挂起虚拟机
virsh suspend +域名
7. 恢复被挂起的虚拟机
virsh resume +域名
8. ⼦机随宿主主机(母机)启动⽽启动
virsh autostart + 域名
9. 取消⾃动启动
virsh auotstart --disable +域名
10. 彻底删除虚拟机
删除虚拟机 virsh destroy +域名
解除标记 virsh undefine +域名
删除虚拟机⽂件
11. 启动虚拟机并进⼊该虚拟机
virsh start 域名 --console
12. 查看虚拟机信息
virsh dominfo 域名
13. 重启
virsh reboot 域名
14. 查看虚拟机信息
virsh dominfo 域名
15. 查看虚拟机磁盘
virsh domblklist 域名
16. 查看虚拟⽹卡
virsh domiflist 域名
17. 更改虚拟机配置,libvirt使⽤xml⽂件来定义虚拟机配置
virsh edit 域名
kvm虚拟机安装(centos)
:yum install -y qemu-kvm libvirt libvirt-python libguestfs-tools virt-install
:systemctl enable libvirtd && systemctl start libvirtd
:echo "BRIDGE=br0" >> /etc/sysconfig/network-scripts/ifcfg-enp1s0
:touch /etc/sysconfig/network-scripts/ifcfg-br0
:cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="br0"
BOOTPROTO="static"
ONBOOT="yes"
TYPE="Bridge"
DELAY="0"
IPADDR="192.168.0.217"
PREFIX="24"
GATEWAY="192.168.0.254"
DNS1="114.114.114.114"
EOF
:systemctl restart network
:vi /etc/libvirt/qemu.conf
user = "root"
group = "root"
systemctl restart libvirtd
// 划分磁盘,qcow2格式可以打快照
:dd if=/dev/zero of=/home/vm-images/sg-14.img bs=1M count=102400
:dd if=/dev/zero of=/home/vm-images/sg-14.qcow2 bs=1M count=102400
// centos划分虚拟机
:virt-install --network bridge:br0 --name sg-14 --ram=8192 --vcpus=8 --disk path=/home/vm-images/sg-15.img,size=100 --graphics none --location=/root/CentOS-7-x86_64-Minimal-1810.iso --extra-args='console=ttyS0' --force
// 宿主机上执行,自动启动
:virsh autostart sg-14
// 停止
virsh shutdown sg-14&&virsh destroy sg-14&&virsh undefine sg-14
// 删除
:rm /home/vm-images/sg-14.img
KVM安装过程配置
kvm虚拟机安装(ubuntu)
sudo apt install qemu-kvm libvirt-daemon-system virtinst
vi /etc/libvirt/qemu.conf
user = "root"
group = "root"
systemctl restart libvirtd
// 划分磁盘,qcow2格式可以打快照
dd if=/dev/zero of=/home/vm-images/sg-14.img bs=1M count=51200
dd if=/dev/zero of=/home/vm-images/sg-14.qcow2 bs=1M count=102400
//Ubuntu划分虚拟机
virt-install --network bridge:br0 --name sg-15 --ram=8192 --vcpus=8 --disk path=/home/vm-images/sg-15.img,size=250 --graphics none --location=/root/ubuntu-22.04-live-server-amd64.iso,kernel=casper/vmlinuz,initrd=casper/initrd --extra-args='console=ttyS0' --force
// 宿主机上执行,自动启动
:virsh autostart sg-14
// 停止
virsh shutdown sg-14&&virsh destroy sg-14&&virsh undefine sg-14
// 删除
:rm /home/vm-images/sg-14.img
网卡配置
//虚拟机
cat >/etc/netplan/00--XXX << EOF
network:
ethernets:
enp1s0:
dhcp4: no
addresses:
- 192.168.0.52/24
gateway4: 192.168.0.254
nameservers:
addresses:
- 114.114.114.114
EOF
netplan apply //应用
//宿主机
# This is the network config written by 'subiquity'
cat > ./00-installer-config.yaml <<EOF
network:
version: 2
ethernets:
enp1s0:
dhcp4: no
bridges:
br0:
dhcp4: no
interfaces:
- enp1s0
addresses:
- 192.168.0.252/24
gateway4: 192.168.0.254
nameservers:
addresses:
- 114.114.114.114
EOF
ubuntu开启root登陆
sudo vi /etc/ssh/sshd_config
PermitRootLogin yes 并保存
userdel -r root1
reboot
kvm克隆
第一步:virsh list --all //列出所有虚拟机
第二步:虚拟机必须在关闭的状态下:virsh shutdown sg-14
第三步:开始克隆:virt-clone --original sg-14 --name sg-15 --file /home/vm-images/sg-15.qcow2
--original //后面跟要克隆的虚拟机名字
--name //克隆后虚拟机的名字
--file //指定存放的路径
第四步:启动克隆虚拟机:virsh start sg-15
第五步:登陆sg-15,并修改ip,hostname。(用sg-14的ip登陆,克隆时ip一并克隆了)
第六步:修改ip(ubuntu,centos不一样。自行上面查询)
第七步:修改hostname,vi /etc/hostname
第八步:reboot
第九步:回到宿主机,开机自启:virsh autostart sg-15
第十步:喝杯咖啡,大功告成
注(备用):将raw格式的VM5.img磁盘转换为qcow2格式的VM5.qcow2:
qemu-img convert -f raw -O qcow2 sg-14.img sg-14.qcow2
-f 需要转换的磁盘格式
-O 目标格式
kvm快照
创建快照
使用以下命令创建虚拟机的快照:
virsh snapshot-create-as <domain> <name> [--description <description>] [--disk-only] [--atomic]
<domain> 是虚拟机的名称
<name> 是快照的名称
--description 是可选的描述信息
--disk-only 表示只对虚拟机的磁盘进行快照
--atomic 表示在创建快照期间禁止虚拟机的操作,确保快照的一致性。
eg:对名为master-100虚拟机创建backups-100-v1的快照
virsh snapshot-create-as master-100 backups-100-v1 --description "2023-05-08备份100v1" --atomic
快照恢复
要恢复虚拟机到之前的快照状态,可以使用以下命令:
virsh snapshot-revert <domain> <name> [--force] [--running] [--paused]
<domain> 是虚拟机的名称
<name> 是要恢复的快照的名称
--force 表示强制恢复快照,即使虚拟机正在运行
--running 表示在恢复快照后立即启动虚拟机
--paused 表示在恢复快照后暂停虚拟机。
eg:对名为master-100的虚拟机恢复到backups-100-v1快照状态
virsh snapshot-revert master-100 backups-100-v1 --running
选择了IT,必定终身学习