內部機器空閒,支持虛擬化,正好拿來劃幾臺測試機使用。過程以下:python
========================linux
磁盤劃分:windows
1、採用lvm劃分磁盤空間centos
[root@localhost ~]# fdisk -lapi
Disk /dev/sda: 292.0 GB, 291999055872 bytes安全
255 heads, 63 sectors/track, 35500 cylindersbash
Units = cylinders of 16065 * 512 = 8225280 bytes服務器
Sector size (logical/physical): 512 bytes / 512 bytescookie
I/O size (minimum/optimal): 512 bytes / 512 bytes網絡
Disk identifier: 0x4676a26d
[root@localhost ~]# fdisk /dev/sda
建立主分區:
n
p
更改分區格式爲lvm類型:
Command (m for help): t
Partition number (1-4): 4
Hex code (type L to list codes): 8e
w
[root@localhost ~]# partprobe
[root@localhost ~]# mkfs.ext4 /dev/sda 同步到磁盤完成並格式化
[root@localhost ~]# vgcreate volgroup00 /dev/sda4 建立vg名爲volgroup00
[root@localhost ~]# vgdisplay 查看已建立的組
[root@localhost ~]# lvcreate -L 220G -n lvData volgroup00 從VG中劃分一個LV
建立了一個名字爲lvData,容量大小是220G的分區,其中:-L:指定LV的大小 -n:指定LV的名。volgroup00:表示從這個VG中劃分LV;
[root@localhost ~]#lvdisplay
[root@localhost ~]# mkfs.ext4 /dev/volgroup00/lvData
[root@localhost ~]# mkdir /lvmdata
[root@localhost ~]# mount /dev/volgroup00/lvData /lvmdata
[root@localhost ~]# vi /etc/fstab
#
# /etc/fstab
# Created by anaconda on Mon May 19 15:52:39 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=20d7244f-7ab6-4e62-9d90-f7b2833bff9c / ext4 defaults 1 1
UUID=217279dc-d2dd-48f2-b2ff-38f46c1fa067 /home ext4 defaults 1 2
UUID=4fa3df21-f1bd-433b-bb57-7ef802a18eda swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/volgroup00/lvData /lvmdata ext4 defaults 1 2
========================
KVM環境安裝:
1. 環境準備
須要BIOS開啓虛擬化支持cpu-->virtual.... enabled
egrep '(vmx|svm)' --color=always /proc/cpuinfo 驗證查看物理機(主要是CPU)是否支持虛擬機技術
#more /etc/selinux/config
SELINUX=disabled
[root@localhost lvmdata]# vi /etc/sysctl.conf
[root@localhost lvmdata]# sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
[root@localhost lvmdata]#yum install kvm virt-manager libvirt libvirt-python python-virtinst libvirt-client python-virtinst libvirt libvirt-client qemu-kvm
[root@localhost lvmdata]#yum install bridge-utils libvirt
bridge-utils網橋工具安裝
libvirt 就是管理工具(服務需手動啓動)
[root@localhost lvmdata]#yum install libguestfs-tools工具安裝相關virsh管理工具
[root@localhost lvmdata]# chkconfig libvirtd on
[root@localhost lvmdata]# service libvirtd start
[root@localhost lvmdata]#vi /etc/libvirt/libvirtd.conf
listen_addr = "192.168.1.1"
[root@localhost lvmdata]#/etc/init.d/libvirtd restart
[root@qa228 lvmdata]# modprobe kvm
[root@qa228 lvmdata]# modprobe kvm-intel
[root@localhost lvmdata]# lsmod |grep kvm 檢查kvm模塊是否加載
kvm 316506 0
說明:
虛擬機鏡像的默認位置在/var/lib/libvirt/p_w_picpaths/文件夾下,下面咱們這裏存放在剛剛劃分好的/lvmdata目錄下。
虛擬機的xml配置文件默認在/etc/libvirt/qemu/目錄下
橋接模式配置網絡環境來安裝虛擬機:
[root@localhost lvmdata]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-eth0 ifcfg-br0
[root@localhost qemu]# more /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:15:17:19:AF:BE
IPADDR=192.168.1.227
NETMASK=255.255.0.0
GATEWAY=192.168.1.1
TYPE=Ethernet
BRIDGE=br0
UUID=6c6e7237-97cc-41e4-b273-c21c0b2054c0
ONBOOT=yes
NM_CONTROLLED=yes
#BOOTPROTO=dhcp
[root@localhost qemu]# more /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
HWADDR=00:15:17:19:AF:BE
IPADDR=192.168.1.227
NETMASK=255.255.0.0
GATEWAY=192.168.1.1
TYPE=Bridge
UUID=6c6e7237-97cc-41e4-b273-c21c0b2054c0
ONBOOT=yes
NM_CONTROLLED=yes
#BOOTPROTO=dhcp
/etc/init.d/network restart
[root@qa228 lvmdata]# brctl show 查看橋接狀況
bridge name bridge id STP enabled interfaces
br0 8000.0015172449bc no eth0
vnet0
virbr0 8000.5254007815c0 yes virbr0-nic
2. 開始準備安裝虛擬機,修改xmanager鏈接的密碼:
[root@localhost lvmdata]#vi /etc/libvirt/qemu.conf
vnc_listen = "0.0.0.0"
vnc_password = "123456"
[root@localhost lvmdata]#export DISPLAY=192.168.1.34:0.0 定義xmanager,用來遠程安裝的windows機器
[root@localhost lvmdata]#virt-install --name=test03 --ram 2048 --vcpus=2 --disk path=/lvmdata/test03.img,size=30 --vnc --accelerate --cdrom /lvmdata/CentOS-6.4-x86_64-bin-DVD1.iso --network bridge=br0,model=virtio --force --autostart --k en-us
-bash: virt-viewer: command not found
virt-viewer未安裝好.
[root@localhost lvmdata]#yum install qemu-kvm-tools virt-v2v virt-viewer
[root@localhost lvmdata]#export DISPLAY=192.168.1.34:0.0
[root@localhost lvmdata]#virt-viewer -c qemu:///system test03 經過Xmanager遠程鏈接進入圖形化界面安裝
第二種安裝虛擬機方式採用qemu先建立qcow2格式的鏡像文件:
qemu-img create -f qcow2 /lvmdata/test03.img 30G
qemu-img info test03.img
經常使用的格式爲raw和qcow2,推薦使用qcow2格式。
raw格式:能夠簡單、容易地導出到其它模擬器中,可是當即分配佔用空間大。
qcow2格式:是qcow格式的升級版本,是目前最萬能的格式。使用它可得到較小映像,也是虛擬池一直在使用的鏡像格式,支持鏡像快照,方便的恢復管理。
export DISPLAY=192.168.1.34:0.0
virt-install --name test03 --ram=2048 --arch=x86_64 --vcpus=2 --check-cpu --os-type=linux --os-variant='rhel6' -c /lvmdata/CentOS-6.4-x86_64-bin-DVD1.iso --disk path=/lvmdata/test03.img,device=disk,bus=virtio,format=qcow2 --bridge=br0 --noautoconsole
再經過xmanager鏈接
================kvm虛擬機的克隆分爲兩種狀況=========================
1、本機虛擬機直接克隆:
[root@localhost lvmdata]# virsh destroy dev01 先關閉被克隆虛擬機dev01
[root@localhost lvmdata]# virt-clone -o dev01 -n test01 -f test01.img 克隆出test01鏡像文件
[root@localhost lvmdata]## vi /etc/libvirt/qemu/test01.xml 可更改虛擬機cpu,內存配置
[root@localhost lvmdata]# virsh start test01 啓動新虛擬機test01
鏈接虛擬機兩種方式:
1.經過xmanager鏈接修改主機名,IP,參照生成的虛擬機xml文件來更改UUID:
[root@localhost lvmdata]# export DISPLAY=192.168.1.34:0.0
[root@localhost lvmdata]# virt-viewer -c qemu:///system test01
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/hosts
/etc/sysconfig/network
網卡重啓時提示找不到eth0網卡,報錯以下:Device eth0 does not seem to be present,delaying initialization FAILED
vi /etc/udev/rules.d/70-persistent-net.rules
修改將eth0註釋掉,eth1改成eth0
重啓網絡和服務器OK
2.使用console登陸虛擬機
[root@centoskvm img]# virsh console test01
若出現沒法從console登陸的狀況,會卡在「Escape character is ^]」處沒法繼續。登陸linux虛擬機控制檯需設置以下:
1)添加ttyS0的安全許可,容許root登陸:
[root@1001vm img]# echo "ttyS0" >> /etc/securetty
2)在/etc/grub.conf文件中爲內核添加參數:console=ttyS0
[root@localhost ~]# cat /etc/grub.conf
#boot=/dev/sda
default=0
timeout=5
splashp_w_picpath=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-358.el6.x86_64)
root (hd0,0)
kernel /boot/vmlinuz-2.6.32-358.el6.x86_64 ro root=UUID=20d7244f-7ab6-4e62-9d90-f7b2833bff9c rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet console=ttyS0
initrd /boot/initramfs-2.6.32-358.el6.x86_64.img
3)在/etc/inittab中添加agetty:
S0:12345:respawn:/sbin/agetty ttyS0 115200
[root@localhost qemu]# tail /etc/inittab
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:
S0:12345:respawn:/sbin/agetty ttyS0 115200
重啓客戶虛擬機。再次嘗試console命令能夠正常使用。
[root@localhost img]# virsh console test01
Connected to domain test01
Escape character is ^]
[ OK ]
Setting hostname ...........
修改主機名,IP,參照生成的虛擬機xml文件來更改UUID
2、異地物理機間虛擬機克隆:
1)原物理機上關閉被克隆虛擬機
2)導入kvm虛擬機配置文件
virsh dumpxml test01 > /etc/libvirt/qemu/test02.xml
3)複製kvm虛擬機磁盤文件
cp test01.img test02.img
4)將img與xml文件拷貝至新物理機上
直接編輯修改配置文件test02.xml
更改內存,cpu,img鏡像文件路徑.
<domain type='kvm'>
<name>test02</name>
<uuid>437ec2c9-d3e7-421e-0b9f-1e54f4f5b3cd</uuid>
<memory unit='KiB'>2097152</memory>
<currentMemory unit='KiB'>2097152</currentMemory>
<vcpu placement='static'>2</vcpu>
<os>
<type arch='x86_64' machine='rhel6.4.0'>hvm</type>
<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/libexec/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='raw' cache='none'/>
<source file='/lvmdata/test02.img'/>
[root@qa228 lvmdata]# virsh define /etc/libvirt/qemu/test02.xml 定義新虛擬機配置文件
Domain dev01 defined from /etc/libvirt/qemu/test02.xml
[root@qa228 lvmdata]# virsh list --all
Id Name State
----------------------------------------------------
- test02 shut off
[root@qa228 lvmdata]# virsh start test02
Domain test02 started
用xmanager鏈接登陸進行主機名,IP等修改.
[root@qa228 lvmdata]# export DISPLAY=192.168.1.34:0.0
[root@qa228 lvmdata]#virt-viewer -c qemu:///system test02
虛擬機相關管理命令:
virsh destroy test02 關機
virsh undefine test02 刪除
qemu-img info test02.img 查看鏡像文件的信息