搭建環境 : CentOS 7linux
[root@KVM ~]# systemctl stop firewalld [root@KVM ~]# systemctl disable firewalld [root@KVM ~]# grep -Ei 'vmx|svm' /proc/cpuinfo # 過濾出vmx或svm關鍵字就表明支持虛擬化,vmx是Intel的CPU,svm是AMD的CPU
格式化新磁盤,並掛載vim
[root@KVM ~]# fdisk -l [root@KVM ~]# mkfs.ext4 /dev/sdb # 會有詢問,輸入y便可 [root@KVM ~]# blkid /dev/sdb # 檢查是否已格式化 /dev/sdb: UUID="a2600993-bde6-4d85-bc3e-724f45ff9ae3" TYPE="ext4" [root@KVM ~]# mkdir /kvm_data # 建立掛載目錄 [root@KVM ~]# mount /dev/sdb /kvm_data # 將新磁盤掛載到/kvm_data目錄下 [root@KVM ~]# vim /etc/fstab # 設置開機自動掛載 # 添加 /dev/sdb /kvm_data/ ext4 defaults 0 0
安裝kvm網絡
[root@KVM ~]# yum -y install virt-* libvirt bridge-utils qemu-img
配置網卡oop
[root@KVM ~]# cd /etc/sysconfig/network-scripts/ [root@KVM network-scripts]# cp ifcfg-ens33 ifcfg-br0
[root@KVM network-scripts]# vim ifcfg-ens33 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes NAME=ens33 DEVICE=ens33 ONBOOT=yes
BRIDGE=br0 # 添加 # 而後把IP MASK DNS都刪掉便可 TYPE=bridge # 修改網卡類型 PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no NAME=br0 # 網卡名 DEVICE=br0 ONBOOT=yes IPADDR=192.168.94.22 PREFIX=24 GATEWAY=192.168.94.2
[root@KVM ~]# systemctl restart network
查看網卡信息ui
[root@KVM ~]# ifconfig br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.94.22 netmask 255.255.255.0 broadcast 192.168.94.255 inet6 fe80::20c:29ff:fe6b:dbdc prefixlen 64 scopeid 0x20<link> ether 00:0c:29:6b:db:dc txqueuelen 1000 (Ethernet) RX packets 94 bytes 9027 (8.8 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 66 bytes 9105 (8.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ether 00:0c:29:6b:db:dc txqueuelen 1000 (Ethernet) RX packets 329996 bytes 478088865 (455.9 MiB) RX errors 0 dropped 1 overruns 0 frame 0 TX packets 66181 bytes 4835367 (4.6 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 611 bytes 75976 (74.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 611 bytes 75976 (74.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
啓動KVM的服務spa
[root@KVM ~]# lsmod |grep kvm # 檢查KVM模塊是否加載 kvm_intel 174841 0 kvm 578518 1 kvm_intel irqbypass 13503 1 kvm [root@KVM ~]# systemctl start libvirtd # 啓動libvirtd服務 [root@KVM ~]# brctl show bridge name bridge id STP enabled interfaces br0 8000.000c296bdbdc no ens33 # 咱們配置的橋接網卡 virbr0 8000.525400d2488d yes virbr0-nic # NAT模式的網卡
[root@KVM ~]# cd /tmp/ [root@KVM tmp]# ls CentOS-7-x86_64-DVD-1804.iso # 準備好的鏡像 systemd-private-a5de49561f874704a8ab299e79927293-chronyd.service-bhemHv systemd-private-a5de49561f874704a8ab299e79927293-named.service-URqlBG systemd-private-cc88880270574599942110f66e3eae19-systemd-hostnamed.service-c0VlU8
安裝這個CentOS7鏡像文件操作系統
[root@KVM tmp]# virt-install \ --name=damowang \ --memory=512,maxmemory=1024 \ --vcpus=1,maxvcpus=2 \ --os-type=linux \ --os-variant=rhel7 \ --location=/tmp/CentOS-7-x86_64-DVD-1804.iso \ --disk path=/kvm_data/damowang.img,size=10 \ --bridge=br0 \ --graphics=none \ --console=pty,target_type=serial \ --extra-args="console=tty0 console=ttyS0"
--name 指定虛擬機的名稱命令行
--memory 指定分配給虛擬機的內存資源大小3d
maxmemory 指定可調節的最大內存資源大小,由於KVM支持熱調整虛擬機的資源rest
--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裏是圖形界面
首先設置語言,按數字1,回車進入如下界面 輸入回車後再輸入68
而後選擇1 簡體中文
配置完成以後又會再次回到配置界面,下面輸入2 設置時區
選擇設置時區,設置亞洲時區
回車後選擇上海時區
輸入5 ,設置系統安裝盤
選擇c繼續
默認選項便可 , c繼續
選擇標準分區
輸入c , 繼續
輸入8 ,設置超級用戶密碼
輸入b, 開始安裝
安裝完成後回自動重啓
重啓成功以後就會進入到登陸界面
登陸
如今是一個虛擬終端,按 Ctrl + ] 能夠切出來
/kvm_data下面多了一個鏡像文件
[root@KVM tmp]# ll /kvm_data/ 總用量 1377968 -rw------- 1 qemu qemu 10739318784 9月 9 21:03 damowang.img drwx------ 2 root root 16384 9月 9 17:46 lost+found
查看虛擬機狀態
[root@KVM tmp]# virsh list # 查看當前運行中的虛擬機 Id 名稱 狀態 ---------------------------------------------------- 2 damowang running [root@KVM tmp]# virsh list --all # 列出全部虛擬機包括關機狀態的 Id 名稱 狀態 ---------------------------------------------------- 2 damowang running
查看虛擬機配置文件
[root@KVM tmp]# ls /etc/libvirt/qemu/ damowang.xml networks [root@KVM tmp]# ls /etc/libvirt/qemu/networks/ autostart default.xml [root@KVM tmp]# ls /etc/libvirt/qemu/networks/autostart/ default.xml
管理虛擬機的經常使用命令
[root@KVM tmp]# virsh list Id 名稱 狀態 ---------------------------------------------------- 2 damowang running [root@KVM tmp]# virsh console 2 # 進入指定的虛擬機,進入的時候還須要按一下回車 能夠用虛擬機id 能夠用名稱 鏈接到域 damowang 換碼符爲 ^] [root@localhost ~]# [root@KVM tmp]# virsh shutdown 2 # 關閉虛擬機 域 2 被關閉 [root@KVM tmp]# virsh start damowang # 啓動虛擬機 域 damowang 已開始 [root@KVM tmp]# virsh autostart damowang # 設置宿主機開機時該虛擬機也開機 域 damowang標記爲自動開始 [root@KVM tmp]# virsh autostart --disable damowang # 解除開機啓動 域 damowang取消標記爲自動開始 [root@KVM tmp]# virsh suspend damowang # 掛起虛擬機 域 damowang 被掛起 [root@KVM tmp]# virsh resume damowang # 恢復掛起的虛擬機 域 damowang 被從新恢復 [root@KVM tmp]# virsh undefine damowang # 完全銷燬虛擬機,會刪除虛擬機配置文件,但不會刪除虛擬磁盤
爲虛擬機配置IP ,而後就能夠正常使用了
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes NAME=eth0 UUID=1582ada4-4c42-4dab-84e2-f7075fc66d3f DEVICE=eth0 ONBOOT=yes IPADDR=192.168.94.111 NETMASK=255.255.255.0 GATEWAY=192.168.94.2 DNS1=192.168.94.2 [root@localhost ~]# systemctl restart network [root@localhost ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 52:54:00:6a:5b:46 brd ff:ff:ff:ff:ff:ff inet 192.168.94.111/24 brd 192.168.94.255 scope global noprefixroute eth0 valid_lft forever preferred_lft forever inet6 fe80::5054:ff:fe6a:5b46/64 scope link valid_lft forever preferred_lft forever