KVM創(chuàng)建新的虛擬機(jī)

1. 使用virt-install創(chuàng)建新的虛擬機(jī)

virt-install --name CentOS7.6_template --ram 2048 --vcpu=2 --virt-type kvm --cdrom=/root/Downloads/cent.iso \
--disk /var/lib/libvirt/images/CentOS7.6_template.qcow2,size=40,bus=virtio --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole 

# 命令解釋:
--name                # 虛擬機(jī)名稱,需全局惟一
--ram                 # 虛擬機(jī)內(nèi)在大小,單位為MB
--vcpu                # VCPU個(gè)數(shù)及相關(guān)配置
--virt-type                # 使用的hypervisor,如kvm、qemu、xen等;所有可用值可以使用virsh capabilities命令獲取;
--cdrom                # 光盤(pán)安裝介質(zhì)
--disk /var/lib/libvirt/images/CentOS7.6_template.qcow2,size=40,bus=virtio  # 指定存儲(chǔ)設(shè)備及其屬性
--network bridge=br0        # 將虛擬機(jī)連入宿主機(jī)的網(wǎng)絡(luò)中
--graphics vnc,listen=0.0.0.0    # 使vnc可以連接,默認(rèn)是5900, 通過(guò)ss -antpl | grep 59查詢
--noautoconsole           # 禁止自動(dòng)連接至虛擬機(jī)的控制臺(tái)

2. 為統(tǒng)一網(wǎng)卡的名稱為eth0所以要進(jìn)行如下配置

1. 開(kāi)機(jī)選擇“Install Centos 7”
2. 按Tab,打開(kāi)kernel啟動(dòng)選項(xiàng)后,增加 net.ifnames=0 biosdevname=0

3. 系統(tǒng)層面初始化配置

3.1 安裝完成之后啟動(dòng)虛擬機(jī),先通過(guò)vnc連接

virsh start CentOS7.6-template

3.2 連接上之后啟動(dòng)服務(wù)serial-getty@ttyS0.service,以便宿主機(jī)能使用console命令連接

systemctl start serial-getty@ttyS0.service
systemctl enable serial-getty@ttyS0.service

3.3 關(guān)閉firewalld服務(wù)和禁用SELinux服務(wù)

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config

3.4 配置網(wǎng)卡和DNS信息

# 配置網(wǎng)卡信息
cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"         # 使用靜態(tài)IP地址,默認(rèn)為dhcp
IPADDR="192.168.0.204"   # 設(shè)置的靜態(tài)IP地址
NETMASK="255.255.255.0"    # 子網(wǎng)掩碼
GATEWAY="192.168.0.1"    # 網(wǎng)關(guān)地址
DNS1="114.114.114.114"     # DNS服務(wù)器
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="95b614cd-79b0-4755-b08d-99f1cca7271b"
DEVICE="ens33"
ONBOOT="yes"             #是否開(kāi)機(jī)啟用

# 配置DNS
cat /etc/resolv.conf
nameserver 114.114.114.114
nameserver 223.5.5.5

# 修改主機(jī)名
hostnamectl set-hostname template

3.5 配置epel源安裝常用軟件

# 設(shè)置阿里源
rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
yum install -y vim git tree lsof tcp wget tcpdump nc nmap openssl-devel ntpdate 

3.6 允許root可以ssh登錄

# 打開(kāi)允許root允許ssh登錄
sed -i 's#\#PermitRootLogin yes#PermitRootLogin yes#g' /etc/ssh/sshd_config 

# 安全配置可設(shè)置hosts.all和hosts.deny
cat /etc/hosts.allow
##IDC LAN ip
sshd:192.168.1.0/255.255.255.0
sshd:10.0.0.1/255.255.255.0

cat /etc/hosts.deny
sshd:all

# 重啟sshd服務(wù)
systemctl restart sshd

3.7 修改緩存、清理歷史命令,關(guān)機(jī)可作為模板

yum clean all
yum makecache
history -c

4. 使用模板創(chuàng)建虛擬機(jī)

# 可以制作多個(gè)不同的模板,按業(yè)務(wù)環(huán)境需求,直啟動(dòng).
virt-install --name im1 --ram 4096 --vcpu=2 --virt-type kvm --disk /var/lib/libvirt/images/im1.qcow2,bus=virtio --network bridge=br0,model=virtio --import --noautoconsol

5. 壓縮qcow2鏡像

以下在目標(biāo)虛擬機(jī)內(nèi)執(zhí)行

# 需要對(duì)虛擬機(jī)系統(tǒng)對(duì)剩余空間寫(xiě)零操作:
dd if=/dev/zero of=/tmp/zero.img 
刪除 zero.img:
rm /tmp/zero.img

完成上述步驟后,關(guān)閉虛擬機(jī),以下在宿主機(jī)機(jī)內(nèi)執(zhí)行

qemu-img convert -c -O qcow2 /path/old.qcow2 /path/new.qcow2

最后備份old.qcow2,將new.qcow2重命名為old.qcow2 啟動(dòng)測(cè)試,一切正常之后刪除原始的鏡像就結(jié)束了。

6. virsh常用命令

1、查看在運(yùn)行的虛擬機(jī)
virsh list

2、查看創(chuàng)建的所有虛擬機(jī)
virsh list --all

3、啟動(dòng)虛擬機(jī)
virsh start win10   # win10是虛擬機(jī)的domain名稱,下同。

4、掛起虛擬機(jī)
virsh suspend win10

5、恢復(fù)被掛起的虛擬機(jī)
virsh resume win10

6、開(kāi)機(jī)啟動(dòng)虛擬機(jī),即在虛擬機(jī)服務(wù)(libvirt)啟動(dòng)的時(shí)候,就啟動(dòng)虛擬機(jī)。
virsh autostart win10

7、關(guān)閉開(kāi)機(jī)啟動(dòng)虛擬機(jī)
virsh auto start --disable win10

8、關(guān)閉虛擬機(jī)(需要ACPID服務(wù)的支持,ACPI是Advanced Configuration and PowerInterface縮寫(xiě),高級(jí)配置和電源管理接口)
virsh shutdown win10

9、強(qiáng)制關(guān)閉虛擬機(jī),這種方式是從virsh list列表中將虛擬機(jī)刪除,仍然可以start起來(lái)
virsh destory win10

10、啟動(dòng)默認(rèn)的網(wǎng)絡(luò)
virsh net-start default

11、自啟動(dòng)默認(rèn)網(wǎng)絡(luò)
virsh net-autostart default

12、徹底刪除虛擬機(jī)步驟
1)關(guān)閉虛擬機(jī):virsh destroy win10
2)刪除定義:virsh undefine win10
3)刪除虛擬機(jī)文件(在/var/lib/libvirtd/下的相關(guān)文件)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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