VirtualBox配合Vagrant使用

环境:

  • Mac OSX: 10.9.5
  • VirtualBox: 4.3.24
  • Vagrant: 1.7.2

常用命令

初始化和启动

mkdir PROJECT_FOLDER
cd PROJECT_FOLDER
vagrant init hashicorp/precise64
vagrant up

修改Vagrantfile 文件后重启

vagrant reload

关闭虚拟机

vagrant halt

删除虚拟机

vagrant destroy

创建私有的box

首先创建一个VirtualBox的虚拟机,配置如下

  • Name: precise64
  • Type: Linux
  • Version: Ubuntu64
  • Memory Size: 512MB (to taste ...
more ...

CentOS服务器下KVM安装和使用

安装

原来用qemu命令的安装方式已经过时,用virt-install代替

安装需要的Centos命令

yum -y install qemu-kvm libvirt python-virtinst bridge-utils 
/etc/rc.d/init.d/libvirtd start 
chkconfig libvirtd on

cd /etc/sysconfig/network-scripts
cp ifcfg-eth0 ifcfg-br0

编辑ifcfg-br0

DEVICE=br0
TYPE=Bridge

编辑ifcfg-eth0

BRIDGE=br0

启动网络,如果没有发现virbr0起来,重启一下机器。

/etc/rc.d/init.d/network restart

安装Centos guest命令

virt-install -n ...
more ...

KVM一些性能优化

注意,做dd测试的时候要先把原来的文件删除再测试,否则对测试的结果影响很大。

在缺省的配置情况下,KVM IO 的性能非常差,在没有调优的情况下写1G, 速度为 3M/s

dd if=/dev/zero of=/tmp/output.img bs=8k count=128000

修改磁盘的格式为preallocation

qemu-img create -f qcow2 -o preallocation=metadata test.qcow2 20G

如果是现有的磁盘,

qemu-img convert -f qcow2 -O qcow2 -o preallocation=metadata original.qcow2 converted.qcow2

修改disk cache配置 ...

more ...

KVM环境下增大分区大小

首先停止要修改的虚拟机

virsh shutdown vmname

virsh edit vmnane

修改boot节点, 并在disk节点下增加

<boot dev='cdrom'/>

....
<disk type='file' device='cdrom'>
  <driver name='qemu' type='raw'/>
  <source file='/vms/iso/gparted-live-0.14.1-6-i486.iso'/>
  <target dev='hdc'/>
  <readonly/>
</disk>

重启后进入gparted的系统,用其将要增加的分区resize, 在其terminal中poweroff,

然后将boot节点改回原来的

<boot dev='hd'/>

启动虚拟机,查看是否修改成功

df -H

参考: * http://itsignals.cascadia ...

more ...

VirtualBox 命令行操作

通常情况下VirtualBox都是用GUI操作的,但有时候机器没有装VNC或其远程桌面的时候, SSH上去操作还是有必要的。经常用到下面几条。

查看所有的虚拟机名称

VBoxManage list vms

启动虚拟机

VBoxManage startvm {VM_NAME} --type headless

关闭虚拟机

VBoxManage controlvm {VM_NAME} poweroff

克隆虚拟机

VBoxManage clonevm {VM_NAME} --mode machine --name {NEW_VM_NAME} --register

如果需要远程桌面登录虚拟机, 这里的远程桌面是微软mstsc或Mac OSX下的Remote Desktop Connection

VBoxManage modifyvm {VM_NAME} --vrdeport 3390
more ...

Virtualbox减少虚拟机文件大小

应用场景:

你是不是看着日渐增大的VirtualBox的虚拟机文件发愁,想把虚拟机备份一下, 或者想把虚拟机拷給别人用,那传输时间...

首先如果是vmdk格式的话先, 转化vmdk到vdi

sudo VBoxManage clonehd disk1.vmdk disk1.vdi --format vdi

挂载 systemrescuecd-x86-4.3.1.iso, 进行zerofree, 原理就是把没用的地方变成0, 从而使得压缩的时候是一大片的0,压缩率比较高。

fdisk -l
zerofree /dev/mapper/vg_xxx-lv_xxx
or
zerofree /dev/sdc1
sudo VBoxManage modifyhd --compact disk1.vdi
more ...

VirtualBox Ubuntu 克隆后网络问题

Clone出来的Ubuntu启动的时候特别慢,一直在配置网络,等待一段时间进去 后,运行以下命令

sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules
sudo reboot
more ...

各虚拟机之间的格式转换

KVM qcow2 转 Virtualbox vdi

qemu-img convert -f qcow2 vdisk_qcow.img -O raw vdisk_raw.img
VBoxManage convertfromraw --format VDI vdisk_raw.img vdisk.vdi

VMWare 转成 KVM raw

qemu-img convert CentOS-flat.vmdk -O raw /vms/images/{VM_GUEST_NAME}.img
more ...