一,准备环境
物理机 |
虚拟机 |
|
操作系统 |
CentOS 6.8 x64 |
CentOS 6.8 x64 |
CPU/内存 |
10核超线程x2/64G |
2核/4G |
外网IP |
|
-- |
内网IP |
eth1_192.168.0.85 |
eth0_192.168.0.91-100 |
硬盘 |
1T |
100G |
|
|
二,安装服务
1、检查当前物理机是否支持虚拟化技术:
# egrep 'vmx|svm' /proc/cpuinfo
如果输出的结果包含VMX,它是Intel处理器虚拟机技术标志:如果包含SVM,它是AMD处理器虚拟机技术的标志,如果你什么都没有得到,那应你的系统并没有支持虚拟化的处理,不能使用KVM,另处linux发行版本必须在64bit环境中才能使用KVM。
2、准备相应程序包:
# yum install kvm python-virtinst libvirt bridge-utils virt-manager qemu-kvm-tools virt-viewer virt-v2v tunctl tigervnc-server
3、关闭selinux:
# vi /etc/selinux/config
SELINUX=disabled
此处更改后需重新服务器。
4、查看libvirtd虚拟化进程是否启动:
# /etc/init.d/libvirtd restart
5、检查kvm模块是否加载:
# lsmod | grep kvm
kvm_intel 55464 8
kvm 345038 1 kvm_intel
6、检查kvm应用是否正常:
# virsh list --all
Id 名称 状态
----------------------------------------------------
此处应为空,因为还未安装任何虚拟机。
7、修改qemu配置内vnc监听端口:
# vi /etc/libvirt/qemu.conf
vnc_listen = "0.0.0.0"
8、重启libvirtd
# service libvirtd restart
9、启动vncserver:
# service vncserver restart
至此,KVM平台搭建前准备工作完成。
三、网络部分
1、关闭NetworkManager
# service NetworkManager stop
# chkconfig NetworkManager off
2、配置桥接网络
# vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.0.85
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=202.106.0.20
DEFROUTE=no
# vi /etc/sysconfig/network-scripts/ifcfg-eth1 (em1)
DEVICE=eth1
TYPE=Ethernet
UUID=f47dd8ad-781b-44d7-861e-420a0621114a
ONBOOT=yes
NM_CONTROLLED=yes
HWADDR=08:94:EF:04:56:09
BRIDGE=br0
3、重启网络
# service network restart
4、检查网桥配置 (本机物理机ip地址)
# ifconfig
br0 Link encap:Ethernet HWaddr 08:94:EF:04:56:09
inet addr:192.168.0.85 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::a94:efff:fe04:5609/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:207182 errors:0 dropped:0 overruns:0 frame:0
TX packets:158584 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:63477520 (60.5 MiB) TX bytes:95134411 (90.7 MiB)
eth1 Link encap:Ethernet HWaddr 08:94:EF:04:56:09
inet6 addr: fe80::a94:efff:fe04:5609/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:208376 errors:0 dropped:0 overruns:0 frame:0
TX packets:182265 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:67234410 (64.1 MiB) TX bytes:97388133 (92.8 MiB)
Interrupt:17
# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.0894ef045609 no eth1
virbr0 8000.000000000000 yes
三、安装第一台kvm虚拟机
1、建立img路径文件夹
# mkdir /app/kvm-machines/kvm01 -p
2、执行初始化虚拟机操作(在vnc里边执行)
磁盘有两种格式,分别是qcow2和raw
区别是 用qcow2格式创建的虚拟机不会立即使用磁盘;
但是用raw格式创建的虚拟机会立即使用磁盘;物理机磁盘容量的增长会很快,但是qcow2格式的磁盘会慢慢增长,但不会超过总共给他分配的容量。
# qemu-img create -f qcow2 /app/kvm-machines/kvm01/kvm01.qcow2 100G
@1 第一种安装方式
# virt-install --name=kvm01 --ram=4096 --vcpus=2 --disk path=/app/kvm-machines/kvm01/kvm01.qcow2,format=qcow2,size=100 --accelerate --cdrom=/app/CentOS-6.8-x86_64-bin-DVD1.iso --graphics vnc,password="******",port=5920 --network bridge=br0 --force --autostart (在vnc里面执行)
*******************************************************************************************************************************************************************************************************
@2 第二种安装方式
物理机上两块网卡,需要虚拟机也有两块网卡,并且//最小化//安装虚拟机: 需要: yum remove virt-viewer
virt-install --name vm01 --boot network,hd,cdrom,menu=on --ram 1024 --vcpus=1 --os-variant=rhel6 --accelerate --cdrom=/opt/iso/CentOS-6.4-x86_64-bin-DVD1.iso --disk path=/opt/kvmimg/vm01.img,size=5,bus=virtio --bridge=br0,model=virtio --bridge=br1,model=virtio(如果是两块网卡的话需要这样写) --autostart --vnc --vncport=5900 --vnclisten=0.0.0.0
******************************************** windows server 2008*********************************
@3 第三种安装方式
virt-install --name douniushizhibo --ram 4096 --vcpus=4 --os-type=windows --accelerate --cdrom=/data/Microsoft_server64_eval_zh-cn-GRMSXEVAL_CN_DVD.iso --disk path=/data/kvm-machines/vm09/douniushizhibo.qcow2,format=qcow2,bus=ide --bridge=br0 --bridge=br1 --autostart --vnc --vncport=5928 --vnclisten=0.0.0.0
参数说明:
name:虚拟机名称
ram:内存分配(M)
vcpus:虚拟cpu核数
disk:磁盘选项
path:img文件路径
size:磁盘大小(G)
accelerate:是否启用KVM加速器
cdrom:镜像所在路径
graphics:GUI选项
vnc:使用VNC作为GUI图形配置端
password:vnc连接密钥
port:vnc连接端口
network:网络选项
bridge:桥接网卡
force:关闭交互
autostart:指定物理机启动后自动启动该虚拟机
3、检查虚拟磁盘文件生成情况
# qemu-img info kvm01.qcow2
image: kvm01.qcow2
file format: raw
virtual size: 100G (85899345920 bytes)
disk size: 6.9G
4、使用vnc客户端连接虚拟机安装界面:
连接串:IP:5920/******
5、系统安装过程:(查看以下链接)
http://www.osyunwei.com/archives/9505.html
6、检查虚拟机运行情况:
# virsh list --all
Id 名称 状态
----------------------------------------------------
28 kvm01 running
四、虚拟机复制
1、关闭源虚拟机
# virsh shutdown kvm01
2、复制源虚拟机至目标虚拟机
# virt-clone -o kvm01 -n kvm02 -f /app/kvm-machines/kvm02/kvm02.qcow2
3、使用vnc客户端连接至物理机界面,进入目标虚拟机配置,删除“显示 VNC”项目: (如果没有的话直接右键删除硬件,点overview,右键新加硬件graphics)
4、建立新的VNC项目:
5、启动目标虚拟机
# virsh start kvm02
6、查看kvm02状态
# virsh list --all
Id 名称 状态
----------------------------------------------------
28 kvm01 关闭
30 kvm02 running
7、进入kvm02更改主机名、IP等信息
略
8、 启动源虚拟机kvm01
# virsh start kvm01
9、查看所有虚拟机状态:
# virsh list --all
Id 名称 状态
----------------------------------------------------
28 kvm01 running
30 kvm02 running
至此,虚拟机复制工作完成。
10、在此可以添加/etc/hosts文件
11、ssh kvm01 如果不成功的话要在 vim /etc/ssh/sshd_config 中将修改 UseDNS no GSSAPIAuthentication no
# /etc/init.d/sshd restart
12、如果是克隆的网卡,那么需要改变三个地方的信息:
@1,rm -rf /etc/udev/rules.d/70-persistent-net.rules
@2,vim /etc/sysconfig/network 修改主机名
@3,vim /etc/sysconfig/network-scripts/ifcfg-eth0 修改ip和网关关键是
reboot
13、在有外网的物理机上可做SNAT转换
-A POSTROUTING -s 192.168.0.85/32 -j SNAT --to-source x:x:x:x(外网IP)
通过所配置ip进行ping操作,并ssh所有虚拟机,如均成功,说明整体KVM平台搭建配置完整。
五、回退
删除KVM域并清除img文件:
# virsh undefine kvm01
# rm -fr /app/kvm-machines/kvm01/kvm01.qcow2
致此。kvm搭建成功。
附加1:
挂载磁盘以及修改配置文件的方法:
关机虚拟机-------------》
# cd /var/lib/libvirt/images
# mv ./ /data/kvm-machines/kvm01
# vim /etc/libvirt/qemu/kvm01.xml
如果是新增加的卷要修改其文件路径
<source file='/data/kvm-machines/kvm01/kvm01.qcow2'/>
然后重新加载配置文件
# virsh define kvm01.xml
开机虚拟机-----------------》
利用vnc查看磁盘文件路径是/data/kvm-machines/kvm01/kvm01.qcow2
说明修改成功!
附加2:
命令行增加kvm虚拟机磁盘与内存:
1. qemu-img create -f raw xiaofei_new.img 200G
2.在 xiaofei.xml 文件中增加: 或者使用以下命令:
<disk type='file' device='disk'>
32 <driver name='qemu' type='raw' cache='none'/>
33 <source file='/web/repo/vmimages/wx1-kvm80/xiaofei.img'/>
34 <target dev='vdb' bus='virtio'/> ------------------------------>>>>>关键是设备 vdb不要和之前的vda重复,需要修改下
36 </disk>
# virsh attach-disk [--domin] $DOMIN [--source] $SOURCEFILE [--target] $TARGET --subdriver qcow2 --config --live
或者
virsh attach-disk xiaofei /web/repo/vmimages/wx1-kvm80/xiaofei_new.img vdb --subdriver raw --config
增加内存配置: 16777216
4.修改完配置文件之后需要重置下配置文件
virsh define /etc/libvirt/qemu/xiaofei.xml
5.virsh start xiaofei
6.fdisk -l
fdis /dev/vdb
---> n
---> p
--->1
--------回车
mkfs.ext4 /dev/vdb
7.挂载目录
预计挂载/data 目录 可以先把data下的数据备份到别地方 挂载后再把数据重新拷贝回来;
mount /dev/vdb1 /home
8.放在fstab里面
/dev/vdb1 /home/ ext4 defaults 0 0
附加三:
Kvm 宿主机修改关机的虚拟机网卡信息:
1.需要安装 virt-edit 工具: yum install -y virt-edit
virt-edit -d anamm(虚拟机名称) /etc/sysconfig/network-scripts/ifcfg-eth0
2.virsh edit 修改配置文件后自动生效 不用define
除非是vim 配置文件才需要 define
附件四:
kvm宿主机连接不上网络解决方法:
# brctl show
br1 对应的外网网卡上是空的,意思是没有关联上,要上网是不可能的。
解决方法:
/usr/sbin/brctl addif br1 eth1
[root@wx5 ~]# brctl show
有了相应的外网网卡接口,此时: ping 114.114.114.114 可以通。
kvm 虚拟机所在的宿主机 bro------eth0 对应的 mac 地址是一样的
br1------eth1 对应的 mac 地址是一样的
来源:oschina
链接:https://my.oschina.net/u/4314317/blog/4220578