菜单

安装KVM虚拟化

2017年10月21日 - 虚拟化KVM

实验环境:

centos6.5(64)位
内存:4G
硬盘:30G,用来存放虚拟机的文件
最关键的一步,在创建虚拟机时,cpu是需要勾上红色框配置一下虚拟化如图

一、 安装kvm前的准备工作
1:清除iptables规则

[root@ghs ~]# service iptables stop; service iptables save

2:关闭selinux

[root@ghs ~]# sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/’ /etc/selinux/config
setenforce 0

 

二、开始安装kvm
1:检查你的系统是否支持虚拟化

[root@ghs ~]#cat /proc/cpuinfo|grep -Ei ‘vmx|svm’

如果有输出内容,则支持,其中intel cpu支持会有vmx,amd cpu支持会有svm

2:通过yum安装虚拟化的软件包

[root@ghs ~]# yum install -y kvm virt-* libvirt bridge-utils qemu-img

说明:
kvm:软件包中含有KVM内核模块,它在默认linux内核中提供kvm管理程序
libvirts:安装虚拟机管理工具,使用virsh等命令来管理和控制虚拟机。
bridge-utils:设置网络网卡桥接。
virt-*:创建、克隆虚拟机命令,以及图形化管理工具virt-manager
qemu-img:安装qemu组件,使用qemu命令来创建磁盘等。

3:检测是否加载出KVM模块

[root@ghs ~]# lsmod |grep kvm
正常应该是:
kvm_intel 55496 3
kvm 337772 1 kvm_intel

如果没有,需要执行
[root@ghs ~]# modprobe kvm-intel
还没有就重启一下试试

4:配置网卡

[root@ghs ~]# cd /etc/sysconfig/network-scripts/
[root@ghs ~]# cp ifcfg-eth0 ifcfg-br0
分别编辑eth0和br0
ifcfg-eth0网卡改成如下:
DEVICE=eth0
HWADDR=00:0C:29:55:A7:0A
TYPE=Ethernet
UUID=2be47d79-2a68-4b65-a9ce-6a2df93759c6
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
BRIDGE=br0

 

ifcfg-br0改成如下:
DEVICE=br0
#HWADDR=00:0C:29:55:A7:0A
TYPE=Bridge
#UUID=2be47d79-2a68-4b65-a9ce-6a2df93759c6
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.1.113
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8

说明: 我的虚拟机是桥接模式,所以设置br0的ip和我的真机同样的网段,包括网关也是我路由器的ip,个人根据自己的环境去配置,目的是为了让虚拟机可以上网。

5:重启网络服务

[root@ghs ~]# /etc/init.d/network restart

重启后网卡信息如下:
br0 Link encap:Ethernet HWaddr 00:0C:29:55:A7:0A
inet addr:192.168.1.113 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe55:a70a/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:141326 errors:0 dropped:0 overruns:0 frame:0
TX packets:90931 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:456024940 (434.8 MiB) TX bytes:10933593 (10.4 MiB)

