下面是小凰凰的簡介,看下吧!
💗人生態度:珍惜時間,渴望學習,熱愛音樂,把握命運,享受生活
💗學習技能:網絡 -> 雲計算運維 -> python全棧( 當前正在學習中)
💗您的點贊、收藏、關注是對博主創作的最大鼓勵,在此謝過!
有相關技能問題可以寫在下方評論區,我們一起學習,一起進步。
後期會不斷更新python全棧學習筆記,秉着質量博文爲原則,寫好每一篇博文。
文章目錄
1、準備工作
一臺vmware fusion虛擬機:
虛擬機中準備一個Centos7的鏡像:
打開intel VT:
2、關閉防火牆、selinux
systemctl stop firewalld
sed -i '/SELINUX/s/enforcing/disabled/g' /etc/selinux/config
3、檢查當前vmware fusion虛擬機是否支持kvm
grep -E '\<vmx\>|\<svm\>' /proc/cpuinfo # \<錨定單詞開始,\> 錨定單詞借宿
或者
grep -E '(vmx|svm)' /proc/cpuinfo
出現這個就說明是支持kvm的
。沒有這個要麼就是intel VT沒有打開,要麼就是bios沒有開啓對硬件虛擬化的支持!
4、安裝qemu-kvm、libvirt、virt-install
# 軟件包用途說明
qemu-kvm:主要的KVM程序包,該軟件包主要包含KVM內核模塊和基於KVM重構後的QEMU模擬器。KVM模塊作爲整個虛擬化環境的核心工作在系統空間,負責CPU和內存的調度。QEMU作爲模擬器工作在用戶空間,負責虛擬機I/O模擬。
libvirt:提供Hypervisor和虛擬機管理的API。
virt-install:創建和克隆虛擬機的命令行工具包。
# 安裝命令
yum install qemu-kvm libvirt -y
5、啓動libvirtd
systemctl start libvirtd && systemctl enable libvirtd
啓動後可以看到網卡多了一個virbr0的網口,這個是libvirt默認的nat網口
(默認IP是192.168.122.1),在更新的版本會發現有virbr0-nic、vnet0等網口,這些都是給虛擬機用的網口。
6、創建虛擬機
(1)創建kvm虛擬機所用的磁盤
qemu-img create -f raw /mnt/CentOS-7.4-x86_64.raw 10G # 硬盤大小爲10G,格式爲raw
(2)使用ISO鏡像進行安裝
virt-install --virt-type kvm --name Centos7.4 --ram 1024 --location=/mnt/CentOS-7.4-x86_64-DVD-1708.iso --disk=/mnt/CentOS-7.4-x86_64.raw --network default --graphics none --extra-args='console=ttyS0' --force
–network default默認採用的橋接模式就是基於nat的橋接模式,即默認採用libvirt生成的virbr0網卡
# 採用橋接模式(只需要改下--network參數即可)
--network bridge=br0
這裏的br0爲橋接網卡,需要自己創建,具體的創建方法後面會介紹!'也可以直接--network bridge=virbr0,開啓libvirt時,就爲你創建好了的網卡。'橋接模式採用的是nat地址轉換協議!
像[x]這種就是配置成功了的,[!]就是還沒配置好,需要配置的,輸入前面的編號即可進入配置界面
這樣就全部配置成功了,輸入b開始安裝!。7和9是可選配置。最開始我們root沒有配置密碼,因此這裏也是[!],配置完root之後這裏就會變成可選配置
成功!!
7、kvm基本配置
配置網絡:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=dhcp
DEVICE=eth0
NM_CONTROLLED=no
ONBOOT=yes
PERSISTENT_DHCLIENT=yes
TYPE=Ethernet
USERCTL=no
#去掉mac、UUID等,因爲我們的kvm不是給一個用戶用的,而是給大量雲計算用戶用的,不能把這些規定死!
你去看阿里雲的線上雲主機都沒有這些。
systemctl restart network
成功!!
8、libvirtd的virsh工具對虛擬機的基本管理操作
1. 查看已安裝的虛擬機
virsh list --all
2. 啓動虛擬機
virsh start centos7
3. 關閉虛擬機
virsh shutdown centos7
4. 刪除虛擬機
virsh destroy centos7
virsh undefine centso7
# 無重啓虛擬機
9、已經安裝虛擬機的信息保存在哪裏
/etc/libvirt/qemu/
這個目錄下保存已經安裝虛擬機的信息。
10、virt-install命令詳解
optional arguments:
-h, --help show this help message and exit
--version show program's version number and exit
--connect URI 通過 libvirt URI 連接到虛擬機管理程序
通用選項:
-n NAME, --name NAME 客戶機實例名稱
--memory MEMORY Configure guest memory allocation. Ex:
--memory 1024 (in MiB)
--memory 512,maxmemory=1024
--memory 512,maxmemory=1024,hotplugmemorymax=2048,hotplugmemoryslots=2
--vcpus VCPUS 配置客戶機虛擬 CPU(vcpu) 數量。例如:
--vcpus 5
--vcpus 5,maxcpus=10,cpuset=1-4,6,8
--vcpus sockets=2,cores=4,threads=2
--cpu CPU CPU model and features. Ex:
--cpu coreduo,+x2apic
--cpu host-passthrough
--cpu host
--metadata METADATA 配置客戶機元數據。例如:
--metadata name=foo,title="My pretty title",uuid=...
--metadata description="My nice long description"
安裝方法選項:
--cdrom CDROM 光驅安裝介質
-l LOCATION, --location LOCATION
安裝源 (例如:nfs:host:/path, http://host/path,
ftp://host/path)
--pxe 使用 PXE 協議從網絡引導
--import 在已有的磁盤鏡像中構建客戶機
--livecd 將光驅介質視爲 Live CD
-x EXTRA_ARGS, --extra-args EXTRA_ARGS
將附加參數添加到由 --location
引導的內核中
--initrd-inject INITRD_INJECT
添加指定文件到由 --location 指定的 initrd
根中
--os-variant DISTRO_VARIANT
在客戶機上安裝的操作系統,例如:'fedor
a18'、'rhel6'、'winxp' 等。
--boot BOOT 配置客戶機引導設置。例如:
--boot hd,cdrom,menu=on
--boot init=/sbin/init (針對容器)
--idmap IDMAP 爲 LXC 容器啓用用戶名稱空間。例如:
--idmap uid_start=0,uid_target=1000,uid_count=10
設備選項:
--disk DISK 指定存儲的各種選項。例如:
--disk size=10 (在默認位置創建 10GiB 鏡像)
--disk /my/existing/disk,cache=none
--disk device=cdrom,bus=scsi
--disk=?
-w NETWORK, --network NETWORK
配置客戶機網絡接口。例如:
--network bridge=mybr0
--network network=my_libvirt_virtual_net
--network network=mynet,model=virtio,mac=00:11...
--network none
--network help
--graphics GRAPHICS 配置客戶機顯示設置。例如:
--graphics vnc
--graphics spice,port=5901,tlsport=5902
--graphics none
--graphics vnc,password=foobar,port=5910,keymap=ja
--controller CONTROLLER
配置客戶機控制器設備。例如:
--controller type=usb,model=ich9-ehci1
--input INPUT 配置客戶機輸入設備。例如:
--input tablet
--input keyboard,bus=usb
--serial SERIAL 配置客戶機串口設備
--parallel PARALLEL 配置客戶機並口設備
--channel CHANNEL 配置客戶機通信通道
--console CONSOLE 配置文本控制檯連接主機與客戶機
--hostdev HOSTDEV 配置物理 USB/PCI 等主機設備與客戶機共享
--filesystem FILESYSTEM
傳遞主機目錄到客戶機。例如:
--filesystem /my/source/dir,/dir/in/guest
--filesystem template_name,/,type=template
--sound [SOUND] 配置客戶機聲音設備仿真
--watchdog WATCHDOG 配置客戶機 watchdog 設備
--video VIDEO 配置客戶機視頻硬件。
--smartcard SMARTCARD
配置客戶機智能卡設備。例如:
--smartcard mode=passthrough
--redirdev REDIRDEV 配置客戶機重定向設備。例如:
--redirdev usb,type=tcp,server=192.168.1.1:4000
--memballoon MEMBALLOON
配置客戶機 memballoon 設備。例如:
--memballoon model=virtio
--tpm TPM 配置客戶機 TPM 設備。例如:
--tpm /dev/tpm
--rng RNG Configure a guest RNG device. Ex:
--rng /dev/urandom
--panic PANIC 配置客戶機 panic 設備。例如:
--panic default
--memdev MEMDEV Configure a guest memory device. Ex:
--memdev dimm,target_size=1024
客戶機配置選項:
--security SECURITY 設置域安全驅動配置。
--cputune CPUTUNE Tune CPU parameters for the domain process.
--numatune NUMATUNE 爲域進程調整 NUMA 策略。
--memtune MEMTUNE 爲域進程調整內存策略。
--blkiotune BLKIOTUNE
爲域進程調整 blkio 策略。
--memorybacking MEMORYBACKING
爲域進程設置內存後備策略。例如:
--memorybacking hugepages=on
--features FEATURES 設置域 <features> XML。例如:
--features acpi=off
--features apic=on,eoi=on
--clock CLOCK 設置域 <clock> XML。例如:
--clock offset=localtime,rtc_tickpolicy=catchup
--pm PM 配置 VM 電源管理功能
--events EVENTS 配置 VM 生命週期管理策略
--resource RESOURCE 配置 VM 資源分區(cgroups)
--sysinfo SYSINFO Configure SMBIOS System Information. Ex:
--sysinfo emulate
--sysinfo host
--sysinfo bios_vendor=Vendor_Inc.,bios_version=1.2.3-abc,...
--sysinfo system_manufacturer=System_Corp.,system_product=Computer,...
--sysinfo baseBoard_manufacturer=Baseboard_Corp.,baseBoard_product=Motherboard,...
--qemu-commandline QEMU_COMMANDLINE
Pass arguments directly to the qemu emulator. Ex:
--qemu-commandline='-display gtk,gl=on'
--qemu-commandline env=DISPLAY=:0.1
虛擬化平臺選項:
-v, --hvm 這個客戶機應該是一個全虛擬化客戶機
-p, --paravirt 這個客戶機應該是一個半虛擬化客戶機
--container 這個客戶機應該是一個容器客戶機
--virt-type HV_TYPE 要使用的管理程序名稱 (kvm, qemu, xen, ...)
--arch ARCH 模擬 CPU 架構
--machine MACHINE 機器類型爲仿真類型
其它選項:
--autostart 主機啓動時自動啓動域。
--transient Create a transient domain.
--wait WAIT 請等待數分鐘以便完成安裝。
--noautoconsole 不要自動嘗試連接到客戶端控制檯
--noreboot 安裝完成後不啓動客戶機。
--print-xml [XMLONLY]
打印生成的 XML 域,而不是創建客戶機。
--dry-run 運行安裝程序,但不創建設備或定義客戶
機。
--check CHECK 啓用或禁用驗證檢查。例如:
--check path_in_use=off
--check all=off
-q, --quiet 抑制非錯誤輸出
-d, --debug 輸入故障排除信息