1. vmware安装centos6.5 64位 (略)
其中有几个注意的地方:
a. 内存给4g,cpu2颗
b. 磁盘给50g,或者再单独分一个磁盘,用来存储虚拟机文件
c. 最关键的一步,在创建虚拟机时,启用cpu虚拟化
2. 安装kvm前的准备工作
a. 清除iptables规则
service iptables stop; service iptables save
b. 关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
3. 开始安装kvm
a. 检查你的系统是否支持虚拟化
grep -Ei 'vmx|svm' /proc/cpuinfo
如果有输出内容,则支持,其中intel cpu支持会有vmx,amd cpu支持会有svm
b.安装扩展源
wget-O/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-6.repo wget-P/etc/yum.repos.d/http://mirrors.aliyun.com/repo/epel-6.repo yumcleanall yummakecache
#安装阿里yum源及扩展源
c. 通过yum安装虚拟化的软件包
yum install -y kvm virt-* libvirt bridge-utils qemu-img acpid
说明:
kvm:软件包中含有KVM内核模块,它在默认linux内核中提供kvm管理程序
libvirts:安装虚拟机管理工具,使用virsh等命令来管理和控制虚拟机。
bridge-utils:设置网络网卡桥接。
virt-*:创建、克隆虚拟机命令,以及图形化管理工具virt-manager
qemu-img:安装qemu组件,使用qemu命令来创建磁盘等。
d. 检查kvm模块是否加载
lsmod |grep kvm
正常应该是:
kvm_intel 55496 3
kvm 337772 1 kvm_intel
如果没有,需要执行
modprobe kvm-intel
还没有就重启一下试试
e. 配置网卡
cd/etc/sysconfig/network-scripts/ cpifcfg-eth0ifcfg-br0 分别编辑eth0和br0 ifcfg-eth0改成如下: DEVICE=eth0 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=none BRIDGE=br0 ifcfg-br0改成如下: DEVICE=br0 TYPE=Bridge ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=192.168.1.220 NETMASK=255.255.255.0 GATEWAY=192.168.1.1
#说明: 我的虚拟机是桥接模式,所以设置br0的ip和我的真机同样的网段,包括网关也是我路由器的ip,大家可以根据自己的环境去配置,目的是为了让虚拟机可以上网。
service network restart
f. 启动或重启libvirtd服务和messagebus 服务
/etc/init.d/libvirtdstart /etc/init.d/messagebusrestart #此时可以查看网络接口列表 brctlshow结果如下: bridgenamebridgeidSTPenabledinterfaces br08000.000c2955a70anoeth0 virbr08000.52540014efd5yesvirbr0-nic
fdisk-l fdisk/dev/sdb mkfs.ext4/dev/sdb1 mkdir/data/ mount/dev/sdb1/data/ df-h
#格式化新磁盘,并挂载
4. 创建虚拟机 mkdir /data/kvm //创建一个存储虚拟机虚拟磁盘的目录,该目录所在分区必须足够大
virt-install\ --nameszk1\ --ram512\ --diskpath=/data/kvm/szk1.img,size=30\ --vcpus1\ --os-typelinux\ --os-variantrhel6\ --networkbridge=br0\ --graphicsnone\ --consolepty,target_type=serial\ --location'http://mirrors.163.com/centos/6.7/os/i386/'\ --extra-args'console=ttyS0,115200n8serial'
--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
--os-type 指定系统类型为linux
--os-variant 指定系统版本
--network 指定网络类型
--graphics 指定安装通过哪种类型,可以是vnc,也可以没有图形,在这里我们没有使用图形直接使用文本方式
--console 指定控制台类型
--location 指定安装介质地址,可以是网络地址,也可以是本地的一个绝对路径,(--location '/mnt/',其中/mnt/下就是我们挂载的光盘镜像mount /dev/cdrom /mnt)如果是绝对路径
┌───┤ Installation Method ├───┐
│ │
│ What type of media contains │
│ the installation image? │
│ │
│ Local CD/DVD │
│ Hard drive │
│ NFS directory │
│ URL │
│ │
│ ┌────┐ ┌──────┐ │
│ │ OK │ │ Back │ │
│ └────┘ └──────┘ │
│ │
│ │
└─────────────────────┘
最后安装完,reboot就进入刚刚创建的虚拟机了。要想退回到宿主机,ctrl ] 即可。
virsh list 可以列出当前的子机列表。
virshlist--all 查看所有虚机
virsh console szk1 可以进入指定的子机
virshdestroyszk2 #直接关闭虚机电源
virshshutdownszk2 关闭虚拟机2,子机需要yuminstall-yacpid;/etc/init.d/acpid start
virshstartszk2--console 开启虚拟机2,同时进入管理界面
virshsuspendszk2 挂起虚机
virshresumeszk2 恢复虚机
virshautostartszk2 母机开机,子机则自动开机
virshautostartszk2--disableszk2 取消自动开机
virshundefineszk1 取消标记,但未彻底删除,需删除数据文件
#使用本地光盘安装虚拟机
qemu-img create -f qcow2 -o preallocation=Metadata/data/kvm/szk2.qcow2 10G
ls/data/kvm/szk*
#查看文件
virt-install\--nameszk2\--ram512\--diskpath=/data/kvm/szk2.qcow2,bus=virtio\--vcpus1\--os-typelinux\--os-variantrhel6\--networkbridge=br0\--graphicsnone\--consolepty,target_type=serial\--location'/mnt/cdrom/'\--extra-args'console=ttyS0,115200n8serial'
#安装时选择NFS
母机上配置NFS
yuminstall-ynfs-utilsrpcbind vim/etc/exports /mnt/cdrom192.168.1.0/24 /etc/init.d/rpcbindstart;/etc/init.d/nfsstart
#子机NFS安装参数
┌───────────────────────────┤ NFS Setup ├─────────
│ │
│ Please enter the server and NFSv3 path to your CentOS installation │
│ image and optionally additional NFS mount options. │
│ │
│ NFS server name: 192.168.1.220_____________ │
│ CentOS directory: /mnt/images/install.img_ │
│ NFS mount options (optional): ro______________________ │
5. 克隆虚拟机
virt-clone --original szk2 --name szk3 --file /data/kvm/szk3.qcow2
如果子机szk2还未关机,则需要先关机,否则会报错:
ERROR 必须暂停或者关闭有要克隆设备的域。
virsh start szk3 可以开启该子机。
#克隆的虚机也会出现无法启动网卡情况,rm-f/etc/udev/rules.d/70-persistent-net.rules 重启系统即可
6.创建快照
virshsnapshot-createszk3
#为szk3创建快照
virshsnapshot-listszk3
#查看快照
virsheditszk3
#查看虚机配置文件,详细路径/etc/libvirt/qemu/szk3.xml
qemu-imginfo/data/kvm/szk3.qcow2
#查看虚机详细信息
7.恢复和删除快照
virshsnapshot-revertszk31455601201 #恢复快照,后面跟虚机名和快照ID
virshsnapshot-deleteszk31455601201 #删除快照,后面跟虚机名和快照ID
/var/lib/libvirt/qemu/snapshot/szk3/1455602605.xml #快照路径
8.扩容虚拟磁盘
qemu-imginfo/data/kvm/szk2.qcow2 #查看当前磁盘大小,10G
qemu-imgresize/data/kvm/szk2.qcow2+5G #添加5G,扩容需关机
qemu-imginfo/data/kvm/szk2.qcow2 #查看当前磁盘大小
image:/data/kvm/szk2.qcow2
fileformat:qcow2
virtualsize:15G(16106127360bytes)
另外,如果是增加磁盘,思路是:
创建磁盘: qemu-img create -f raw /data/kvm/szk3_2.img 5G
关闭虚拟机: virsh destroy szk3
<disk type='file' device='disk'>
<driver name='qemu' type='raw' cache='none'/>
<source file='/data/kvm/szk3_2.img'/>
<target dev='vdb' bus='virtio'/>
</disk>
开启虚拟机:virsh start szk3
进入虚拟机:virsh console szk3
分区: fdisk /dev/vdb #不分区也行
格式化 (略)
挂载 (略)
qcow2格式
步骤基本上和raw一样。如果提示 This image format does not support resize,检查一下你qemu-img create的时候,是否有加 preallocation=Metadata 选项,如果有,就不能resize了。
9.磁盘格式转换
qemu-imgconvert-fraw-Oqcow2/data/kvm/szk1.img/data/kvm/szk5.qcow2 #磁盘格式转换
现在我们还需要编辑子机配置文件,让它使用新格式的虚拟磁盘镜像文件
virsh edit centos6.6_1 //这样就进入了该子机的配置文件(/etc/libvirt/qemu/centos6.6_1.xml),跟用vim编辑这个文件一样的用法
需要修改的地方是:
<driver name='qemu' type='raw' cache='none'/>
<source file='/data/centos6.6_1.img'/>
改为:
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/data/centos6.6_1.qcow2'/>
10.调整cpu和内存:
virsh dominfo szk2
virsh edit szk2
修改:
<memory unit='KiB'>524288</memory>
<currentMemory unit='KiB'>524288</currentMemory>
<vcpu placement='static'>1</vcpu>
为:
<memory unit='KiB'>624288</memory>
<currentMemory unit='KiB'>624288</currentMemory>
<vcpu placement='static'>2</vcpu>
重启虚拟机:
virsh destroy szk2
virsh start szk2
11. 不重启虚拟机在线增加网卡
virsh domiflist szk2 查看szk2子机的网卡列表
virsh attach-interface szk2 --type bridge --source br0 //命令行增加一块网卡
virsh dumpxml szk2 >/etc/libvirt/qemu/szk2.xml //命令行增加的网卡只保存在内存中,重启就失效,所以需要保存到配置文件中,其中/etc/libvirt/qemu/szk2.xml 为szk2子机的配置文件
virsh console szk2 //进入虚拟机后,执行
ifconfig -a
发现多了一个网卡 eth1