kvm虛擬機安裝

內部機器空閒,支持虛擬化,正好拿來劃幾臺測試機使用。過程以下: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  查看鏡像文件的信息

相關文章
相關標籤/搜索