云計算day02-KVM

云計算的虛擬機不要掛起,不然上不了網(wǎng)

image

1. kvm虛擬機的橋接網(wǎng)絡(luò)

默認的虛擬機網(wǎng)絡(luò)是NAT模式,網(wǎng)段192.168.122.0/24

1.1 創(chuàng)建橋接網(wǎng)卡

創(chuàng)建橋接網(wǎng)卡命令

virsh iface-bridge eth0 br0

取消橋接網(wǎng)卡命令

virsh iface-unbridge br0

1.2 新虛擬機使用橋接模式

默認NAT模式
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /opt/web04.qcow2 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

橋接模式
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
創(chuàng)建鏈接克隆生成虛擬機磁盤文件
qemu-img  create  -f qcow2  -b 49-web01.qcow2 49-web04.qcow2

創(chuàng)建橋接網(wǎng)卡命令
virsh iface-bridge eth0 br0

新虛擬機使用橋接模式
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web05 --memory 1024 --vcpus 1 --disk /data/web04.qcow2 --boot hd --network  bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
image
image

1.3 橋接和NAT原理圖

image

1.4 將已有虛擬機網(wǎng)絡(luò)修改為橋接模式

a:關(guān)機狀態(tài)下修改虛擬機配置文件:
例如:virsh edit centos7
<interface type='bridge'> 
<source bridge='br0'/>

b:啟動虛擬機,測試虛擬機網(wǎng)絡(luò)
<interface type='network'>
  <mac address='52:54:00:6e:d2:c9'/>
  <source network='default'/>

2. 熱添加技術(shù)

熱添加硬盤、網(wǎng)卡、內(nèi)存、cpu

2.1 kvm熱添加硬盤

臨時生效

virsh attach-disk web01 /data/web01-add.qcow2 vdb --subdriver qcow2

永久生效 --config

virsh attach-disk web01 /data/web01-add.qcow2 vdb --subdriver qcow2 --config

臨時剝離硬盤

virsh detach-disk web01 vdb

永久剝離硬盤

virsh detach-disk web01 vdb --config

2.2 擴容:

virsh shutdown web05
qemu-img resize web05.qcow2 100G
qemu-img info web05.qcow2 
virsh console web05

進入到kvm虛擬機
[root@localhost ~]# fdisk -l
[root@localhost ~]# mkfs.xfs  /dev/vdb
[root@localhost ~]# mount /dev/vdb /mnt/
/dev/vdb        100G   33M  100G   1% /mnt

kvm虛擬機硬盤擴容規(guī)范

1.在kvm虛擬機里把擴容盤的掛載目錄,卸載掉
[root@localhost ~]# umount /mnt

2.在宿主機上剝離硬盤
[root@kvm01 /data]# virsh detach-disk web05 vdb
Disk detached successfully

3.在宿主機上調(diào)整容量
[root@kvm01 /data]# qemu-img resize web05.qcow2 200G
Image resized.

4.在宿主機上再次附加硬盤
[root@kvm01 /data]# virsh attach-disk web05 /data/web05.qcow2 vdb --subdriver qcow2
Disk attached successfully

5.在虛擬機里再次掛載擴容盤
[root@localhost ~]# mount /dev/vdb /mnt
[root@localhost ~]# df -h
/dev/vdb        100G   33M  100G   1% /mnt

6.在虛擬機里用xfs_growfs更新擴容盤超級塊信息
[root@localhost ~]# xfs_growfs /dev/vdb 
data blocks changed from 26214400 to 52428800
[root@localhost ~]# df -h
/dev/vdb        200G   33M  200G   1% /m    擴容為200G

練習(xí)1:擴容kvm虛擬機的根分區(qū)

鏈接

關(guān)閉虛擬機
shutdown -h now

在宿主機上執(zhí)行操作
[root@kvm01 /data]# qemu-img resize web04.qcow2 50G
[root@kvm02 /data]# qemu-img info web04.qcow2
image: web04.qcow2
file format: qcow2
virtual size: 50G (53687091200 bytes)
disk size: 439M
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false
    
[root@kvm02 /data]# virsh start web04
[root@kvm02 /data]# virsh console web04 
Connected to domain web04
Escape character is ^]
...
[root@localhost ~]#  df -h
[root@localhost ~]#  fdisk -l 
[root@localhost ~]# fdisk /dev/vda
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): d
Selected partition 1
Partition 1 is deleted

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 
First sector (2048-104857599, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599): 
Using default value 104857599
Partition 1 of type Linux and of size 50 GiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

