創建KVM實例詳細步驟

                               第一步

用本地文件創建本地yum源
  1. 創建iso存放目錄和掛載目錄
    mkdir /mnt/iso
    mkdir /mnt/cdrom

  2. 將iso鏡像文件上傳到/mnt/iso文件夾下

  3. 將/mnt/iso/下的iso文件掛載到/mnt/cdrom目錄

    mount -o loop /mnt/iso/XXXXX.iso /mnt/cdrom

    mount -o loop /mnt/iso/rhel-server-7.2-x86_64-dvd.iso /mnt/cdrom/
    <注:掛載完之後對其操作會提示設備繁忙,此時需要umount解開掛載才行>
    查看是否掛載成功: df -h
    <用來查看系統中所有掛載的,mount也可以>

  4. 最關鍵的一步>如果/etc/yum.repos/下面有其它的.repo文件,先創建個文件夾,將這些.repo先轉移到文件夾中,自己寫一個.repo的文件
    mkdir /etc/yum.repos.d/bak

    mv *.repo /etc/yum.repos.d/bak

    然後創建自己的.repo文件

    vi myself.repo

    內容如下:
    [base]
    name=RedHat
    #注:這裏的baseurl就是你掛載的目錄,在這裏是/mnt/cdrom
    baseurl=file:///mnt/cdrom
    #注:這裏的值enabled一定要爲1
    enabled=1
    gpgckeck的值無所謂
    gpgckeck=0
    #注:這個你cd /mnt/cdrom/可以看到這個key,這裏僅僅是個例子
    gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-5

[root@gw-imserver01-bj yum.repos.d]# cat myself.repo

[base]
name=RedHat
baseurl=file:///mnt/cdrom
enabled=1
gpgckeck=0
#gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-7

  1. 測試:
    yum clean all
    yum install vim*

                                第二步

yum -y install qemu-kvm qemu-img virt-manager libvirt libvirt-python python-virtinst libvirt-client virt-install virt-viewer

安裝要用的軟件
安裝kvm模塊
#yum -y install qemu-kvm.x86_64

安裝kvm調試工具(可以不安裝)
#yum -y install qemu-kvm-tools.x86_64

安裝python組件,主要用來記錄創建vm時的xml文件
#yum -y install python-virtinst.noarch

安裝qemu組件,使用qemu命令來創建磁盤,啓動虛擬機等(這個可能在安裝時qemu-kvm.x86_64已安裝)
#yum -y install qemu-img.x86_64

安裝網絡支持工具
#yum -y install bridge-utils.x86_64

安裝虛擬機管理工具,使用virsh來管理虛擬機
#yum -y install libvirt

此時用 /sbin/ifconfig 查看會多出一個 virbr0 ,這是由於安裝和啓用了 libvirt 服務後生成的,libvirt 在服務器(host)上生成一個 virtual network switch (virbr0),host 上所有的虛擬機(guests)通過這個 virbr0 連起來。默認情況下 virbr0 使用的是 NAT 模式(採用 IP Masquerade),所以這種情況下 guest 通過 host 才能訪問外部。
大多數時候我們虛擬機使用的是 bridge(網橋)直接連到局域網裏,所以這個 virbr0 不是必須的(注:不要搞混淆了,bridge 和這裏的 virbr0 bridge 是互不相干的)。如何關掉這個 virbr0 呢?先 net-destroy 然後 net-undefine,最後別忘了重啓 libvirtd 讓設置生效:

chkconfig NetworkManager off

virsh net-list

Name State Autostart


default active yes

virsh net-destroy default

Network default destroyed

virsh net-undefine default

Network default has been undefined

service libvirtd restart

Stopping libvirtd daemon: [ OK ]
Starting libvirtd daemon: [ OK ]
這樣就關掉了 virbr0 在使用雙機軟件過程中,如果系統是red hat 5.x 默認系統安裝完成後爲xen內核,那麼xen內核引導啓動後就會有虛擬網卡(vethx、vif0.x、virbr0、xenbr1等)存在。
這就會直接導致雙機軟件的兩臺機器中都會有相同的IP地址存在(virbr0網卡的IP地址都爲192.168.122.1)。所以會導致雙機系統中的主機關機時,備機不會接管的現象。所以,需要將virbr0卸載掉

