由於生產環境的服務器並不會安裝桌面環境,簡單操作的圖形化安裝也不適合批量部署安裝。因此,我還是更傾向於在命令下安裝配置KVM虛擬機。結合了一些資料和個人使用的狀況,我大致列出了一些基本和常用的使用方法。
操作系統:centos6.6
內核版本:2.6
IP地址:172.16.57.24
和 Xen 不同,KVM 需要有 CPU 的支持(Intel VT 或 AMD SVM),在安裝 KVM 之前檢查一下 CPU 是否提供了虛擬技術的支持:
egrep 'vmx|svm' /proc/cpuinfo
1、這裡安裝一些虛擬化的組件
yum -y install kvm python-virtinst libvirt bridge-utils virt-manager qemu-kvm-tools virt-viewer virt-v2v libguestfs-tools-c
2、對kvm進行如下如下配置:
vim /etc/libvirt/libvirtd.conf 這裡主要是tcp連接的設置
末尾添加如下:
listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
listen_addr = "172.16.57.24"
unix_sock_ro_perms = "0777"
unix_sock_rw_perms = "0770"
auth_tcp = "none"
max_clients = 1024
min_workers = 100
max_workers = 200
max_requests = 20
max_client_requests = 50
vim qemu.conf 這裡主要是對vnc的設置,一會兒通過vnc-viewer連接來進行安裝
末尾添加
vnc_listen = "0.0.0.0"
vnc_password = "bigdata" #vnc連接密碼
remote_display_port_min = 5900 #vnc最小端口
remote_display_port_max = 65535 #vnc最大端口
3、確認一下是否 kvm 安裝成功:
/etc/init.d/libvirtd restart
4、查看是否啟動:
ps -ef | grep libvirtd
5、查看kvm模塊是否正常加載:
lsmod |grep kvm
1、配置網橋br0
vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=172.16.57.24
NETMASK=255.255.255.0
GATEWAY=172.16.57.1
DNS1=202.96.209.133
vim /etc/sysconfig/network-scripts/ifcfg-em1
DEVICE=em1
TYPE=Ethernet
ONBOOT=yes
BRIDGE=br0
NM_CONTROLLED=yes
2、重啟網絡
/etc/init.d/network restart
3、查看網絡連接
brctl show
如果配置成功,會有以下輸出:
bridge name bridge id STP enabled interfaces
br0 8000.14187745822e no em1
vnet0
vnet1
vnet2
vnet3
vnet4
vnet5
vnet6
virbr0 8000.5254005fcc0b yes virbr0-nic
4、檢查ip轉發是否開啟
cat /etc/sysctl.conf |grep ip_forward
net.ipv4.ip_forward = 1
如果沒有開啟:
vim /etc/sysctl.conf
修改net.ipv4.ip_forward = 1
/sbin/sysctl -p
virt-install --name=tomcat_01 --ram 8192 --vcpus=2 \
--disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio \
--cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio \
--vnc --accelerate --force --autostart
這裡解釋一下主要的幾個參數含義:
--name 給虛擬機起個名字
--ram 分配給虛擬機的內存,單位MB
--vcpus 分配給虛擬機的cpu個數
--cdrom 指定安裝文件的全路徑
--disk 指定虛擬機img文件路徑,如果虛擬機使用lvm分區,這裡就指向到lvm的分區就行
size 虛擬機文件大小,單位GB
bus 虛擬機磁盤使用的總線類型,為了使虛擬機達到好的性能,這裡使用virtio
cache 虛擬機磁盤的cache類型
--network bridge 指定橋接網卡
model 網卡模式,這裡也是使用性能更好的virtio
--graphics圖形參數
這裡我安裝的虛擬機名字為tomcat_01,接下來查看其vnc端口:
ps aux | grep qemu | grep tomcat_01
當時我們設置vnc端口最小為5900,那麼這裡指的就是5902這個端口。
接下來通過在windows下使用vnc-viewer來連接172.16.57.24:5902,並輸入設置的密碼,即可進行安裝。
1、宿主機管理虛擬機
對虛擬機進行開關等管理,需要在虛擬機上安裝acpid的服務,並啟動它。
2、克隆虛擬機
一般制作一個常用的虛擬機模板,下次安裝可以直接來克隆這個模板。
virt-clone --connect qemu:///system --original=tomcat_01 --name=tomcat_02 --file=//var/lib/libvirt/images/tomcat_02.img
--original克隆的虛擬機對象
--name 克隆的新虛擬機名稱
3、添加磁盤
一般虛擬機的磁盤結構為系統盤加數據盤,當系統發生故障時,可以重新建一個系統盤,而數據盤不會丟失。
添加磁盤操作:
cd /var/lib/libvirt/images/ 進入磁盤存放目錄
qemu-img create -f raw test_add.img 100G 創建一塊100G的磁盤
virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 動態添加磁盤
這種方法是動態添加磁盤,而xml配置文件並沒有發生變化,為了防止下次啟動添加的磁盤失效,進行如下操作:
virsh dumpxml tomcat_01 > tomcat_01.xml 將最新的虛擬機配置重定向到其配置文件中
virsh define tomcat_01.xml
這樣,新增的磁盤就不會丟了。
4、virsh命令的一些操作
Autostart 自動開始一個域
Create 從一個 XML 文件創建一個域
Define 從一個 XML 文件定義(但不開始)一個域
edit 編輯某個域的 XML 配置
shutdown 關閉一個域
start 開始一個(以前定義的)非活躍的域
reboot 重新啟動一個域
suspend 掛起一個域
resume 重新恢復一個域
vncdisplay vnc 顯示