测试环境,物理机:Ubuntu server 12.04 64bit,虚拟机:Windows 2008R2
一、安装KVM
1、查看CPU是否支持虚拟化
egrep '(vmx|svm)' /proc/cpuinfo
2、安装KVM和桥接工具
apt-get install kvm libvirt-bin bridge-utils
3、安装虚拟机管理工具
sudo apt-get install virtinst
4、设置桥接网卡
备份当前的网络配置文件,再修改成桥接网络
$ sudo cp /etc/network/interfaces /etc/network/interfaces.bak
$ sudo vim /etc/network/interfaces
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet manual
#iface eth0 inet static
#address 192.168.88.204
#netmask 255.255.255.0
#gateway 192.168.88.10
auto br0
iface br0 inet static
address 192.168.88.204
netmask 255.255.255.0
broadcast 192.168.88.255
gateway 192.168.88.10
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0
dns-nameservers 192.168.88.10
重新启动网络:sudo /etc/init.d/networking restart
查看网络,就可以看到br0网卡,并且接管了eth0的IP地址,eth0不能有IP地址,安装bridge-utils时自动生成名为virbr0虚拟网卡,可用于虚拟机的NAT网络链接
二、安装Windows虚拟机
1、创建目录
mkdir w2008r2-112-rac1
2、创建虚拟磁盘,安装Windows虚拟磁盘格式不能为qcow2,否则在安装时磁盘大小就显示为1M;安装完成后可以转换为qcow2的格式;
sudo qemu-img create w2008r2-112-rac1.img 50G
3、把Windows2008R2的安装镜像文件复制到物理机任意目录,使用下面命令安装
sudo virt-install --name w2008r2-112-rac2 --ram 3072 \
--vcpus=2 --os-type windows --hvm \
--accelerate --cdrom=/infokist/KVM/Windows_Server_2008R2R_TM_by_mosilon.iso \
--disk path=w2008r2-112-rac2.img,cache=writeback,size=20 \
--network=bridge:br0 \
--network=bridge:virbr0 \
--vnc --noautoconsole --vncport=5991 --vnclisten=0.0.0.0
--name 参数后面是虚拟机的名字
--ram 为虚拟机内存大小
--vcpus 虚拟机CPU个数
--os-type 虚拟机类型,其他系统可查看“help”帮助
--hvm 使用全虚拟化
--network 网卡桥接
--vnc 开起VNC链接
--vncport 端口号,5990以后的都可以
--vnclisten 可以让其他机器也能链接上,默认为127.0.0.1,只能是本机,由于物理机是Server,没有桌面所以需要远程链接才能安装虚拟机
4、在Ubuntu桌面系统使用Remote Desktop Viewer链接虚拟机,选择VNC,在地址拦输入物理机的IP:port,如:192.168.88.204:5991,即可显示Windows的安装界面;
5、使用同样的方法安装RAC2;
6、如果提示:ERROR Guest name 'xxx-xxx-xxx' is already in use.
解决办法:virsh undefine xxx-xxx-xxx,如果虚拟机正在运行则需要先关闭:virsh shutdown xxx-xxx-xxx
7、删除虚拟机
[root@target ~]# virsh undefine node5 #移除虚拟机
[root@target ~]# ls /etc/libvirt/qemu
networks node4.xml win8.xml
[root@target ~]# virsh list --all #node5已经被移除
三、virtio驱动的安装
安装virtio驱动,可以提升网卡的速度和磁盘I/O性能;经过测试从100M网卡变成10G网卡,磁盘读写从10M/s到70M/s;
ISO驱动:virtio-win-0.1-74.iso,下载地址:http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/
安装步骤:
1、给安装好的虚拟机添加一个硬盘(最后会删除),编辑上步安装好的虚拟机:
$ sudo virsh edit w2008r2-112-rac1
红色为添加或修改的内容
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='writeback'/>
<source file='/infokist/KVM/w2008r2-112-rac1/w2008r2-112-rac1.qcow2'/>
<target dev='hda' bus='ide'/>
<address type='drive' controller='0' bus='0' unit='0'/>
</disk>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/infokist/KVM/virtio-win-0.1-74.iso'/>
<target dev='hdc' bus='ide'/>
<readonly/>
<address type='drive' controller='0' bus='1' unit='0'/>
</disk>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='writeback'/>
<source file='/infokist/KVM/w2008r2-112-rac1/test.img'/>
<target dev='vdc' bus='virtio'/>
</disk>
<controller type='ide' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
</controller>
<interface type='bridge'>
<mac address='52:54:00:c5:fb:a5'/>
<source bridge='br0'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:47:49:c4'/>
<source bridge='virbr0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</interface>
2、创建test.img文件
$ sudo qemu-img create -f qcow2 test.img 5G
3、启动修改配置后的虚拟机:virsh start w2008r2-112-rac1
4、进人虚拟机后,在硬件管理器中就可以看到有2个硬件显示“?”号,点击更新驱动,在光驱盘搜索自动安装;
5、安装完成后关闭虚拟机;再次编辑配置文件;删除新添加的磁盘内容;修改原有磁盘的内容,如:
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='writeback'/>
<source file='/infokist/KVM/w2008r2-112-rac1-B/w2008r2-112-rac1-b.qcow2'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>
6、这时可以删除test.img文件了;
7、重新进人系统,测试网卡和磁盘的速度;
四、创建ISCSI target共享存储
1、安装ISCSI Target
sudo apt-get install iscsitarget iscsitarget-dkms
2、设置开机启动
sudo vi /etc/default/iscsitarget
ISCSITARGET_ENABLE=true
3、创建存储文件
sudo dd if=/dev/zero of=/infokist/KVM/w2008r2-112-rac/racdata01.img count=0 obs=1 seek=50G
sudo dd if=/dev/zero of=/infokist/KVM/w2008r2-112-rac/racdata02.img count=0 obs=1 seek=50G
4、修改配置文件:sudo vim /etc/iet/ietd.conf,在最后加以下内容
Target iqn.2013-03.scutech.com:oel-rac.1
Lun 0 Path=/infokist/KVM/w2008r2-112-rac/racdata01.img,Type=fileio,ScsiId=lun1,ScsiSN=lun1
Lun 1 Path=/infokist/KVM/w2008r2-112-rac/racdata01.img,Type=fileio,ScsiId=lun2,ScsiSN=lun2
initiator-address 192.168.88.88
initiator-address 192.168.88.89
incominguser username password
重启:sudo service iscsitarget restart
五、对虚拟机打快照
1、修改虚拟机磁盘类型,img的类型不支持快照;需要关闭虚拟机
sudo qemu-img convert -f raw -O qcow2 w2008r2-112-rac1.img w2008r2-112-rac1.qcow2
可以使用qemu-img info w2008r2-112-rac1.qcow2查看类型
2、修改虚拟机磁盘类型,注意不能使用Vim直接修改,要使用以下命令
virsh dumpxml w2008r2-112-rac1
查看虚拟机的配置文件;使用命令修改:
sudo virsh edit w2008r2-112-rac1
修改内容为:
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='writeback'/>
<source file='/infokist/KVM/w2008r2-112-rac1/w2008r2-112-rac1.qcow2'/>
<target dev='hda' bus='ide'/>
<alias name='ide0-0-0'/>
<address type='drive' controller='0' bus='0' unit='0'/>
</disk>
3、给虚拟机打快照
virsh snapshot-create w2008r2-112-rac1
4、查询虚拟机的快照
virsh snapshot-list w2008r2-112-rac1
六、虚拟机链接ISCSI存储
1、先关闭rac2,只打开rac1
2、使用Windows自带的iSCSI Initiator进行链接;
3、在磁盘管理查看到链接的磁盘,这时为offline状态,需要手动改为online
4、打开cmd,
C:\>diskpart
Microsoft DiskPart version 6.0.6001
Copyright (C) 1999-2007 Microsoft Corporation.
On computer: RAC1
DISKPART> list disk
5、把磁盘分区,但不格式化,不分配盘符
automount enable
select disk 1
create partition extended
create partition logical
select disk 2
create partition extended
create partition logical
如果提示:Diskpart has encountered an error. The media is write protected
则使用命令:ATTRIBUTES DISK CLEAR READONLY
在重新分区;
6、关闭让rac1,打开rac2,使用同样的方法链接ISCSI磁盘,在磁盘管理器中可看到链接的磁盘已经分区,但有盘符;需要把盘符删除;
六、Windows RAC的安装
详见Oracle的教程:Oracle Database 11g Release 2 RAC On Windows 2008 Using VirtualBox
参考文档:
- http://rolandqu.blog.51cto.com/3477736/942923
- http://forum.ubuntu.org.cn/viewtopic.php?t=450434
- http://www.ichiayi.com/wiki/tech/kvm_snapshot
- http://www.virtualizationteam.com/server-virtualization/building-a-cluster-with-hyper-v-and-server-core-part-2-and-creating-a-windows-server-2008-cluster.html
- http://forum.ubuntu.org.cn/viewtopic.php?t=154792
- http://wenku.baidu.com/link?url=slCgJkgSLhV0J0DINX4nY1A_fVlTxCSZUiGCnwTO1LI5JOj8Ps6Yp-MpLA01LnvC3aXzVTdZZCyf8_dF2UiJG3dhKoRw7S_-XFZVc6MvzyS