eth0 Link encap:Ethernet HWaddr 00:0C:29:55:A7:0A
inet6 addr: fe80::20c:29ff:fe55:a70a/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:341978 errors:0 dropped:0 overruns:0 frame:0
TX packets:90946 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:468848861 (447.1 MiB) TX bytes:10934699 (10.4 MiB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

virbr0 Link encap:Ethernet HWaddr 52:54:00:14:EF:D5
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

 

6:启动或重启libvirtd服务和messagebus 服务

[root@ghs ~]# /etc/init.d/libvirtd start
[root@ghs ~]# /etc/init.d/messagebus restart

此时可以查看网络接口列表
[root@ghs ~]# brctl show 结果如下:
bridge name bridge id STP enabled interfaces
br0 8000.000c2955a70a no eth0
virbr0 8000.52540014efd5 yes virbr0-nic

如果显示上面信息,则表示配置OK,如果没有检查下配置是否有误

7:创建KVM目录存放虚拟子机,将sdb磁盘挂载到KVM目录

[root@ghs ~]# fdisk /dev/sdb
[root@ghs ~]# mkfs.ext4 /dev/sdb1
[root@ghs ~]# mount /dev/sdb1 /kvm
注意:挂载需要修改/etc/fstab挂载文件,让其开机启动自动挂载到KVM目录

挂载后如下:
[root@ghs ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 ext4 20G 1.7G 18G 9% /
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/sda1 ext4 194M 27M 158M 15% /boot
/dev/sdb1 ext4 30G 172M 28G 1% /kvm

 

 

8:创建虚拟子机,子机的安装包为centos6.9-i386、内存512、容量20G、存放的目录在/KVM

[root@ghs ~]#virt-install \
–name ghs \
–ram 512 \
–disk path=/kvm/ghs.img,size=20 \
–vcpus 1 \
–os-type linux \
–os-variant rhel6 \
–network bridge=br0 \
–graphics none \
–console pty,target_type=serial \
–location ‘http://mirrors.163.com/centos/6.9/os/i386/’ \
–extra-args ‘console=ttyS0,115200n8 serial’

说明:
–name  指定虚拟机的名字
–ram 指定内存分配多少
–disk path 指定虚拟磁盘放到哪里,size=30 指定磁盘大小为30G,这样磁盘文件格式为raw,raw格式不能做快照,后面有说明,需要转换为qcow2格式,如果要使用qcow2格式的虚拟磁盘,需要事先创建qcow2格式的虚拟磁盘。 参考  http://www.361way.com/kvm-qcow2-preallocation-metadata/3354.html   示例:qemu-img create -f qcow2 -o preallocation=metadata  /data/test02.img 7G;  –disk path=/data/test02.img,format=qcow2,size=7,bus=virtio
–vcpus 指定分配cpu几个
–os-type 指定系统类型为linux
–os-variant 指定系统版本
–network  指定网络类型
–graphics 指定安装通过哪种类型,可以是vnc,也可以没有图形,在这里我们没有使用图形直接使用文本方式
–console 指定控制台类型
–location 指定安装介质地址,可以是网络地址,也可以是本地的一个绝对路径,(–location ‘/mnt/’, 其中/mnt/下就是我们挂载的光盘镜像mount /dev/cdrom /mnt)如果是绝对路径,那么后面还需要指定一个安装介质,比如NFS,假如虚拟机设置ip后,不能连外网,那么就会提示让我们选择安装途径:

显示下面内容,让你选择安装的系统语言,默认 English

Welcome to CentOS for i386

┌────────┤ Choose a Language ├────────┐
│ │
│ What language would you like to use │
│ during the installation process? │
│ │
│ Catalan ↑ │
│ Chinese(Simplified) ▒ │
│ Chinese(Traditional) ▮ │
│ Croatian ▒ │
│ Czech ▒ │
│ Danish ▒ │
│ Dutch ▒ │
│ English ↓ │
│ │
│ ┌────┐ │
│ │ OK │ │
│ └────┘ │
│ │
│ │
└─────────────────────────────────────┘

<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen

显示下面内容,表示选择网络,选择手动配置Manual configuration,IPV6选项默认

Dynamic IP configuration(DHCP):自动获取IP
Manual configuration:手动配置

┌────────────┤ Configure TCP/IP ├────────────┐
│ │
│ [*] Enable IPv4 support │
│ () Dynamic IP configuration (DHCP) │
│ (* ) Manual configuration │
│ │
│ [*] Enable IPv6 support │
│ (*) Automatic │
│ ( ) Automatic, DHCP only │
│ ( ) Manual configuration │
│ │
│ ┌────┐ ┌──────┐ │
│ │ OK │ │ Back │ │
│ └────┘ └──────┘ │
│ │
│ │
└────────────────────────────────────────────┘

以下为配置IP地址、网关和DNS

┌────────────────┤ Manual TCP/IP Configuration ├─────────────────┐
│ │
│ Enter the IPv4 and/or the IPv6 address and prefix (address / │
│ prefix). For IPv4, the dotted-quad netmask or the CIDR-style │
│ prefix are acceptable. The gateway and name server fields must │
│ be valid IPv4 or IPv6 addresses. │
│ │
│ IPv4 address: 192.168.1.115___ / 255.255.255.0___ │
│ Gateway: 192.168.1.1______________________________ │
│ Name Server: 8.8.8.8__________________________________ │
│ │
│ ┌────┐ ┌──────┐ │
│ │ OK │ │ Back │ │
│ └────┘ └──────┘ │
│ │
│ │
└────────────────────────────────────────────────────────────────┘

选择Re-initialize all 安装磁盘

┌────────────────────────────────┤ Warning ├─────────────────────────────────┐
│ │
│ 20480MB ↑ │
│ Virtio Block Device ▒ │
│ ▒ │
│ This device may need to be reinitialized. ▒ │
│ ▒ │
│ REINITIALIZING WILL CAUSE ALL DATA TO BE LOST! ▒ │
│ ▒ │
│ This action may also be applied to all other disks ▒ │
│ needing reinitialization. ▒ │
│ ▒ │
│ Device details: ▮ │
│ pci-0000:00:05.0-virtio-pci-virtio1 ↓ │
│ │
│ ┌────────┐ ┌────────────┐ ┌───────────────┐ ┌───────────────────┐ │
│ │ Ignore │ │ Ignore all │ │ Re-initialize │ │ Re-initialize all │ │
│ └────────┘ └────────────┘ └───────────────┘ └───────────────────┘ │
│ │
│ │
└────────────────────────────────────────────────────────────────────────────┘

以下为选择时区,找到America/shanghai并选择

┌───────┤ Time Zone Selection ├───────┐
│ │
│ In which time zone are you located? │
│ │
│ [*] System clock uses UTC │
│ │
│ America/Monterrey ↑ │
│ America/Montevideo ▮ │
│ America/Montserrat ▒ │
│ America/Nassau ▒ │
│ America/New York ↓ │
│ │
│ ┌────┐ ┌──────┐ │
│ │ OK │ │ Back │ │
│ └────┘ └──────┘ │
│ │
│ │

以下设置root密码

┌──────────────┤ Root Password ├───────────────┐
│ │
│ Pick a root password. You must type it │
│ twice to ensure you know it and do not │
│ make a typing mistake. │
│ │
│ Password: ________________________ │
│ Password (confirm): ________________________ │
│ │
│ ┌────┐ ┌──────┐ │
│ │ OK │ │ Back │ │
│ └────┘ └──────┘ │
│ │
│ │

选择分区,默认ok

┌─────────────────────┤ Partitioning Type ├─────────────────────┐
│ │
│ Installation requires partitioning of your hard drive. The │
│ default layout is suitable for most users. Select what space │
│ to use and which drives to use as the install target. │
│ │
│ Use entire drive │
│ Replace existing Linux system │
│ Use free space │
│ │
│ Which drive(s) do you want to use for this installation? │
│ [*] vda 20480 MB (Virtio Block Device) ↑ │
│ ▮ │
│ │
│ ┌────┐ ┌──────┐ │
│ │ OK │ │ Back │ │
│ └────┘ └──────┘ │
│ │
│ │
└───────────────────────────────────────────────────────────────┘

选择Write changes to disk默认自动分区,由于是文本操作,linux不支持文本操作分区,默认就好

┌─────────────┤ Writing storage configuration to disk ├──────────────┐
│ │
│ The partitioning options you have selected will now be written to │
│ disk. Any data on deleted or reformatted partitions will be lost. │
│ │
│ ┌─────────┐ ┌───────────────────────┐ │
│ │ Go back │ │ Write changes to disk │ │
│ └─────────┘ └───────────────────────┘ │
│ │
│ │
└────────────────────────────────────────────────────────────────────┘

显示以下,表示安装完成,重启虚拟机

┌───────────────────────────┤ Complete ├────────────────────────────┐
│ │
│ Congratulations, your CentOS installation is complete. │
│ │
│ Please reboot to use the installed system. Note that updates may │
│ be available to ensure the proper functioning of your system and │
│ installation of these updates is recommended after the reboot. │
│ │
│ ┌────────┐ │
│ │ Reboot │ │
│ └────────┘ │
│ │
│ │
└───────────────────────────────────────────────────────────────────┘

最后安装完,reboot就进入刚刚创建的虚拟机了。要想退回到宿主机,ctrl ] 即可。
virsh list 可以列出当前的子机列表。
virsh console centos6.6_1 可以进入指定的子机

 

 

 

 

 

 

 

 

 

 

 

 

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注