重新啓動

四、.檢查kvm模塊是否安裝完成
#lsmod | grep kvm
會顯示兩個模塊
kvm_intel/ kvm_amd
kvm

檢查物理主機虛擬化完成情況
#virsh list

Id Name State

出現如上表明已裝好了

五.設置網卡bridge模式

單網卡橋接

#cd /etc/sysconfig/network-scripts/
#vi ifcfg-eth0

加BRIDGE=br0

cp ifcfg-eth0 ifcfg-br0
改 DEVICE=br0
TYPE=Bridge
還要刪掉system name uuid等
#service network restart

多網卡 橋接

cp ifcfg-eth0 ifcfg-br0
cp ifcfg-eth1 ifcfg-br1
cp ifcfg-eth2 ifcfg-br2

分別 修改 ifcfg-eth0 ifcfg-br0 ifcfg-eth0 增加 BRIDGE=br0 ,刪除 IPADDR和NETMASK ,ifcfg-br0 增加 TYPE=Bridge,增加ifcfg-eth0中的IPADDR和NETMASK
分別 修改 ifcfg-eth1 ifcfg-br1 ifcfg-eth1 增加 BRIDGE=br1 ,刪除 IPADDR和NETMASK ,ifcfg-br1 增加 TYPE=Bridge,增加ifcfg-eth1中的IPADDR和NETMASK
分別 修改 ifcfg-eth2 ifcfg-br2 ifcfg-eth2 增加 BRIDGE=br2 ,刪除 IPADDR和NETMASK ,ifcfg-br2 增加 TYPE=Bridge,增加ifcfg-eth2中的IPADDR和NETMASK

[root@GW-DUDUServer11-TJ network-scripts]# cat ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
NM_CONTROLLED=no
BRIDGE=br0
[root@GW-DUDUServer11-TJ network-scripts]# cat ifcfg-eth1
DEVICE=eth1
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
NM_CONTROLLED=no
BRIDGE=br1
[root@GW-DUDUServer11-TJ network-scripts]# cat ifcfg-eth2
DEVICE=eth2
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
NM_CONTROLLED=no
BRIDGE=br2
[root@GW-DUDUServer11-TJ network-scripts]# cat ifcfg-br0
DEVICE=br0
BOOTPROTO=static
IPADDR=192.168.155.239
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Bridge
NM_CONTROLLED=no
[root@GW-DUDUServer11-TJ network-scripts]# cat ifcfg-br1
DEVICE=br1
BOOTPROTO=static
IPADDR=125.39.158.100
NETMASK=255.255.255.128
ONBOOT=yes
TYPE=Bridge
NM_CONTROLLED=no
[root@GW-DUDUServer11-TJ network-scripts]# cat ifcfg-br2
DEVICE=br2
BOOTPROTO=static
IPADDR=123.150.170.77
NETMASK=255.255.255.128
ONBOOT=yes
TYPE=Bridge
NM_CONTROLLED=no

#ifconfig

br0 Link encap:Ethernet HWaddr 1C:6F:65 0:CC:AF
inet addr:58.211.112.15 Bcast:58.255.255.255 Mask:255.255.255.240
inet6 addr: fe80::6881:d3ff:fe70:3101/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3525519 errors:0 dropped:0 overruns:0 frame:0
TX packets:1875715 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4633406660 (4.3 GiB) TX bytes:222071251 (211.7 MiB)

eth0 Link encap:Ethernet HWaddr 1C:6F:65 0:CC:AF
inet6 addr: fe80::1e6f:65ff:fed0:ccaf/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3527263 errors:0 dropped:0 overruns:0 frame:0
TX packets:1876659 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4682951686 (4.3 GiB) TX bytes:222162510 (211.8 MiB)
Interrupt:25 Base address:0x4000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0

