使用kvm部署虚拟化服务器,KVM虚拟化(KVM的部署及使用)

1.虚拟化

1.1概念

将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象 、转换后呈现出来并可供分区、组合为一个或多个电脑配置环境。

1.2应用数据化的原因

1)同一台物理机运行多个不同版本应用软件

2)硬件依赖性较低

3)便于数据迁移

1.3虚拟化的优势

1)提高应用兼容性

2)降低运营成本

3)加速应用部署

4)提高服务器可用性

5)提高资源利用率

6)动态调度资源

7)降低能源消耗

2.KVM

2.1KVM

1)KVM是开源软件

2)是x86架构且硬件支持虚拟化技术(如intel VT或AMD-V)的Linux全虚拟化解决方案

3)包含为处理器提供底层虚拟化可加载的核心模块kvm.ko(kvm-intel.ko或kvm-AMD.ko)

4)需要经过修改的QEMU软件(qemu-kvm),作为虚拟机上层控制和界面

5)能在不改变linux或windows镜像的情况下同时运行多个虚拟机,(它的意思是多个虚拟机使用同一镜像)并为每一个虚拟机配置个性化硬件环境(网卡、磁盘、图形适配器……)同时KVM还能够使用ksm技术帮助宿主服务器节约内存。

2.2Virtual Machine Manager

1)虚拟机管理员,可以让用户管理多个虚拟机

2)创建、编辑、引导或停止虚拟机

3)查看并控制每个虚拟机的控制台

4)查看每部虚拟机的性能及使用率

5)查看每部正在运行中的虚拟机以及主控端的即时性及使用率信息

6)无论在本机或远程,皆可使用KVM、Xen、QEMU

3.KVM的部署

3.1环境准备

[root@KVM ~]# cat /etc/redhat-release

CentOS Linux release 7.4.1708 (Core)

[root@KVM ~]# uname -r

3.10.0-693.el7.x86_64

[root@KVM ~]# ifconfig

eth0: flags=4163  mtu 1500

inet 10.0.0.101  netmask 255.255.255.0  broadcast 10.0.0.255

inet6 fe80::af24:1fe3:9292:9747  prefixlen 64  scopeid 0x20

ether 00:0c:29:2c:94:03  txqueuelen 1000  (Ethernet)

RX packets 714  bytes 132837 (129.7 KiB)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 247  bytes 35367 (34.5 KiB)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163  mtu 1500

ether 00:0c:29:2c:94:0d  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

lo: flags=73  mtu 65536

inet 127.0.0.1  netmask 255.0.0.0

inet6 ::1  prefixlen 128  scopeid 0x10

loop  txqueuelen 1  (Local Loopback)

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

[root@KVM ~]# getenforce

Disabled

[root@KVM ~]# systemctl status firewalld.service

● firewalld.service - firewalld - dynamic firewall daemon

Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)

Active: inactive (dead)

Docs: man:firewalld(1)

3.2安装相关软件包

[root@KVM ~]#  yum install qemu-kvm libvirt virt-install virt-manager bridge-utils

说明:qemu-kvm    ----模拟计算机的工具,为KVM虚拟机提供IO设备

libvirt    ----管理虚拟机

virt-install    ----命令行的虚拟机创建安装工具

bridge-utils   ----网桥工具

3.4启动

[root@KVM ~]# systemctl start libvirtd

方法一:使用命令行安装部署

3.4创建网桥

[root@KVM ~]# nmcli c add type bridge autoconnect yes con-name br0 ifname br0

Connection 'br0' (f8cd2a6d-1683-4174-825a-76d79b8cefcd) successfully added.

[root@KVM ~]# nmcli c modify br0 ipv4.addresses 10.0.0.101/24 ipv4.method manual

[root@KVM ~]# nmcli c modify br0 ipv4.gateway 10.0.0.254

[root@KVM ~]# nmcli c delete eth0

[root@KVM ~]# nmcli c add type bridge-slave autoconnect yes con-name eth0 ifname eth0 master br0

3.5重启

[root@KVM ~]# reboot

3.6创建安装磁盘

[root@KVM ~]# mkdir -p /var/linux/images

[root@KVM ~]# qemu-img create -f qcow2 /var/linux/images/centos74.img 20G

Formatting '/var/linux/images/centos71.img', fmt=qcow2 size=21474836480 encryption=off cluster_size=65536 lazy_refcounts=off

3.7安装虚拟机

[root@KVM ~]# virt-install --name centos71 --ram 512 --vcpus 2 --disk path=/var/linux43/images/centos71.img,size=10 --os-type linux --os-variant rhel7 --graphics none --console pty,target_type=serial --location=/var/CentOS-7-x86_64-DVD-1708.iso --extra-args 'console=ttyS0,115200n8 serial'

方法二:VNC

3.5创建安装磁盘

[root@KVM ~]# qemu-img create -f qcow2 /var/linux/images/centos742.img 20G

3.6安装虚拟机(NAT模式)

virt-install --virt-type=kvm --name=c72 --vcpus=1 -r 1024 -c /var/CentOS-7-x86_64-DVD-1503-01.iso --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel7 --disk path=/var/linux/images/centos742.img,size=20,format=qcow2

3.7Windows下VNC连接

使用kvm部署虚拟化服务器,KVM虚拟化(KVM的部署及使用)_第1张图片

4.KVM的相关命令

4.1退出虚拟机

