本文首发于烂泥行天下。
最近打算把公司的服务器全部做成虚拟化,一是跟有效的利用了服务器,二也是对自己是一个学习的机会。
KVM的安装与配置步骤如下:
1、 查看是否支持虚拟化
2、 安装kvm及其所需的软件包
3、 kvm图形化管理工具
4、 检测kvm模块是否安装成功
5、 检测kvm是否安装成功
6、 编辑网卡
7、 配置桥接网卡br0
8、 配置网卡eth0
9、 重启并查看网卡,使之生效
10、 关闭防火墙
11、 创建ISO镜像文件夹,使用NFS存储
12、 创建虚拟机硬盘
13、 创建虚拟机
14、 使用VNC客户端连接虚拟机,然后安装OS
因为没有真实的服务器来让我做实验,所以暂时只能现在虚拟机VMware Workation中进行实验。在实验开始之前,需要有两个工作要做一是开启服务器本身的虚拟化支持,这个在BIOS中开启,另外一个是vm中开启。如下图:
虚拟化开启并安装centos系统,建议centos安装64bit。进入系统,首先查看服务器是否支持虚拟化,可以使用如下命令:
more /proc/cpuinfo |grep svm
more /proc/cpuinfo |grep vmx
通过上图我们可以很明显的看到,服务器是支持虚拟化的。那么接下来,我们开始安装KVM。
现在我们来安装kvm及其所需的软件包,可以通过以下命令:
yum -y install qemu-kvm libvirt python-virtinst bridge-utils
通过上图可以看到,安装KVM依赖的软件包太多了,所以安装KVM时不建议使用源码安装。
如果你想通过图形化方式来管理KVM的话,可以安装如下软件包:
以上安装完毕后,我们检测kvm模块是否安装,可以使用如下名:
lsmod |grep kvm
通过上图,我们可以很明显的看到kvm模块已经安装成功。
下面我们检测下kvm是否安装成功,我们可以使用以下命令
virsh -c qemu:///system list
注意在使用该命令之前,一定要重启下服务器,否则会报错的。如下图:
重启服务器
服务器重启完毕后,在此使用virsh -c qemu:///system list命令进行检测:
可以很明显的看到,kvm目前已经安装成功。
以上是KVM的安装。下面我们开始来配置KVM并安装一个虚拟机。
因为虚拟机中网络,我们一般都是和公司的其他服务器是同一个网段,所以我们需要把KVM服务器的网卡配置成桥接模式。这样的话KVM的虚拟机就可以通过该桥接网卡和公司内部分其他服务器处于同一网段。
有关网卡的桥接模式,查找相关资料如下:
其实我们在虚拟机搭建的时候,我们最终关心的网卡是: eth0, br0, vnet0,vnet1…
其中eth0是我们服务器原来的物理网卡,而br0是我们虚拟出来的网桥设备,而vnetXXX就是桥接映射到虚拟机里面用到的网卡。
当配置完毕之后,我们使用ifconfig命令查看起来的话,会发现eth0是没有IP地址,而br0仿佛是虚拟出来的一个原来eth0的访问接口,它具有IP地址,可以代替原来的eth0被访问。
而vnetXX的地址可以在建立虚拟机之后在虚拟机里面配置,桥接后可以被外部访问。
注意:将已有的物理网卡添加到网桥,此时物理网卡eth0工作于混杂模式,所以不需要IP地址,因为网桥是工作在链路层的。br0就提供了IP地址,用来模拟原来的物理网卡的访问接口.
关于混杂模式:
根据以太网的原理,包是在整个子网里面广播发送的,当网卡发现这个数据帧不是发给自己的也不是广播包的时候,就直接把它丢掉,而不传送到上层内核去处理;
而当网卡处于混杂模式的时候,网卡就不会丢掉帧,而是全部向上提交到内核,让内核处理这些帧结构。通常的,混杂模式使用来进行网络调试的,不是正常的工作状态。
配置桥接网卡,我们可以通过现在服务器的网卡eth0来配置。把eth0网卡的配置文件复制一份并命令为br0,可以通过如下命令进行。
编辑网卡:
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-br0
下面我们来配置桥接网卡br0,根据上述的资料显示,我们知道该网卡时用来做桥接使用的。我们只需要把设备名,修改为br0,设备类型设置为Bridge桥接模式。如下图:
vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.1.240
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
配置完毕后桥接网卡br0后,我们现在来配置物理网卡eth0,如下图:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:0C:29:98:F6:00
ONBOOT=yes
BRIDGE=br0
重启并查看网卡,使之生效。
/etc/init.d/network restart
ifconfig
通过上图,我们可以看到网卡br0,已经正常启动。
以上配置完毕后,我们现在开始使用KVM安装虚拟机,但是在这之前我们还有几个工作要做。
关闭防火墙:
/etc/init.d/iptables stop
chkconfig iptables off
创建ISO镜像文件夹,使用NFS存储。
mkdir /iso
mount -t nfs 192.168.1.11:/data/work/soft/iso /iso
注意:在使用NFS时,一定要关闭KVM所在服务器的SELinux。否则在创建虚拟机是,会报错。
以上操作完毕后,我们使用如下命令创建虚拟机硬盘:
qemu-img create -f qcow2 /vhost/ilanni01.img 4G
使用如下命令创建虚拟机:
virt-install --name ilanni01 --boot network,cdrom,menu=on --ram 512 --vcpus=1 --os-type=linux --accelerate –c /iso/CentOS-6.5-x86_64-bin-DVD1.iso --disk path=/vhost/ilanni01.img,size=4,format=qcow2,bus=virtio --bridge=br0 --vnc --vncport=5991 --vnclisten=0.0.0.0
其中 –name表示虚拟机的名称
--boot表示虚拟机启动的顺序
--ram表示为虚拟机分配的内存
--vcpus表示为虚拟机分配的cpu个数
--os-type表示虚拟机的类型
--accelerate 表示KVM加速器
--disk 表示虚拟机的硬盘路径
-c表示虚拟机使用的镜像文件
--bridge表示使用桥接网卡的名称
--vncport表示远程使用VNC连接虚拟机时使用的端口
以上也可以这样进行写:
virt-install -n ilanni01 --boot network,cdrom,menu=on -r 512 --vcpus=1 --os-type=linux --accelerate -c /iso/CentOS-6.5-x86_64-bin-DVD1.iso --disk path=/vhost/ilanni01.img,size=4,format=qcow2,bus=virtio --bridge=br0 --vnc --vncport=5991 --vnclisten=0.0.0.0
以上所有的参数,我们都可以使用virt-install –help进行查看。
使用VNC客户端进行连接,然后安装centos系统
vncview 192.168.1.240:5991
通过上图,我们可以看到现在已经进入Centos的安装界面。
至此,我们的KVM的安装结束。
本文转自 烂泥行天下 51CTO博客,原文链接:http://blog.51cto.com/ilanni/1510700