出現以上表明安裝已正常完成了

六、可以用virt-install 來新建虛擬機了,但是啓動後沒辦法看到
所以要安裝客戶端來管理,也可以用virsh來管理但還要加VNC來連接虛擬機
安裝VNC
#yum install tigervnc-server.x86_64

改防火牆
還要改一下iptables
#vi /etc/sysconfig/iptables
加一句
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 6900 -j ACCEPT
#service iptables restart

                                         第三步

可以開始新建虛擬機

virt-install --name haorenIM --ram 1024 --vcpus=1 --disk path=/home/kvm/img/redhat.img,size=20 --network bridge=virbr0 --os-variant=rhel4 --cdrom=/home/kvm/soft/RHEL4.7.iso --vnclisten=0.0.0.0 --vncport=6900 --vnc

說明:--disk path=/home/kvm/img/redhat.img 鏡像存放路徑

virt-install --name haorenIM3 --ram 8192 --vcpus=4 --disk path=/home/kvm/img/redhat3.img,size=30 --network bridge=br0 --network bridge=br1 --network bridge=br2 --os-variant=rhel6 --cdrom=/mnt/iso/rhel-server-6.4-x86_64-dvd.iso --vnclisten=0.0.0.0 --vncport=6902 --vnc

virt-install --name haorenIM1 --ram 8192 --vcpus=4 --disk path=/home/kvm/img/redhat3.img,size=30 --network bridge=br0 --network bridge=br1 --os-variant=rhel6 --cdrom=/mnt/iso/rhel-server-6.4-x86_64-dvd.iso --vnclisten=0.0.0.0 --vncport=6900 --vnc

virt-install --name haorenIM1 --ram 16384 --vcpus=8 --disk path=/home/kvm/image/redhat1.img,size=100 --network bridge=br0 --network bridge=br1 --os-variant=rhel7 --cdrom=/mnt/iso/rhel-server-7.2-x86_64-dvd.iso --vnclisten=0.0.0.0 --vncport=6901 --vnc

(1) 用virsh list顯示已安裝的虛擬機
(2) Virsh start haorenIM啓動 名爲haorenIM 系統
(3) 用virsh edit haorenIM 編輯 主機名爲 haorenIM 的配置文件
(4) 再次執行virsh list 看看起來沒有
(5) lsof -i:6900 查看端口號
(6) 查看防火牆iptables-save
(7) service iptables stop/start
(8) 用VNC連接虛擬機

(9) 克隆虛擬機 先暫停源虛擬機virsh undefined haorenIM
(10) 開始克隆virt-clone -o haorenIM -n haorenIM2 -f //home/kvm/img/redhat2.img
(11) 重新定義 virsh define /etc/libvirt/qemu/haorenIM2.xml
(12) virsh resume haorenIM 繼續執行
(13) virsh edit haorenIM2 修改配置文件,主要是 修改端口號和IP地址 和之前的不衝突
(14) virsh start haorenIM2 啓動虛擬機
(15) virsh list 顯示兩個虛擬機都在運行

                         第二種方法克隆

(1)先執行apt -get install acpid進行安裝並啓動該服務,即可讓虛擬機響應shutdown命令,否則執行virsh shutdown
不起作用,然後再執行virsh shutdown 虛擬機名 ,執行後有點慢,稍等下再執行 virsh list 進行查看確認

(2)執行virsh dumpxml haorenIM2 > /etc/libvirt/qemu/haorenIM3.xml 克隆配置文件

(3)克隆鏡像文件,進入鏡像文件存放目錄 cp redhat2.img redhat3.img

(4) 直接編輯修改配置文件修改name,uuid,disk位置,vnc端口此時還是將該配置文件註冊進來,無法通過virsh edit進行編輯

(5) vi haorenIM3.xml,修改uuid,name ,port,ID

(6)重新定義 virsh define haorenIM3.xml ,就可以virsh edit haorenIM3 了

(7) virsh start haorenIM3 就可以啓動haorenIM3虛擬機了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章