ctrl + ]

4.2进入虚拟机

virsh console centos74

4.3查看虚拟机的及状态

virsh list

virsh list --all

4.4启动虚拟机

virsh start centos74

4.5关闭虚拟机

virsh shutdown centos74

4.6强制关闭虚拟机

virsh destroy centos74

4.7删除虚拟机

virsh shutdown centos74

virsh undefine centos74

5.磁盘管理

5.1查看当前虚拟机硬盘信息

[root@KVM ~]# qemu-img info /var/linux/images/centos74.img

image: /var/linux/images/centos74.img

file format: qcow2

virtual size: 20G (21474836480 bytes)

disk size: 1.2G

cluster_size: 65536

Format specific information:

compat: 1.1

lazy refcounts: false

refcount bits: 16

corrupt: false

5.2转换磁盘格式(qcow2转换为raw)

[root@KVM ~]# qemu-img convert -f qcow2 -O raw /var/linux/images/centos74.img /var/linux/images/centos74.img

5.3KVM虚拟机添加硬盘

5.3.1创建一块新的硬盘

[root@KVM ~]# qemu-img create -f qcow2 /var/linux/images/centos74-add.qcow2 2G

5.3.2查看创建的硬盘信息

[root@KVM ~]# qemu-img info /var/linux/images/centos74-add.qcow2

image: /var/linux/images/centos74-add.qcow2

file format: qcow2

virtual size: 2.0G (2147483648 bytes)

disk size: 196K

cluster_size: 65536

Format specific information:

compat: 1.1

lazy refcounts: false

refcount bits: 16

corrupt: false

5.3.3为虚拟机添加硬盘

[root@KVM ~]# virsh attach-disk centos74 /var/linux/images/centos74-add.qcow2 vdb --live --cache=none --subdriver=qcow2

Disk attached successfully

说明:vdb    第二块硬盘

--live    热添加

--sudbriver    驱动类型

detach-disk    分离磁盘设备

attach-disk     附加磁盘设备

5.4格式化磁盘(在KVM虚拟机中操作)

[root@centos74 ~]# mkfs.xfs /dev/vdb

6.快照管理

6.1创建快照

[root@KVM ~]# virsh snapshot-create cnetos74

6.2查看主机快照列表

[root@KVM ~]#  virsh snapshot-list centos74

6.3查看快照信息

[root@KVM ~]# virsh snapshot-info centos74 --spanshotname 1516607756

6.4还原快照

[root@KVM ~]# virsh snapshot-revert centos74 --spanshotname 1516607756

6.5删除快照

[root@KVM ~]# virsh snapshot-delete centos74 --spanshotname 1516607756

7.KVM虚拟机克隆

[root@KVM ~]# virsh-clone --auto-clone -o centos74

8.KVM虚拟机冷迁移

8.1在KVM02中安装kvm组件

[root@KVM02 ~]# yum install -y libvirt* virt-* qemu-kvm*

8.2配置桥接网络

[root@KVM 02~]# virsh iface-bridge eth0 br0

8.3KVM主机将虚拟机关闭,导出配置文件

[root@KVM ~]# virsh shutdown centos74

[root@KVM ~]# virsh dumpxml centos74 > centos74.xml

8.4将虚拟文件传输到KVM02上

[root@KVM ~]# scp -rp centos74.xml 10.0.0.102:/data

8.5KVM02主机导入文件

[root@KVM02 ~]# virsh define centos74.xml

8.6启动虚拟机

[root@KVM02 ~]# virsh start centos74

9.KVM虚拟机热迁移

9.1KVM虚拟机热迁移的核心

9.1安装virt-manager所需桌面及vnc-server

[root@KVM ~]# yum groupinstall "GNOME Desktop" -y

[root@KVM ~]# yum install -y tigervnc-server

[root@KVM ~]#  yum install -y opnssh-askpass

9.2复制vnc配置文件

[root@KVM ~]# cp /usr/lib/systemd/system/[email protected]  /usr/lib/systemd/system/vncserver@\:1.server

9.3修改配置文件

[root@KVM ~]#

egrep -v "^#|^$" /usr/lib/systemd/system/vncserver@\:1.service

[Unit]

Description=Remote desktop service (VNC)

After=syslog.target network.target

[Service]

Type=forking

User=root

ExecStartPre=-/usr/bin/vncserver -kill %i

ExecStart=/usr/bin/vncserver %i

PIDFile=/root/.vnc/%H%i.pid

ExecStop=-/usr/bin/vncserver -kill %i

[Install]

WantedBy=multi-user.target

9.4设置vnc连接时的密码

[root@KVM ~]# vncpasswd

9.5启动vnc服务

[root@KVM ~]# systemctl start vncserver@\:1.services

9.6在KVM主机上部署NFS服务

9.7在KVM02主机上挂载目录

[root@KVM02 ~]# mount -t nfs 172.16.1.101:/var/linux/images /var/linux/images

9.8vnc连接KVM宿主机

9.9添加KVM02宿主机

使用kvm部署虚拟化服务器,KVM虚拟化(KVM的部署及使用)_第2张图片

9.10主机热迁移

使用kvm部署虚拟化服务器,KVM虚拟化(KVM的部署及使用)_第3张图片

9.11在KVM02上查看虚拟主机

[root@KVM02 ~]# virsh list --all

你可能感兴趣的:(使用kvm部署虚拟化服务器)