#將原來的鏡像備份 cd /etc/yum.repos.d/ mkdir back mv CentOS-Base.repo ./back/ # 安裝阿里的鏡像 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python python-virtinst libvirt-client virt-install virt-viewer -y yum install -y virt-* libvirt bridge-utils qemu-img
安裝包的解釋
qemu-kvm:qemu模擬器 qemu-img:qemu磁盤image管理器 virt-install:用來創建虛擬機命令的工具 libvirt:提供libvirtd daemon來管理虛擬機和控制hypervisor libvirt-client:提供客戶端Api用來訪問server和提供管理虛擬機命令行工具的virsh實體 virt-viewer:圖形控制台
校驗
# lsmod命令用於顯示已載入系統的模塊。 lsmod | grep kvm kvm_intel 188644 0 kvm 621480 1 kvm_intel irqbypass 13503 1 kvm
systemctl start libvirtd # 開啟kvm
systemctl enable libvirtd # 開機自啟
查看kvm運行的狀態
systemctl status libvirtd Unit vlibvitd.service could not be found. [root@bogon yum.repos.d]# systemctl status libvirtd ● libvirtd.service - Virtualization daemon Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2019-09-26 14:37:09 CST; 18min ago Docs: man:libvirtd(8) https://libvirt.org Main PID: 42596 (libvirtd) Tasks: 19 (limit: 32768) CGroup: /system.slice/libvirtd.service ├─ 3501 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/... ├─ 3503 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/... └─42596 /usr/sbin/libvirtd Sep 26 14:37:09 bogon systemd[1]: Starting Virtualization daemon... Sep 26 14:37:09 bogon systemd[1]: Started Virtualization daemon. Sep 26 14:37:10 bogon dnsmasq[3501]: read /etc/hosts - 2 addresses Sep 26 14:37:10 bogon dnsmasq[3501]: read /var/lib/libvirt/dnsmasq/default.addnhosts - 0 addresses Sep 26 14:37:10 bogon dnsmasq-dhcp[3501]: read /var/lib/libvirt/dnsmasq/default.hostsfile
進入/etc/sysconfig/network-scripts,將em2網卡備份
修改em2網卡
TYPE=Ethernet BRIDGE=br0 # 新加的 PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=em2 UUID=0cd14e14-7382-4e79-b607-d72ca5594041 DEVICE=em2 ONBOOT=yes #HWADDR=44:A8:42:4A:BF:3C
創建br0網卡寫如下內容,或將em2網卡的配置文件復制一份給br0網卡並修改
TYPE=Bridge PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=br0 #UUID=0cd14e14-7382-4e79-b607-d72ca5594041 DEVICE=br0 ONBOOT=yes IPADDR="192.168.13.223" PREFIX="24" GATEWAY="192.168.13.1"
virt-install --name=node9 --memory=14000,maxmemory=14336 --vcpus=6,maxvcpus=5 --os-type=linux --os-variant=rhel7 --location=/iso/CentOS-7-x86_64-DVD-1908.iso --disk path=/kvm/node9.img,size=1500 --bridge=br0 --graphics=none --console=pty,target_type=serial --extra-args="console=tty0 console=ttyS0" 命令說明: --name 指定虛擬機的名稱 --memory 指定分配給虛擬機的內存資源大小 maxmemory 指定可調節的最大內存資源大小,因為KVM支持熱調整虛擬機的資源 --vcpus 指定分配給虛擬機的CPU核心數量 maxvcpus 指定可調節的最大CPU核心數量 --os-type 指定虛擬機安裝的操作系統類型 --os-variant 指定系統的發行版本 --location 指定ISO鏡像文件所在的路徑,支持使用網絡資源路徑,也就是說可以使用URL --disk path 指定虛擬硬盤所存放的路徑及名稱,size 則是指定該硬盤的可用大小,單位是G --bridge 指定使用哪一個橋接網卡,也就是說使用橋接的網絡模式 --graphics 指定是否開啟圖形 --console 定義終端的屬性,target_type 則是定義終端的類型 --extra-args 定義終端額外的參數
開始安裝后,正常的情況下會進入到這樣一個界面:
這是讓你配置語言、時區、安裝源、網絡、密碼等信息,就和我們在VMware里安裝CentOS虛擬機是一樣的,只不過這個是命令行形式,而VMware里是圖形界面罷了。
例如我要選Chinese就按數字68並回車即可,回車之后會讓你選擇是中文簡體還是繁體,也是按下相應的數字並回車即可:
配置完成之后又會再次回到配置界面,這次我們來設置時區:
設置系統安裝盤:
最后開始安裝系統:
安裝完成之后就會停止在以下這個界面,按一下回車即可,這時就會重啟安裝完的系統:
[root@localhost ~]# ls /etc/libvirt/qemu/ networks node1.xml [root@localhost ~]# ls /etc/libvirt/qemu/networks/ autostart default.xml [root@localhost ~]# ls /etc/libvirt/qemu/networks/autostart/ default.xml [root@localhost ~]#
重啟成功之后就會入到登錄界面,可以看到我這里是成功登錄的:
dhclient eth0 # 為虛擬機分配ip
編輯網卡配置文件將ip設置為靜態的
systemctl restart network # 重啟網絡服務
安裝好虛擬機的配置
iptables -F systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i s/SELINUX=enforcing/SELINUX=disabled/ /etc/selinux/config systemctl stop NetworkManager systemctl disable NetworkManager yum -y install vim
管理虛擬機的常用命令
# virsh list //查看已打開虛擬機列表 # virsh list --all //查看所有虛擬機列表 # virsh version //查看virsh版本號 # virsh start node1 //啟動node1虛擬機 # virsh shutdown node1 //關機node1虛擬機 # virsh destroy node1 //強制關機node1虛擬機 # virsh dumpxml node1 > node1.xml //導出node1虛擬機配置文件 # virsh undefine node1 //取消node1定義 # virsh define node1.xml //重新定義node1 # virsh autostart node1 //設置開機自啟動node1 # virt-clone -o node1 -n node1-clone-f /data/images/node1-clone.img //克隆虛擬機 [root@localhost ~]# virsh console node1 # 進入指定的虛擬機,進入的時候還需要按一下回車