系統:CentOS7 64位
cat /etc/redhat-release
安裝KVM
yum install qemu-kvm libvirt virt-install bridge-utils
lsmod |grep kvm
配置KVM虛擬機橋接網絡
[root@extp ~]# nmcli c add type bridge autoconnect yes con-name br0 ifname br0 #添加虛擬橋接網卡br0
[root@extp ~]# nmcli c modify br0 ipv4.addresses "192.168.0.244/24 192.168.0.1" ipv4.method manual #設置虛擬網卡ip和網關
[root@extp ~]# nmcli c modify br0 ipv4.dns 192.168.0.1 #設置DNS 192.168.0.1
[root@extp ~]# nmcli c delete enp3s0 #刪除當前網絡配置 enp3s0 是我的網路標示,在CentOS 6是eth0
[root@extp ~]# nmcli c add type bridge-slave autoconnect yes con-name enp3s0 ifname enp3s0 master br0 #添加br0接口
[root@extp ~]# systemctl stop NetworkManager; systemctl start NetworkManager #停止網絡和啓動網絡##nmcli是一個網絡管理工具
[root@extp ~]# which nmcli
/usr/bin/nmcli
[root@extp ~]# rpm -qf /usr/bin/nmcli
NetworkManager-0.9.9.1-29.git20140326.4dba720.el7_0.x86_64
#ip addr
[root@extp ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
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: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:e8:7c:f8 brd ff:ff:ff:ff:ff:ff
inet 192.168.35.129/24 brd 192.168.135.255 scope global dynamic eno16777736
valid_lft 1773sec preferred_lft 1773sec
inet6 fe80::d03e:d462:1d2f:c788/64 scope link
valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
link/ether 52:54:00:12:96:87 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
link/ether 52:54:00:12:96:87 brd ff:ff:ff:ff:ff:ff
5: br0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
link/ether 76:57:5e:5e:b6:ad brd ff:ff:ff:ff:ff:ff
構建安裝源
[root@extp ~]# yum install vsftpd #安裝ftp
[root@extp ~]# systemctl start vsftpd #啓動ftp
[root@extp ~]# systemctl enable vsftpd #開機自啓動
[root@extp tmp]#wget http://mirrors.sohu.com/centos/6/isos/x86_64/CentOS-6.6-x86_64-minimal.iso #下載Centos6.6 MINI安裝盤
[root@extp tmp]# mkdir /mnt/cdrom/
[root@extp tmp]# mount CentOS-6.6-x86_64-minimal.iso /mnt/cdrom/ #掛載
[root@extp tmp]# cp -r /mnt/cdrom /var/ftp/
[root@extp tmp]# cd /root/centos/cdrom/
[root@extp cdrom]# vim .treeinfo#修改如下
[general]
family = CentOS
timestamp = 1414159790.06
variant =
totaldiscs = 1
version = 6.6
discnum = 1
packagedir =
arch = x86_64
[images-x86_64]
kernel = isolinux/vmlinuz ##主要是修改這
initrd = isolinux/initrd.img ##主要修改這
[images-xen]
initrd = images/pxeboot/initrd.img
[stage2]
mainimage = images/install.img
#完了保存的時候強制保存 :wq!
然後重啓你的vftpd。
測試:看能不能訪問
使用virt-install創建虛擬機並安裝GuestOS
virt-install是一個命令行工具,它能夠爲KVM、Xen或其它支持libvrit API的hypervisor創建虛擬機並完成GuestOS安裝;此外,它能夠基於串行控制檯、VNC或SDL支持文本或圖形安裝界面。安裝過程可以使用本地的安裝介質如CDROM,也可以通過網絡方式如NFS、HTTP或FTP服務實現。對於通過網絡安裝的方式,virt-install可以自動加載必要的文件以啓動安裝過程而無須額外提供引導工具。當然,virt-install也支持PXE方式的安裝過程,也能夠直接使用現有的磁盤映像直接啓動安裝過程。
virt-install命令有許多選項,這些選項大體可分爲下面幾大類,同時對每類中的常用選項也做出簡單說明。
◇ 一般選項:指定虛擬機的名稱、內存大小、VCPU個數及特性等;
-n NAME, --name=NAME:虛擬機名稱,需全局惟一;
-r MEMORY, --ram=MEMORY:虛擬機內在大小,單位爲MB;
--vcpus=VCPUS[,maxvcpus=MAX][,sockets=#][,cores=#][,threads=#]:VCPU個數及相關配置;
--cpu=CPU:CPU模式及特性,如coreduo等;可以使用qemu-kvm -cpu ?來獲取支持的CPU模式;
◇ 安裝方法:指定安裝方法、GuestOS類型等;
-c CDROM, --cdrom=CDROM:光盤安裝介質;
-l LOCATION, --location=LOCATION:安裝源URL,支持FTP、HTTP及NFS等,如ftp://172.16.0.1/pub;
--pxe:基於PXE完成安裝;
--livecd: 把光盤當作LiveCD;
--os-type=DISTRO_TYPE:操作系統類型,如linux、unix或windows等;
--os-variant=DISTRO_VARIANT:某類型操作系統的變體,如rhel5、fedora8等;
-x EXTRA, --extra-args=EXTRA:根據--location指定的方式安裝GuestOS時,用於傳遞給內核的額外選項,例如指定kickstart文件的位置,--extra-args "ks=http://172.16.0.1/class.cfg"
--boot=BOOTOPTS:指定安裝過程完成後的配置選項,如指定引導設備次序、使用指定的而非安裝的kernel/initrd來引導系統啓動等 ;例如:
--boot cdrom,hd,network:指定引導次序;
--boot kernel=KERNEL,initrd=INITRD,kernel_args=”console=/dev/ttyS0”:指定啓動系統的內核及initrd文件;
◇ 存儲配置:指定存儲類型、位置及屬性等;
--disk=DISKOPTS:指定存儲設備及其屬性;格式爲--disk /some/storage/path,opt1=val1,opt2=val2等;常用的選項有:
device:設備類型,如cdrom、disk或floppy等,默認爲disk;
bus:磁盤總結類型,其值可以爲ide、scsi、usb、virtio或xen;
perms:訪問權限,如rw、ro或sh(共享的可讀寫),默認爲rw;
size:新建磁盤映像的大小,單位爲GB;
cache:緩存模型,其值有none、writethrouth(緩存讀)及writeback(緩存讀寫);
format:磁盤映像格式,如raw、qcow2、vmdk等;
sparse:磁盤映像使用稀疏格式,即不立即分配指定大小的空間;
--nodisks:不使用本地磁盤,在LiveCD模式中常用;
◇ 網絡配置:指定網絡接口的網絡類型及接口屬性如MAC地址、驅動模式等;
-w NETWORK, --network=NETWORK,opt1=val1,opt2=val2:將虛擬機連入宿主機的網絡中,其中NETWORK可以爲:
bridge=BRIDGE:連接至名爲“BRIDEG”的橋設備;
network=NAME:連接至名爲“NAME”的網絡;
其它常用的選項還有:
model:GuestOS中看到的網絡設備型號,如e1000、rtl8139或virtio等;
mac:固定的MAC地址;省略此選項時將使用隨機地址,但無論何種方式,對於KVM來說,其前三段必須爲52:54:00;
--nonetworks:虛擬機不使用網絡功能;
◇ 圖形配置:定義虛擬機顯示功能相關的配置,如VNC相關配置;
--graphics TYPE,opt1=val1,opt2=val2:指定圖形顯示相關的配置,此選項不會配置任何顯示硬件(如顯卡),而是僅指定虛擬機啓動後對其進行訪問的接口;
TYPE:指定顯示類型,可以爲vnc、sdl、spice或none等,默認爲vnc;
port:TYPE爲vnc或spice時其監聽的端口;
listen:TYPE爲vnc或spice時所監聽的IP地址,默認爲127.0.0.1,可以通過修改/etc/libvirt/qemu.conf定義新的默認值;
password:TYPE爲vnc或spice時,爲遠程訪問監聽的服務進指定認證密碼;
--noautoconsole:禁止自動連接至虛擬機的控制檯;
◇ 設備選項:指定文本控制檯、聲音設備、串行接口、並行接口、顯示接口等;
--serial=CHAROPTS:附加一個串行設備至當前虛擬機,根據設備類型的不同,可以使用不同的選項,格式爲“--serial type,opt1=val1,opt2=val2,...”,例如:
--serial pty:創建僞終端;
--serial dev,path=HOSTPATH:附加主機設備至此虛擬機;
--video=VIDEO:指定顯卡設備模型,可用取值爲cirrus、vga、qxl或vmvga;
◇ 虛擬化平臺:虛擬化模型(hvm或paravirt)、模擬的CPU平臺類型、模擬的主機類型、hypervisor類型(如kvm、xen或qemu等)以及當前虛擬機的UUID等;
-v, --hvm:當物理機同時支持完全虛擬化和半虛擬化時,指定使用完全虛擬化;
-p, --paravirt:指定使用半虛擬化;
--virt-type:使用的hypervisor,如kvm、qemu、xen等;所有可用值可以使用’virsh capabilities’命令獲取;
◇ 其它:
--autostart:指定虛擬機是否在物理啓動後自動啓動;
--print-xml:如果虛擬機不需要安裝過程(--import、--boot),則顯示生成的XML而不是創建此虛擬機;默認情況下,此選項仍會創建磁盤映像;
--force:禁止命令進入交互式模式,如果有需要回答yes或no選項,則自動回答爲yes;
--dry-run:執行創建虛擬機的整個過程,但不真正創建虛擬機、改變主機上的設備配置信息及將其創建的需求通知給libvirt;
-d, --debug:顯示debug信息;
創建虛擬機
virt-install \
--name centos7 \
--ram 1024 \
--vcpus=2 \
--location=/opt/pkg/CentOS-7-x86_64-Minimal-1611.iso \
--disk path=/kvm/images/centos7.qcow2,size=10,format=qcow2 \
--network bridge=br0 \
--os-type=linux \
--os-variant=rhel7 \
--graphics none \
--extra-args='console=ttyS0' \
--force
---------------或---------
[root@extp cdrom]# virt-install \
> --name centos6.6 \ #指定虛擬機名字
> --ram 512 \ #分配虛擬機的內存大小
> --disk path=/data/kvm/images/centos6.6.img,size=20 \ #虛擬機硬盤安裝路徑
> --vcpus 2 \ #CPU個數
> --os-type linux \ #操作系統類型
> --os-variant rhel6 \ #虛擬機操作系統的變種,當前CENTOS是redhat的所以。
> --network bridge=br0 \ #網絡配置
> --graphics none \ #不使用圖形界面
> --console pty,target_type=serial \ #配置接口
> --location 'ftp://192.168.0.244/cdrom/' \ #指定安裝源
> --extra-args 'console=ttyS0,115200n8 serial' #額外傳的參數
#回車
開始安裝......
搜索文件 .treeinfo...... | 590 B 00:00:00 !!!
搜索文件 vmlinuz...... | 7.9 MB 00:00:00 !!!
搜索文件 initrd.img...... | 66 MB 00:00:00 !!!
創建存儲文件 centos6.6.img | 20 GB 00:00:00
創建域...... | 0 B 00:00:00
連接到域 centos6.6
換碼符爲 ^]
Initializing cgroup subsys cpuset
Initializing cgroup subsys cpu
Linux version 2.6.32-504.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) ) #1 SMP Wed Oct 15 04:27:16 UTC 2014
Command line: method=ftp://192.168.0.244/cdrom/ console=ttyS0,115200n8 serial
KERNEL supported cpus:
Intel GenuineIntel
AMD AuthenticAMD
Centaur CentaurHauls
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
......省略。
###############
Welcome to CentOS for x86_64
┌────────┤ Choose a Language ├────────┐
│ │
│ What language would you like to use │
│ during the installation process? │
│ │
│ Catalan ↑ │
│ Chinese(Simplified) ▒ │
│ Chinese(Traditional) ▮ │
│ Croatian ▒ │
│ Czech ▒ │
│ Danish ▒ │
│ Dutch ▒ │
│ English ↓ │
│ │
│ ┌────┐ │
│ │ OK │ │
│ └────┘ │
│ │
│ │
└─────────────────────────────────────┘
#用tab鍵選擇語言
Welcome to CentOS for x86_64
┌────────────┤ Configure TCP/IP ├────────────┐
│ │
│ [*] Enable IPv4 support │
│ (*) Dynamic IP configuration (DHCP) │
│ ( ) Manual configuration │
│ │
│ [*] Enable IPv6 support │
│ (*) Automatic │
│ ( ) Automatic, DHCP only │
│ ( ) Manual configuration │
│ │
│ ┌────┐ ┌──────┐ │
│ │ OK │ │ Back │ │
│ └────┘ └──────┘ │
│ │
│ │
└────────────────────────────────────────────┘
#激活ipv4,局域網有dhcp就下一步取消ipv6,沒有手動寫個ip跟你ftp server 在同一網關即可
Welcome to CentOS for x86_64
┌────────────────┤ Manual TCP/IP Configuration ├─────────────────┐
│ │
│ Enter the IPv4 and/or the IPv6 address and prefix (address / │
│ prefix). For IPv4, the dotted-quad netmask or the CIDR-style │
│ prefix are acceptable. The gateway and name server fields must │
│ be valid IPv4 or IPv6 addresses. │
│ │
│ IPv4 address: 192.168.0.13____ / 24______________ │
│ Gateway: 192.168.0.1______________________________ │
│ Name Server: _________________________________________ │
│ │
│ ┌────┐ ┌──────┐ │
│ │ OK │ │ Back │ │
│ └────┘ └──────┘ │
│ │
│ │
└────────────────────────────────────────────────────────────────┘
#用tab鍵切換到OK上然後會提示保存網卡信息OK即可下一步
Welcome to CentOS for x86_64
┌──────────────────┤ CentOS ├───────────────────┐
│ │
│ Welcome to CentOS! │
│ │
│ │
│ ┌────┐ │
│ │ OK │ │
│ └────┘ │
│ │
│ │
└───────────────────────────────────────────────┘
#OK
Welcome to CentOS for x86_64
┌────────────────────────────────┤ Warning ├─────────────────────────────────┐
│ │
│ Error processing drive: ↑ │
│ ▮ │
│ pci-0000:00:04.0-virtio-pci-virtio1 ▒ │
│ 20480MB ▒ │
│ Virtio Block Device ▒ │
│ ▒ │
│ This device may need to be reinitialized. ▒ │
│ ▒ │
│ REINITIALIZING WILL CAUSE ALL DATA TO BE LOST! ▒ │
│ ▒ │
│ This action may also be applied to all other disks ▒ │
│ needing reinitialization. ↓ │
│ │
│ ┌────────┐ ┌────────────┐ ┌───────────────┐ ┌───────────────────┐ │
│ │ Ignore │ │ Ignore all │ │ Re-initialize │ │ Re-initialize all │ │
│ └────────┘ └────────────┘ └───────────────┘ └───────────────────┘ │
│ │
│ │
#選擇初始化所有Re-initialize all
Welcome to CentOS for x86_64
┌───────┤ Time Zone Selection ├───────┐
│ │
│ In which time zone are you located? │
│ │
│ [*] System clock uses UTC │
│ │
│ America/Monterrey ↑ │
│ America/Montevideo ▮ │
│ America/Montserrat ▒ │
│ America/Nassau ▒ │
│ America/New York ↓ │
│ │
│ ┌────┐ ┌──────┐ │
│ │ OK │ │ Back │ │
│ └────┘ └──────┘ │
│ │
│ │
└─────────────────────────────────────┘
#選擇時區Asia/上海
Welcome to CentOS for x86_64
┌──────────────┤ Root Password ├───────────────┐
│ │
│ Pick a root password. You must type it │
│ twice to ensure you know it and do not │
│ make a typing mistake. │
│ │
│ Password: ________________________ │
│ Password (confirm): ________________________ │
│ │
│ ┌────┐ ┌──────┐ │
│ │ OK │ │ Back │ │
│ └────┘ └──────┘ │
│ │
│ │
└──────────────────────────────────────────────┘
#設置root密碼
Welcome to CentOS for x86_64
┌─────────────────────┤ Partitioning Type ├─────────────────────┐
│ │
│ Installation requires partitioning of your hard drive. The │
│ default layout is suitable for most users. Select what space │
│ to use and which drives to use as the install target. │
│ │
│ Use entire drive │
│ Replace existing Linux system │
│ Use free space │
│ │
│ Which drive(s) do you want to use for this installation? │
│ [*] vda 20480 MB (Virtio Block Device) ↑ │
│ ▮ │
│ │
│ ┌────┐ ┌──────┐ │
│ │ OK │ │ Back │ │
│ └────┘ └──────┘ │
│ │
│ │
└───────────────────────────────────────────────────────────────┘
<Space>,<+>,<-> selection | <F2> Add drive | <F12> next screen
#分區
Welcome to CentOS for x86_64
┌─────────────┤ Writing storage configuration to disk ├──────────────┐
│ │
│ The partitioning options you have selected will now be written to │
│ disk. Any data on deleted or reformatted partitions will be lost. │
│ │
│ ┌─────────┐ ┌───────────────────────┐ │
│ │ Go back │ │ Write changes to disk │ │
│ └─────────┘ └───────────────────────┘ │
│ │
│ │
└────────────────────────────────────────────────────────────────────┘
#寫入保存磁盤。
Welcome to CentOS for x86_64
┌─────────────────────┤ Package Installation ├──────────────────────┐
│ │
│ │
│ 71% │
│ │
│ Packages completed: 180 of 205 │
│ │
│ Installing kernel-2.6.32-504.el6.x86_64 (123 MB) │
│ The Linux kernel │
│ │
│ │
│ │
└───────────────────────────────────────────────────────────────────┘
<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen
#然後初始化,格式化硬盤自動等待安裝完畢
Welcome to CentOS for x86_64
┌───────────────────────────┤ Complete ├────────────────────────────┐
│ │
│ Congratulations, your CentOS installation is complete. │
│ │
│ Please reboot to use the installed system. Note that updates may │
│ be available to ensure the proper functioning of your system and │
│ installation of these updates is recommended after the reboot. │
│ │
│ ┌────────┐ │
│ │ Reboot │ │
│ └────────┘ │
│ │
│ │
└───────────────────────────────────────────────────────────────────┘
#重啓即可進入創建的虛擬機
#因爲是mimi關盤安裝很快的
CentOS release 6.6 (Final)
Kernel 2.6.32-504.el6.x86_64 on an x86_64
localhost.localdomain login:
#OK,輸入用戶名和密碼即可
[root@localhost ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 52:54:00:4F:7D:82
inet addr:192.168.0.13 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::5054:ff:fe4f:7d82/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:206 errors:0 dropped:0 overruns:0 frame:0
TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:22155 (21.6 KiB) TX bytes:546 (546.0 b)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:340 (340.0 b) TX bytes:340 (340.0 b)
[root@localhost ~]#
#按Ctrl+]從虛擬機裏切換到物理機
[root@extp cdrom]# virsh list #列出已經安裝的虛擬機
Id 名稱 狀態
----------------------------------------------------
11 centos6.5 running
13 centos6.6 running
[root@extp cdrom]# virsh console centos6.6 #從物理機連接虛擬機
連接到域 centos6.6
換碼符爲 ^]
[root@localhost ~]#
[root@extp ~]# virsh autostart centos6.5 #自動啓動
域 centos6.5標記爲自動開始
[root@extp ~]# virsh autostart centos6.6 #自動啓動
域 centos6.6標記爲自動開始
#
[root@extp images]# cd /etc/libvirt/
[root@extp libvirt]# ls
libvirt.conf libvirtd.conf lxc.conf nwfilter qemu qemu.conf qemu-lockd.conf storage virtlockd.conf
[root@extp libvirt]# cd qemu/
[root@extp qemu]# ls
autostart centos6.5.xml centos6.6.xml kvm001.xml kvm002.xml networks template.xml
[root@extp qemu]# cd autostart/
[root@extp autostart]# ll
總用量 0
lrwxrwxrwx. 1 root root 31 1月 20 14:18 centos6.5.xml -> /etc/libvirt/qemu/centos6.5.xml #開機自啓動的文件都會在安裝目錄裏創建一個autostart目錄,並設置軟連接
lrwxrwxrwx. 1 root root 31 1月 20 14:19 centos6.6.xml -> /etc/libvirt/qemu/centos6.6.xml
[root@extp ~]#
[root@extp ~]# virsh autostart --disable centos6.6 #取消自動啓動
域 centos6.6取消標記爲自動開始
#關閉一臺虛擬機
[root@extp images]# virsh list --all #列出所有啓動沒啓動的虛擬機
Id 名稱 狀態
----------------------------------------------------
23 centos6.5 running
29 centos6.6 running
- kvm001 關閉
- kvm002 關閉
- template 關閉
[root@extp images]# virsh shutdown centos6.6 #關閉一臺centos6.6
域 centos6.6 被關閉
好像關不了#默認virsh不能關閉虛擬機需要安裝acpid
[root@extp images]# yum install acpid
[root@extp images]# systemctl start acpid.service
[root@extp images]# systemctl enable acpid.service#在關閉試試
CentOS7 安裝管理KVM虛擬機
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.