[root@localhost ~]# reboot      重新添加分區(qū)后重啟
[root@localhost ~]# xfs_growfs /dev/vda1    更新超級塊
[root@localhost ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        50G  915M   50G   2% /

2.3kvm虛擬機在線熱添加和刪除網(wǎng)卡

創(chuàng)建虛擬機:
[root@kvm01 /data]# virsh destroy web04
[root@kvm01 /data]# virsh undefine web04
[root@kvm01 /data]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024,maxmemory=2048 --vcpus 1 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole

在宿主機上添加網(wǎng)卡:
virsh attach-interface web04 bridge br0
virsh attach-interface web04 bridge br0 --model  virtio
# --model virtio    此產(chǎn)參數(shù)可以修改網(wǎng)卡名稱為eth*

在宿主機上刪除網(wǎng)卡:刪除虛擬機每張網(wǎng)卡的mca地址
virsh detach-interface web04 bridge --mac 52:54:00:68:68:40
virsh detach-interface web04 bridge --mac 52:54:00:a8:72:44
# 只剩下一塊網(wǎng)卡時不需要加mac地址,直接刪除即可


上面的操作臨時生效,下次重啟后恢復(fù),可以添加--config參數(shù)使永久生效
virsh attach-interface web04 bridge br0 --model  virtio --config

image
image

2.4 kvm虛擬機在線熱添加內(nèi)存

臨時熱添加內(nèi)存
virsh setmem web03 1024M 
永久增大內(nèi)存
virsh setmem web03 1024M --config
刪除web03這臺虛擬機:
[root@kvm02 /data]# virsh destroy web03
[root@kvm02 /data]# virsh undefine web03 

再次創(chuàng)建web03虛擬機 設(shè)置最大內(nèi)存maxmemory=2048:
[root@kvm02 /data]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web03 --memory 512,maxmemory=2048 --vcpus 1 --disk /data/web03.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
[root@kvm02 /data]# virsh list
 Id    Name                           State
----------------------------------------------------
 2     web04                          running
 4     web03                          running

連接web03查看內(nèi)存情況
[root@kvm02 /data]# virsh console web03 
...
[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            465          63         297           8         104         280
Swap:             0           0           0

在宿主機上修改內(nèi)存大小為1024M
[root@kvm02 /data]# virsh setmem web03 1024M

在web03虛擬機上查看內(nèi)存已經(jīng)變大了
[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            977          63         808           8         104         791
Swap:             0           0           0

再增加為2048M
[root@kvm02 /data]# virsh setmem web03 2048M

再次查看虛擬機內(nèi)存變大了
[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           2001          63        1832           8         104        1816
Swap:             0           0           0


1.如果修改的內(nèi)存超過了設(shè)置的最大值,則報錯
[root@kvm02 /data]# virsh setmem web03 4096M
error: invalid argument: cannot set memory higher than max memory

2.如果將虛擬機關(guān)機后增加內(nèi)存是可以調(diào)整的,但是超過宿主機的最大內(nèi)存的話,會導(dǎo)致不能啟動
3.如果修改的內(nèi)存過小,則會讓虛擬機奔潰掉

2.5 kvm虛擬機在線熱添加cpu

setvcpus    核心數(shù)
setvcpu     特性

熱添加cpu核數(shù)
virsh setvcpus web04 4 
永久添加cpu核數(shù)
virsh setvcpus web04 4 --config
image
先把虛擬機web03刪除掉:
virsh destroy web03 
virsh undefine web03 

創(chuàng)建web03虛擬機:
[root@kvm02 /data]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web03 --memory 512,maxmemory=2048 --vcpus 1,maxvcpus=10 --disk /data/web03.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole

登錄到虛擬機web03查看cpu核心數(shù)
[root@kvm02 /data]# virsh console web03 
...
[root@localhost ~]# lscpu |head -5
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                1    #當(dāng)前為1核心
On-line CPU(s) list:   0

在宿主機上增加web03虛擬機的cpu核心數(shù)為2核
[root@kvm02 /data]# virsh setvcpus web03 2

查看虛擬機web03的cpu核心數(shù)
[root@localhost ~]# lscpu |head -5
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2        #改為2核心
On-line CPU(s) list:   0,1

修改虛擬機的cpu核心數(shù)為4核
[root@kvm02 /data]# virsh setvcpus web03 4

再次查看虛擬機cpu
[root@localhost ~]# lscpu |head -5
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
image

3. 熱遷移 (共享的網(wǎng)絡(luò)文件系統(tǒng))

kvm虛擬機熱遷移資料
web04.qcow2 的環(huán)境下載鏈接: 提取碼: sw23

冷遷移
1.關(guān)機
2.備份配置文件
3.scp傳輸配置文件和磁盤文件,傳輸?shù)叫碌乃拗鳈C
4.virsh define web04.xml
5.啟動

熱遷移
kvm虛擬機:配置文件,nfs共享


詳細步驟

環(huán)境要求:
主機名 ip 內(nèi)存 網(wǎng)絡(luò) 軟件需求 虛擬化
kvm01 10.0.0.11 2G 創(chuàng)建br0橋接網(wǎng)卡 kvm和nfs 開啟虛擬化
kvm02 10.0.0.12 2G 創(chuàng)建br0橋接網(wǎng)卡 kvm和nfs 開啟虛擬化
nfs01 10.0.0.31 1G nfs

kvm虛擬機熱遷移大體步驟規(guī)劃

  • 兩邊的環(huán)境(橋接網(wǎng)卡)
  • 實現(xiàn)共享存儲(nfs)
  • 虛擬機橋接網(wǎng)絡(luò)
  • 在線熱遷移

注意:需要互相做好host解析 ↓

不然后面可能有報錯,會因為主機名重復(fù)嗎,
修改主機名:
hostnamectl set-hostname kvm01 或 kvm02

kvm01和kvm02宿主機都添加host解析:
[root@kvm01 ~]# cat /etc/hosts
192.168.37.202 mirrors.aliyun.com
10.0.0.11 kvm01
10.0.0.12 kvm02

scp -rp /etc/hosts 10.0.0.12:/etc/

3.1 清理當(dāng)前的宿主機環(huán)境,保證一個干凈的環(huán)境測試

保留一個配置文件web04.qcow2,將/opt/下和/data/下的其余全部刪除掉

[root@kvm01 ~]# rm -rf /opt/*
[root@kvm01 ~]# mv /data/web04.qcow2 /opt/
[root@kvm01 ~]# rm -rf  /data/*
[root@kvm01 ~]# mv /opt/web04.qcow2 /data/
[root@kvm01 ~]# ll /data/
total 450688
-rw-r--r-- 1 qemu qemu 459800576 Sep  3 17:08 web04.qcow2

刪除所有的配置文件:
[root@kvm01 /data]# rm -rf /etc/libvirt/qemu/*.xml
[root@kvm01 /data]# systemctl restart libvirtd
[root@kvm01 /data]# virsh list --all
 Id    Name                           State
----------------------------------------------------
\\沒有虛擬機了

#想kvm01宿主機關(guān)機
[root@kvm01 /data]# shutdown -h now

3.2 調(diào)整宿主機 并克隆第二臺kvm02宿主機和nfs01共享主機

調(diào)整內(nèi)存大小后,克隆兩臺主機,分別為kvm02和nfs01

image

image

開機后修改IP地址并重啟網(wǎng)卡

因為是橋接網(wǎng)卡,索引網(wǎng)卡修改路徑是
vim /etc/sysconfig/network-scripts/ifcfg-br0
systemctl restark network

kvm01 默認 10.0.0.11
kvm02 修改為10.0.0.12
nfs01 修改為10.0.0.31

3.3 給三臺主機同時安裝nfs環(huán)境

yum install nfs-utils rpcbind 

如果沒有網(wǎng)絡(luò)可能是dhcp的原因,暫時關(guān)掉

image

3.4 配置nfs服務(wù)端(nfs01上)

添加配置文件(async異步同步,性能更高)
[root@nfs01 ~]# vim /etc/exports
/data  10.0.0.0/24(rw,async,no_root_squash,no_all_squash)

重啟
[root@nfs01 ~]# systemctl restart rpcbind
[root@nfs01 ~]# systemctl restart nfs

創(chuàng)建/data目錄
[root@nfs01 ~]# mkdir /data

去kvm01和02上檢查是否連接nfs
[root@kvm01 /data]#  showmount -e 10.0.0.31
Export list for 10.0.0.31:
/data 10.0.0.0/24

[root@kvm02 /data]#  showmount -e 10.0.0.31
Export list for 10.0.0.31:
/data 10.0.0.0/24

3.5 掛載并測試

kvm01上:
[root@kvm01 ~]# mount -t nfs 10.0.0.31:/data/ /data/
[root@kvm01 ~]# df -h
10.0.0.31:/data   48G  2.2G   46G   5% /data


kvm02上:
[root@kvm02 /data]# mount -t nfs 10.0.0.31:/data/ /data/
[root@kvm02 /data]# df -h
10.0.0.31:/data   48G  2.2G   46G   5% /data


查看nfs01的/data目錄是否同步之前的文件:
[root@nfs01 ~]# ll -h /data/
total 446M
-rw-r--r-- 1 107 107 6.3M Sep  3 22:14 web03.qcow2
-rw-r--r-- 1 107 107 439M Sep  3 22:24 web04.qcow2

3.6 將虛擬機從kvm02宿主機遷移到kvm01宿主機上

虛擬機都在kvm02上:
[root@kvm02 /data]# virsh list 
 Id    Name                           State
----------------------------------------------------
 2     web04                          running
 6     web03                          running


當(dāng)前的kvm01上沒有虛擬機:
[root@kvm01 ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------

執(zhí)行遷移的命令 (將kvm02上的web03遷移到10.0.0.11宿主機上)
[root@kvm02 /data]# virsh migrate --live --verbose web03 qemu+ssh://10.0.0.11/system --unsafe
root@10.0.0.11's password: 
Migration: [100 %]

在kvm01上查看web03虛擬機已遷移過來了
[root@kvm01 ~]# virsh list
 Id    Name                           State
----------------------------------------------------
 3     web03                          running

登錄web03上修改網(wǎng)卡配置文件
[root@kvm01 ~]# virsh console web03 
[root@localhost ~]# sed -i 's#dhcp#static#' /etc/sysconfig/network-scripts/ifcfg-eth0

添加下面的內(nèi)容到網(wǎng)卡配置中
IPADDR=10.0.0.129
GATEWAY=10.0.0.254
NETMASK=255.255.255.0
DNS1=223.5.5.5

重啟網(wǎng)卡
systemctl restart network

3.7 再次將遷移過到kvm01上的web03虛擬機遷移回kvm02上

遷移到10.0.0.12的kvm02宿主機上:
[root@kvm01 ~]# virsh migrate --live --verbose web03 qemu+ssh://10.0.0.12/system --unsafe
root@10.0.0.12's password: 
Migration: [100 %]
[root@kvm01 ~]# virsh list
 Id    Name                           State
----------------------------------------------------


在kvm02宿主機上查看已經(jīng)遷移回來了:
[root@kvm02 /data]# virsh list 
 Id    Name                           State
----------------------------------------------------
 2     web04                          running
 7     web03                          running

遷移過程中會丟包

image


4. 安裝ESXI并安裝一臺虛擬機

4.1 安裝ESXI

新建虛擬機

image

添加鏡像
鏡像網(wǎng)盤提取碼: mhtx
VMware-viclient網(wǎng)盤下載鏈接 提取碼: jfcr

image

image

image

image

image
image

image

image

image

image
image
image
image

image

image

image

image

用VMware vSphere軟件連接

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

ESXI的常用配置

開啟ssh功能

image
image
image

點擊啟動后去控制臺操作

image

4.2 下面是按照centos6的步驟

image

image

image

image

image

image

image

image

image

image

image

image

image

等待安裝好后就可以操作使用了

5. 練習(xí)

5.1 將kvm虛擬機遷移到esxi上

qemu-img convert -f qcow2 oldimage.qcow2 -O vmdk newimage.vmdk
#可能不需要
vmkfstools -i oldimage.vmdk newimage.vmdk -d thin

5.2 將ESXI虛擬機遷移到kvm上

將虛擬機導(dǎo)出ova文件
virt-v2v -i ova centos-dev-test01-v2v.ova -o local -os /opt/test -of qcow2

5.3 問題與需求總結(jié)

kvm宿主機 2000臺
查看每一個宿主機有多少臺虛擬機?
查看每一個宿主機還剩多少資源?
查看每一臺宿主機,每一個虛擬機的ip地址? excel 資產(chǎn)管理
kvm管理平臺,數(shù)據(jù)庫工具
信息:宿主機,總配置,剩余的總配置
虛擬機的信息,配置信息,ip地址,操作系統(tǒng)
帶計費功能的kvm管理平臺,openstack ceilometer計費 ecs IAAS層
自動化管理kvm宿主機,云主機定制化操作
服務(wù)器, 20核心 1T內(nèi)存 96T
資源浪費,linux環(huán)境特別亂,,kvm虛擬機
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容