•KVM模塊直接整合在Linux內核中node
•虛擬機建立 •虛擬機內存分配 •虛擬機CPU寄存器讀寫 •虛擬CPU運行
•模擬PC硬件的用戶控件組件 •提供I/O設備模型及訪問外設的途徑
•客戶模式: 虛擬機 •用戶設置: 設置 •內核模式: KVM Driver 內核態
開啓虛擬機的虛擬化linux
[root@localhost ~]# fdisk -l 磁盤 /dev/sdb:107.4 GB, 107374182400 字節,209715200 個扇區 Units = 扇區 of 1 * 512 = 512 bytes 扇區大小(邏輯/物理):512 字節 / 512 字節 I/O 大小(最小/最佳):512 字節 / 512 字節 磁盤 /dev/sda:42.9 GB, 42949672960 字節,83886080 個扇區 Units = 扇區 of 1 * 512 = 512 bytes 扇區大小(邏輯/物理):512 字節 / 512 字節 I/O 大小(最小/最佳):512 字節 / 512 字節 磁盤標籤類型:dos 磁盤標識符:0x000be35b 設備 Boot Start End Blocks Id System /dev/sda1 * 2048 12584959 6291456 83 Linux /dev/sda2 12584960 54527999 20971520 83 Linux /dev/sda3 54528000 62916607 4194304 82 Linux swap / Solaris /dev/sda4 62916608 83886079 10484736 5 Extended /dev/sda5 62918656 83886079 10483712 83 Linux [root@localhost ~]# fdisk /dev/sdb 歡迎使用 fdisk (util-linux 2.23.2)。 更改將停留在內存中,直到您決定將更改寫入磁盤。 使用寫入命令前請三思。 Device does not contain a recognized partition table 使用磁盤標識符 0xc2432934 建立新的 DOS 磁盤標籤。 命令(輸入 m 獲取幫助):n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p 分區號 (1-4,默認 1): 起始 扇區 (2048-209715199,默認爲 2048): 將使用默認值 2048 Last 扇區, +扇區 or +size{K,M,G} (2048-209715199,默認爲 209715199): 將使用默認值 209715199 分區 1 已設置爲 Linux 類型,大小設爲 100 GiB 命令(輸入 m 獲取幫助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盤。 [root@localhost ~]# [root@localhost ~]# mkfs /dev/sdb1 mke2fs 1.42.9 (28-Dec-2013) 文件系統標籤= OS type: Linux 塊大小=4096 (log=2) 分塊大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 6553600 inodes, 26214144 blocks 1310707 blocks (5.00%) reserved for the super user 第一個數據塊=0 Maximum filesystem blocks=4294967296 800 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872 Allocating group tables: 完成 正在寫入inode表: 完成 Writing superblocks and filesystem accounting information: 完成 [root@localhost ~]# mkdir /data [root@localhost ~]# mount /dev/sdb1 /data/ [root@localhost ~]# df -hT 文件系統 類型 容量 已用 可用 已用% 掛載點 /dev/sda2 xfs 20G 3.3G 17G 17% / devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs tmpfs 1.9G 9.0M 1.9G 1% /run tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/sda5 xfs 10G 37M 10G 1% /home /dev/sda1 xfs 6.0G 174M 5.9G 3% /boot tmpfs tmpfs 378M 12K 378M 1% /run/user/42 tmpfs tmpfs 378M 0 378M 0% /run/user/0 /dev/sdb1 ext2 99G 60M 94G 1% /data [root@localhost ~]#
[root@localhost ~]# mount.cifs //192.168.100.100/tools /mnt/ Password for root@//192.168.100.100/tools: [root@localhost ~]#
[root@localhost ~]# yum groupinstall "GNOME Desktop" -y ##安裝桌面環境 [root@localhost ~]# yum install qemu-kvm -y ##KVM模塊 [root@localhost ~]# yum install qemu-kvm-tools -y ##KVM調試工具 [root@localhost ~]# yum install virt-install -y ##構建虛擬機的命令行工具 [root@localhost ~]# yum install qemu-img -y ##qemu組件,建立磁盤,啓動虛擬機 [root@localhost ~]# yum install bridge-utils -y ##網絡支持工具 [root@localhost ~]# yum install libvirt -y ##虛擬機管理工具 [root@localhost ~]# yum install virt-manager -y ##圖像化管理虛擬機
[root@localhost ~]# lsmod | grep kvm kvm_intel 170086 0 kvm 566340 1 kvm_intel irqbypass 13503 1 kvm [root@localhost ~]#
cat /proc/cpuinfo | grep svm ##AMD服務器可用 cat /proc/cpuinfo | grep vmx ##inter服務器可用 egrep '(vmx|svm)' /proc/cpuinfo ##二者均可用
#開啓服務 [root@localhost ~]# systemctl start libvirtd #開機自啓動 [root@localhost ~]# systemctl enable libvirtd
[root@localhost ~]# cd /data/ #建立兩個文件 [root@localhost data]# mkdir vdisk viso #複製並調到後臺運行 [root@localhost data]# cp -r /mnt/CentOS-7-x86_64-DVD-1708.iso /data/viso & [1] 29318 [root@localhost data]# [1]+ 完成 cp -i -r /mnt/CentOS-7-x86_64-DVD-1708.iso /data/viso [root@localhost data]# ls viso/ CentOS-7-x86_64-DVD-1708.iso [root@localhost data]#
#進入網卡文件 [root@localhost data]# cd /etc/sysconfig/network-scripts/ #複製建立br0網卡 [root@localhost network-scripts]# cp -p ifcfg-ens33 ifcfg-br0 #進入ens33網卡,設置橋接命令 [root@localhost network-scripts]# vim ifcfg-ens33 ##末行添加 #橋接命令 BRIDGE=br0 #配置橋接網卡,將橋接網卡設置爲靜態的地址 [root@localhost network-scripts]# vim ifcfg-br0 TYPE=bridge PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static 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=br0 DEVICE=br0 ONBOOT=yes IPADDR=192.168.52.134 NETMASK=255.255.255.0 GATEWAY=192.168.52.1 [root@localhost network-scripts]# systemctl restart network ##重啓網卡 [root@localhost network-scripts]# ifconfig ##查看網卡信息 br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.52.134 netmask 255.255.255.0 broadcast 192.168.52.255 inet6 fe80::69d9:68eb:e59e:c66f prefixlen 64 scopeid 0x20<link> ether 00:0c:29:eb:34:07 txqueuelen 1000 (Ethernet) RX packets 14 bytes 1274 (1.2 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 29 bytes 4473 (4.3 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:eb:34:07 txqueuelen 1000 (Ethernet) RX packets 3356082 bytes 4925169168 (4.5 GiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 227829 bytes 18565675 (17.7 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost ~]# virt-manager