Ubuntu/kvm虚拟环境摸索实践
发表于 : 2013-04-17 9:28
手头有一台HP DL160 G6,考虑选用Ubuntu 12.04 Server 作为宿主机OS是因为其对HP服务器的硬件支持比较全面,并且自己已经安装使用Ubuntu 12.04 Desktop一段时间了,懒得去学新的OS了,也省去了到处找驱动的麻烦;稳定性上没有比较过其他操作系统( 一个月内机器死过一次,原因不明)。具体支持机型和对应版本可以查询 http://www.ubuntu.com/certification/server/
环境中机器的命名和IP:
Server: Host name: IBSHUB01 IP:192.168.1.7
Guest name: IBSHVM01..02..03...... IP:192.168.1.11..12..13......
Ubuntu desktop name: HP8440p IP:192.168.2.54
1. Ubuntu 12.04 Sevrer的安装
服务器没有光驱,用Ubuntu 12.04 Desktop里的《启动盘创建器》把ubuntu-12.04.2-server-amd64.iso制作成USB启动安装盘。直接用USB盘启动HP服务器进行安装。在安装时选择了Openssh和虚拟机的选项;磁盘中创建了和机器同名的vg(IBSHUB01),然后根据Ubuntu的服务器安装指引,按照网络和虚拟机部分的要求安装了:
没注意,KVM和libvirt-bin是不是在服务器安装时已经安装了,就再装了一次;
把自己加到libvirtd的组里
为传送文件,又安装了sshfs
2. 在笔记本上装了virt-viewer用于远程图形界面安装,virt-manager没怎么用过,不过也安装了。
Remmina应该是Ubuntu安装包里现成就有的可以RDP访问Windows的Guset
3. Guest的安装介质都转换成iso放笔记本在home的iso目录中; 建立IBSHUB01和HP8440p的SSH连接。用sshfs映射笔记本的iso目录,并复制安装文件去IBSHUB01的home目录。
4. 在IBSHUB01上为Guest创建一个Logical Volume。LVs可以在/dev/VGname下列出,我的VG和机器同名:
创建时不指定LV的名字,系统根据lvol0,lvol1,lvol3...的顺序进行自动创建。如在IBSHUB01创建一个50G的LV:
5. 修改/etc/network/interfaces, 创建bridge,我的例子如下:
6. 安装一个Guest的Ubuntu server
在IBSHUB01上执行
其中IBSHVM06为新建Guset的名字,指定2G内存,安装去之前创建的逻辑卷,从home目录中的ubuntu-12.04.2-server-amd64.iso启动安装,指定br0为bridge
检查下IBSHVM06的状态。
去笔记本,用图形界面继续安装步骤:
7. 安装一个Guset的Windows2008R2 Server 64bit,需要下载一个virtio的Windows驱动 (http://alt.fedoraproject.org/pub/alt/vi ... mages/bin/),否则会发现,Windows安装过程中找不到硬盘
安装命令一样,更改下安装介质
但这样肯定完成不了windows安装。用下面的命令终止安装。
然后编辑IBSHVM06的XML脚本
编辑后退出,用命令重新开始安装
在笔记本图形界面继续安装在Win安装过程中,当安装到选择安装目的盘时,选择手动从第二个光驱安装virtio的windows驱动就可以了。安装完成后记得重新编辑IBSHVM06的XML脚本,把插入的内容删掉,否则下次启动又进安装了。
8. 如果想起第二个Win2008r2 server或Ubuntu server, 就创建一个新的LV,然后
从论坛中学到了很多相关的知识,希望自己的经验会帮到后来的人;也希望得到各位的指正和建议。
环境中机器的命名和IP:
Server: Host name: IBSHUB01 IP:192.168.1.7
Guest name: IBSHVM01..02..03...... IP:192.168.1.11..12..13......
Ubuntu desktop name: HP8440p IP:192.168.2.54
1. Ubuntu 12.04 Sevrer的安装
服务器没有光驱,用Ubuntu 12.04 Desktop里的《启动盘创建器》把ubuntu-12.04.2-server-amd64.iso制作成USB启动安装盘。直接用USB盘启动HP服务器进行安装。在安装时选择了Openssh和虚拟机的选项;磁盘中创建了和机器同名的vg(IBSHUB01),然后根据Ubuntu的服务器安装指引,按照网络和虚拟机部分的要求安装了:
代码: 全选
sudo apt-get install bridge-utils
代码: 全选
sudo apt-get install kvm libvirt-bin
sudo apt-get install virtinst
代码: 全选
sudo adduser $USER libvirtd
代码: 全选
sudo apt-get install sshfs
代码: 全选
sudo apt-get install virt-viewer virt-manager
3. Guest的安装介质都转换成iso放笔记本在home的iso目录中; 建立IBSHUB01和HP8440p的SSH连接。用sshfs映射笔记本的iso目录,并复制安装文件去IBSHUB01的home目录。
代码: 全选
rogerz@IBSHUB01:~$ sshfs rogerz@192.168.2.54:/home/rogerz/iso/ ~/iso/
rogerz@IBSHUB01:~$ cp ~/iso/ubuntu-12.04.2-server-amd64.iso ~/
代码: 全选
rogerz@IBSHUB01:~$ ls /dev/IBSHUB01
lvol0 lvol1 lvol2 lvol3 lvol4 lvol5 root swap_1 vm01bkp
代码: 全选
sudo lvm
lvm> lvcreate -L 50G IBSHUB01
Logical volume "lvol6" created
代码: 全选
rogerz@IBSHUB01:~$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.7
netmask 255.255.255.0
gateway 192.168.1.254
dns-search XXXXXX.com
dns-nameservers 192.168.1.2 192.168.1.4
auto br0
iface br0 inet static
address 192.168.1.48
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.254
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
在IBSHUB01上执行
代码: 全选
rogerz@IBSHUB01:~$ sudo virt-install -n IBSHVM06 -r 2048 --disk path=/dev/IBSHUB01/lvol6 -c ubuntu-12.04.2-server-amd64.iso --accelerate --network bridge=br0,model=virtio --connect=qemu:///system --vnc --noautoconsole -v
检查下IBSHVM06的状态。
代码: 全选
rogerz@IBSHUB01:~$ virsh list --all
Id Name State
----------------------------------
1 IBSHVM01 running
2 IBSHVM02 running
3 IBSHVM04 running
4 IBSHVM05 running
7 IBSHVM06 running
- IBSHVM03 shut off
代码: 全选
rogerz@HP8440p:~$ virt-viewer -c qemu+ssh://rogerz@192.168.1.7/system IBSHVM06
安装命令一样,更改下安装介质
代码: 全选
rogerz@IBSHUB01:~$ sudo virt-install -n IBSHVM06 -r 2048 --disk path=/dev/IBSHUB01/lvol6 -c win2008r2.iso --accelerate --network bridge=br0,model=virtio --connect=qemu:///system --vnc --noautoconsole -v
代码: 全选
rogerz@IBSHUB01:~$ virsh destroy IBSHVM06
代码: 全选
rogerz@IBSHUB01:~$ sudo virsh edit IBSHVM06
代码: 全选
<domain type='kvm'>
<name>IBSHVM06</name>
<uuid>e9cf7e96-3df3-05e5-328a-c0aa69c4deff</uuid>
<memory>2097152</memory>
<currentMemory>2097152</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch='x86_64' machine='pc-1.0'>hvm</type>
<boot dev='cdrom'/> <----插入行
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/bin/kvm</emulator>
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/IBSHUB01/lvol6'/>
<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='/home/rogerz/win2008r2.iso'/>
<target dev='hdc' bus='ide'/>
<readonly/>
<address type='drive' controller='0' bus='1' unit='0'/>
</disk>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/home/rogerz/virtio-win-0.1-52.iso'/>
<target dev='hdd' bus='ide'/>
<readonly/>
<address type='drive' controller='0' bus='1' unit='1'/>
</disk> <--- 插入段结束
<controller type='ide' index='0'>
.......
代码: 全选
rogerz@IBSHUB01:~$ virsh start IBSHVM06
在笔记本图形界面继续安装
代码: 全选
rogerz@HP8440p:~$ virt-viewer -c qemu+ssh://rogerz@192.168.1.7/system IBSHVM06
8. 如果想起第二个Win2008r2 server或Ubuntu server, 就创建一个新的LV,然后
代码: 全选
sudo virt-clone -o IBSHVM06 -n IBSHVM07 --file=/dev/IBSHUB01/lvol7
从论坛中学到了很多相关的知识,希望自己的经验会帮到后来的人;也希望得到各位的指正和建议。