KVM環境下制作CentOS7 qcow2格式鏡像


下面介紹CentOS7 KVM環境下制作CentOS7 qcow2格式鏡像

如果是CentOS7 KVM環境是VMware虛擬機,需要CPU開啟虛擬化

 

 

1、配置yum鏡像源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
yum clean all
yum makecache

2、安裝kvm qemu-img libvirt kvm虛擬化所需環境組件

yum -y install qemu-kvm  qemu-img kvm qemu-kvm-tools libvirt  bridge-utils
另外還需要安裝virt-*
yum install virt-*

 

3、啟動libvirtd

systemctl enable libvirtd
systemctl start libvirtd
echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf
sysctl -p

4、上傳原版CentOS ISO鏡像到/data目錄

5、先創建qcow2鏡像文件

qemu-img create -f qcow2 /data/CentOS7_mini.qcow2 20G

6、創建KVM虛擬機

virt-install --name CentOS7_mini --ram 4096 --vcpus 4 --os-type linux --os-variant rhel7 --arch=x86_64 --network network=default,model=virtio --disk path=/data/CentOS7_mini.qcow2,format=qcow2 --location /data/CentOS-7-x86_64-Minimal-1908.iso --console pty,target_type=serial   --graphics vnc,listen=0.0.0.0,port=7788

使用UltraVNC工具連接宿主機的VNC:7788端口,並完成系統的安裝,就不詳細介紹安裝步驟了

 

 

 系統安裝略... 安裝完后 reboot。

注意點擊reboot,注意並不會重啟,需要我們手動啟動:

  1. virsh list --all 查看鏡像

  2. virsh start xxx 啟動鏡像

7、等待虛擬機安裝完后,登錄查看相關IP磁盤分區信息

 vnc連接宿主機7788端口

 

 

8、ssh登錄虛擬機進行定制、優化等等(可以省略)

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
yum install -y acpid net-tools
sed -i '/UUID/d' /etc/sysconfig/network-scripts/ifcfg-eth*
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
systemctl disable firewalld
systemctl stop firewalld

9、安裝ACPI服務

啟動后,你可能需要手動配置你的虛擬機的網絡。為了讓虛擬化層能重啟和關閉虛擬機,必須在虛擬機內安裝並運行 acpid 服務。
在 CentOS虛擬機內運行以下命令安裝 ACPI 服務並配置為系統啟動時自動啟動。

# yum install acpid
# systemctl enable acpid

 

10、配置獲取metadata

yum install cloud-init

10、清除MAC地址信息

操作系統會在/etc/sysconfig/network-scripts/ifcfg-eth0 和
/etc/udev/rules.d/70-persistent-net.rules 這類文件記錄下網卡MAC地址,但是,虛擬機的網卡MAC地址在每次虛擬機創建的時候都會不同,因此這些信息必須從配置文件刪除掉。

 

11、其他標准化操作..略

12、收尾工作

最后,你可以關閉虛擬機了,如果以后不在需要該虛擬機也可以直接刪除。建議是保留,方便后期進行虛擬機鏡像的定制。

 

13、定制化之后關機

history -c
poweroff

14、virt-sysprep -d 清理機器信息

#如果沒有virtsysprep命令,安裝下
yum whatprovides */virt-sysprep
yum install libguestfs-tools -y
#清理虛機信息
virt-sysprep -d 虛擬機名
virt-sysprep -d CentOS7_mini

15、virt-sparsify compress壓縮鏡像

    virt-sparsify時可能因為默認的/tmp空間不足,會提示tmp不足,可以提前定義好tmp目錄

mkdir /data/tmp
chmod 777 /data/tmp/
export TEMP=/data/tmp
export TMPDIR=/data/tmp
echo 'export TEMP=/data/tmp' >> /etc/profile
echo 'export TMPDIR=/data/tmp' >> /etc/profile
source /etc/profile

#鏡像壓縮
virt-sparsify --compress /data/CentOS7_mini.qcow2 /data/centos7_mongodb4.2.qcow2
ls
#查看壓縮后的鏡像文件
2.4G    CentOS7_mini.qcow2
1.1G    centos7_mongodb4.0.qcow2

可以看到壓縮后的centos7_mongodb4.0.qcow2文件只有1.1G左右(備注,我這個系統鏡像搭載了mongodb服務,不是單純的系統鏡像)

16、測試鏡像文件

#測試鏡像是否可用
virt-install --virt-type kvm --name liuxd_image --ram 4096 --vcpus=4 \
 --import \
 --disk path=/data/centos7_mongodb4.0.qcow2,format=qcow2 \
--network network=default,model=virtio \
 --graphics vnc,listen=0.0.0.0,port=7799 \
 --os-type=linux

vnc連接登錄后,qcow2鏡像正常可用,那么qcow2鏡像就制作完成了

 

17、上傳鏡像到Glance

# glance image-create --name "CentOS-7-x86_64" --disk-format qcow2 --container-format bare --file /tmp/CentOS-7-x86_64.qcow2 --visibility public --progress

 

18、備注相關

通過virt-install 安裝鏡像后,后面啟動鏡像,直接 virsh start image-name即可。
#查詢鏡像
virsh list --all
#啟動鏡像
virsh start xxx
#網絡
通過橋接的方式,宿主機可以和虛機直接通信。
查看宿主機網絡,可以看到有一個 virbr0 ,虛機的網段跟他是一個網段。
 
         

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM