����� CnetOS 7 �� RHEL 7��Red Hat ��ҵ�� Linux���������ϰ�װ������ KVM�������ں˵��������������� CentOS 7 ������ KVM ��ʹ���ƾ��� / cloud-init ����װ�ͻ��������
�����ں˵��������KVM���� CentOS �� RHEL 7 �����⻯������KVM ���Խ���ķ������������������������Ľ�������� CentOS 7 �� RHEL 7 ��ʹ�� KVM ���ú������⻯�����������������ʹ���������������������ϰ�װ�����������VM������ȷ���ڷ������� BIOS �����������⻯����(VT)����Ҳ������������������� CPU �Ƿ�֧�� Intel VT �� AMD_V ���⻯������
$ lscpu | grep Virtualization
Virtualization: VT-x
���� CentOS 7/RHEL 7 �ն˷������ϵ� KVM ��װ������в�����
����1����װ kvm
�������� yum ����:
# yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install
���� libvirtd ����
# systemctl enable libvirtd
# systemctl start libvirtd
����2��ȷ�� kvm ��װ
ʹ�� lsmod ����� grep���� ȷ�ϼ����� KVM ģ�飺
# lsmod | grep -i kvm
����3�������Ž�����
Ĭ������£��� libvirtd ���û��� dhcpd �����š������ʹ������������֤��
# brctl show
# virsh net-list
������������ͻ�����ֻ�ܶ�ͬһ̨�������ϵ��������������������ʡ�Ϊ�㴴����˽�������� 192.168.122.0/24����֤��
# virsh net-dumpxml default
�����ϣ���������������� LAN �ϵ��������������������ӵ���� LAN �ķ�����������һ�����š�����������������ļ����� ifcfg-enp3s0 �� em1��
# vi /etc/sysconfig/network-scripts/ifcfg-enp3s0
����һ�У�
BRIDGE=br0
ʹ�� vi ���沢�ر��ļ����༭ /etc/sysconfig/network-scripts/ifcfg-br0��
# vi /etc/sysconfig/network-scripts/ifcfg-br0
�����������ݣ�
DEVICE="br0"
# I am getting ip from DHCP server #
BOOTPROTO="dhcp"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
ONBOOT="yes"
TYPE="Bridge"
DELAY="0"
����������������棺ssh ����Ͽ����ӣ���������������豸����
# systemctl restart NetworkManager
�� brctl ������֤����
# brctl show
����4��������ĵ�һ�������
�ҽ��ᴴ��һ�� CentOS 7.x ����������ȣ�ʹ�� wget �����ȡ CentOS 7.x ���µ� ISO ����
# cd /var/lib/libvirt/boot/
# wget https://mirrors.kernel.org/centos/7.4.1708/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso
��֤ ISO ����
# wget https://mirrors.kernel.org/centos/7.4.1708/isos/x86_64/sha256sum.txt
# sha256sum -c sha256sum.txt
���� CentOS 7.x �����
����������У��Ҵ����� 2GB RAM��2 �� CPU ���ģ�1 �������� 40 GB ���̿ռ�� CentOS 7.x ����������룺
# virt-install \
--virt-type=kvm \
--name centos7 \
--ram 2048 \
--vcpus=1 \
--os-variant=centos7.0 \
--cdrom=/var/lib/libvirt/boot/CentOS-7-x86_64-Minimal-1708.iso \
--network=bridge=br0,model=virtio \
--graphics vnc \
--disk path=/var/lib/libvirt/images/centos7.qcow2,size=40,bus=virtio,format=qcow2
����һ���ն�ͨ�� ssh ���� vnc ��¼�����룺
# virsh dumpxml centos7 | grep v nc
<graphics type='vnc' port='5901' autoport='yes' listen='127.0.0.1'>
���¼�¶˿�ֵ���� 5901��������Ҫʹ�� SSH �ͻ��������������� VNC �ͻ��˲��ܷ���Զ�� vnc ���������ڿͻ���/����/ macbook pro ϵͳ���������� SSH �˿�ת�����
$ ssh vivek@server1.cyberciti.biz -L 5901:127.0.0.1:5901
һ���㽨���� ssh ����������Խ���� VNC �ͻ���ָ�����Լ��� 127.0.0.1 (localhost) ��ַ�Ͷ˿� 5901��������ʾ��
��Ӧ�ÿ��� CentOS Linux 7 �ͻ��������װ��Ļ���£�
����ֻ�谴����Ļ˵�����в�������װCentOS 7��һ����װ��ɺ������������������ť�� Զ�̷������ر������ǵ� VNC �ͻ��˵����ӡ������ͨ�� KVM �ͻ����������ӣ������÷����������ಿ�֣��������� SSH �ĻỰ�����ǽ��
ʹ���ƾ���
���ϰ�װ��������ѧϰĿ�Ļ�����������ǿ��еġ�����Ҫ���������������� ���������ƾ�������Ը�����Ҫ��Ԥ�ȹ������ƾ������磬ʹ�� Cloud-init �����û���ssh ��Կ������ʱ���ȵȣ����Ǵ�����ʵ�������ڳ�ʼ������ʵ�ϵĶ�ַ����������ǿ�����δ������� 1024MB RAM��20GB ���̿ռ�� 1 �� vCPU �� CentOS 7 ���������LCTT ��ע�� vCPU �������е����������
��ȡ CentOS 7 �ƾ���
# cd /var/lib/libvirt/boot
# wget http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2
���������Ŀ¼
# D=/var/lib/libvirt/images
# VM=centos7-vm1 ## vm name ##
# mkdir -vp $D/$VM
mkdir: created directory '/var/lib/libvirt/images/centos7-vm1'
����Ԫ�����ļ�
# cd $D/$VM
# vi meta-data
�����������ݣ�
instance-id: centos7-vm1
local-hostname: centos7-vm1
�����û������ļ�
�ҽ�ʹ�� ssh ��Կ��¼�������������ȷ������ ssh ��Կ��
# ssh-keygen -t ed25519 -C "VM Login ssh key"
�༭�û��������£�
# cd $D/$VM
# vi user-data
�������£�������������滻 hostname��users��ssh-authorized-keys����
#cloud-config
# Hostname management
preserve_hostname: False
hostname: centos7-vm1
fqdn: centos7-vm1.nixcraft.com
# Users
users:
- default
- name: vivek
groups: ['wheel']
shell: /bin/bash
sudo: ALL=(ALL) NOPASSWD:ALL
ssh-authorized-keys:
- ssh-ed25519 F2ot8MOdNXCpHem0e2Wemg4nNmL2Tio4Ik1JY VM Login ssh key
# Configure where output will go
output:
all: ">> /var/log/cloud-init.log"
# configure interaction with ssh server
ssh_genkeytypes: ['ed25519', 'rsa']
# Install my public ssh key to the first user-defined user configured
# in cloud.cfg in the template (which is centos for CentOS cloud images)
ssh_authorized_keys:
- ssh-ed25519 F2ot8MOdNXCpHem0e2Wemg4nNmL2Tio4Ik1JY VM Login ssh key
# set timezone for VM
timezone: Asia/Kolkata
# Remove cloud-init
runcmd:
- systemctl stop network && systemctl start network
- yum -y remove cloud-init
�����ƾ���
# cd $D/$VM
# cp /var/lib/libvirt/boot/CentOS-7-x86_64-GenericCloud.qcow2 $VM.qcow2
���� 20GB ����ӳ��
# cd $D/$VM
# export LIBGUESTFS_BACKEND=direct
# qemu-img create -f qcow2 -o preallocation=metadata $VM.new.image 20G
# virt-resize --quiet --expand /dev/sda1 $VM.qcow2 $VM.new.image
�����ź�ľ�������
# cd $D/$VM
# mv $VM.new.image $VM.qcow2
����һ�� cloud-init ISO
# mkisofs -o $VM-cidata.iso -V cidata -J -r user-data meta-data
����һ����
# virsh pool-create-as --name $VM --type dir --target $D/$VM
Pool centos7-vm1 created
��װ CentOS 7 �����
# cd $D/$VM
# virt-install --import --name $VM \
--memory 1024 --vcpus 1 --cpu host \
--disk $VM.qcow2,format=qcow2,bus=virtio \
--disk $VM-cidata.iso,device=cdrom \
--network bridge=virbr0,model=virtio \
--os-type=linux \
--os-variant=centos7.0 \
--graphics spice \
--noautoconsole
ɾ������Ҫ���ļ���
# cd $D/$VM
# virsh change-media $VM hda --eject --config
# rm meta-data user-data centos7-vm1-cidata.iso
����������� IP ��ַ
# virsh net-dhcp-leases default
��¼����������
ʹ�� ssh ���
# ssh vivek@192.168.122.85
���õ�����
�����ǿ��������������һЩ���õ����
����������
# virsh list --all
��ȡ�������Ϣ
# virsh dominfo vmName
# virsh dominfo centos7-vm1
ֹͣ/�ر������
# virsh shutdown centos7-vm1
���������
# virsh start centos7-vm1
����������Ϊ������ʱ�Զ�����
# virsh autostart centos7-vm1
��������������ȫ�����������
# virsh reboot centos7-vm1
���ã�Ӳ����/����ȫ�������
# virsh reset centos7-vm1
ɾ�������
# virsh shutdown centos7-vm1
# virsh undefine centos7-vm1
# virsh pool-destroy centos7-vm1
# D=/var/lib/libvirt/images
# VM=centos7-vm1
# rm -ri $D/$VM
�鿴 virsh �������͵������б���
# virsh help | less
# virsh help | grep reboot
��װKVM�Լ�������Ǩ�ƻ�����//m.ajphoenix.com/linux/28647.html
ubuntu����libvirt��װkvm�����ʱ�Ҳ���/bin/qemu-kvm��������//m.ajphoenix.com/linux/19379.html
Ubuntu15.04��װKVM��//m.ajphoenix.com/linux/16790.html
CentOS 5.5�°�װKVM��//m.ajphoenix.com/linux/7047.html
Debian 6.0��װKVM���Ž����磺//m.ajphoenix.com/linux/5362.html