KVM虚拟化服务

2022-08-18  本文已影响0人  全村滴希望

KVM虚拟化服务

环境准备

查看CPU是否⽀持VT技术,能够grep出vmx或者svm则表示支持虚拟化

cat /proc/cpuinfo | grep -E 'vmx|svm'

安装KVM

yum install *qemu* *virt* librbd1-devel -y

创建qemu-kvm软链接

ln -sv /usr/libexec/qemu-kvm /usr/bin/

安装libguestfs-tools,用于对kvm虚拟机镜像的管理

yum -y install libguestfs-tools

启动KVM

systemctl start libvirtd
systemctl enable libvirtd

virsh version
Compiled against library: libvirt 4.5.0
Using library: libvirt 4.5.0
Using API: QEMU 4.5.0
Running hypervisor: QEMU 2.12.0

存储池配置

创建存储池目录,配置目录权限

mkdir -p /data/kvm/images
chown root:root /data/kvm/images/
chmod 755  /data/kvm/images/

定义一个存储池并绑定目录,建立基于文件夹的存储池、激活、设置开机启动。

virsh pool-define-as StoragePool --type dir --target /data/kvm/images
virsh pool-build StoragePool
virsh pool-start StoragePool
virsh pool-autostart StoragePool

查看存储池信息

virsh pool-info StoragePool
virsh pool-list

网络配置

先把现在的网卡文件做个备份

cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.bak

添加br0桥接配置

vim /etc/sysconfig/network-scripts/ifcfg-br0

添加如下内容,ip,网关根据之前的eth0配置来修改

TYPE=Bridge
NAME=br0
DEVICE=br0
ONBOOT="yes"
BOOTPROTO=static
IPADDR=192.168.76.222
NETMASK=255.255.240.0
GATEWAY=192.168.64.1
DNS1=114.114.114.144
DNS2=8.8.8.8

eth0网卡修改如下,桥接到br0上。

# cat  /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
ONBOOT="yes"
BRIDGE=br0

重启network服务

systemctl restart NetworkManager

重启libvirtd服务

systemctl restart libvirtd

查看网卡信息

ifconfig

br0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.76.222  netmask 255.255.240.0  broadcast 192.168.79.255
        ether 82:3a:7d:50:b7:cf  txqueuelen 1000  (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

开启网桥 stp 树协议,防止环路:

brctl stp br0 yes

查看网桥:

brctl show
bridge name bridge id       STP enabled interfaces
br0     8000.000000000000   yes
virbr0      8000.52540084a956   yes     virbr0-nic

创建虚拟机

上传ISO镜像到服务器

ll *.iso
-rwxr-xr-x 1 root root 4712300544 Aug 18 09:08 CentOS-7-x86_64-DVD-2009.iso

创建一个存放虚拟机系统的卷

qemu-img create -f qcow2 /data/kvm/images/centos7.6x86.qcow 20G
Formatting '/data/kvm/images/centos7.6x86.qcow', fmt=qcow2 size=21474836480 cluster_size=65536 lazy_refcounts=off refcount_bits=16

创建虚拟机 执行的命令如下:

virt-install \
--name centos7.6x86 \
--ram 2048 \
--vcpus 2 \
--os-type linux \
--os-variant rhel7 \
--network bridge=br0,model=virtio \
--disk /data/kvm/images/centos7.6x86.qcow \
--location /home/CentOS-7-x86_64-DVD-2009.iso \
--console pty,target_type=serial \
--nographics \
--extra-args 'console=ttyS0,115200n8 serial'

--name # 设置虚拟机名称

--vcpus # 设置cpu核数

--ram # 设置ram内存,单位MB

--os-variant #操作系统版本

--disk # 安装的磁盘路径

--cdrom # iso文件路径

--network # 使用桥接方式

--force # 禁止命令进入交互式模式,如果有需要回答yes或no选项,则自动回答为yes

--autostart # 虚拟机自动启动

--console pty,target_type=serial #console控制通道

--extra-args #文本输出

等待命令行界面安装虚拟机

1)语言设置 2)时区设置 3)安装源 4)软件包选择
5)系统分区 6)Kdump功能 7)网络配置 8)密码设置
9)创建用户
按“q”退出,按“b”开始安装。必须把带“!”号的都设置好才能开始安装。

稍等一会,显示安装结束,按回车重启系统

重启后输入用户名和密码就可以登录进新创建的虚拟机

使用console连接虚拟机的命令(base为安装虚拟机时指定的名字):

virsh console centos7.6x86

即可进入虚拟机

克隆虚拟机

输入下面命令即可进入KVM控制台操作界面

virsh

或者直接在宿主机执行

查看所有虚拟机

virsh list --all

使用console方式连接虚拟机(base为虚拟机名称)

virsh console centos7.6x86

关机

virsh shutdown centos7.6x86

开机

virsh start centos7.6x86

删除虚拟机

virsh undefine centos7.6x86

克隆虚拟机之前先关闭虚拟机

virsh shutdown centos7.6x86
virt-clone --connect=qemu:///system -o centos7.6x86 -n centos7.6x86-2 -f /var/lib/libvirt/images/centos7.6x86-2.qcow2
Allocating 'centos7.6x86-2.qcow2'                           |  20 GB  00:02

Clone 'centos7.6x86-2' created successfully.

-o 参数是模板虚拟机的名称
-n 是你克隆后的虚拟机名称

查看虚拟机列表

virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     centos7.6x86                   shut off
 -     centos7.6x86-2                 shut off

设置虚拟机CPU数量

virsh edit master

注意:不可以直接用 vi 或者 vim 修改配置文件(/etc/libvirt/qemu/master.xml),否则不会生效。

保存后,再重新开机虚拟机,就可以查看到虚拟机的CPU数量了

cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l

修改虚拟机名称

关闭虚拟机

virsh shutdown centos7.6x86

注:如果虚拟机有快照需要先删除快照!

修改文件名

[root@kvm-1 qemu]# pwd
/etc/libvirt/qemu
[root@kvm-1 qemu]# mv centos7.6x86.xml centos7.xml

修改 name 和 source file 的名字

修改磁盘文件名,默认路径:/var/lib/libvirt/images/

[root@kvm-1 qemu]# cd /data/kvm/images
[root@kvm-1 images]# mv centos7.6x86.qcow centos7.qcow

删除原有的虚拟机

[root@kvm-1 images]# virsh undefine centos7.6x86

使用现有的文件创建虚拟机,其实就是改名

[root@kvm-1 qemu]# cd /etc/libvirt/qemu
[root@kvm-1 qemu]# virsh define centos7.xml
上一篇下一篇

猜你喜欢

热点阅读