http://linux.dell.com/files/whitepapers/KVM_Virtualization_in_RHEL_6_made_easy.pdf
http://linux.dell.com/files/whitepapers/KVM_Virtualization_in_RHEL_6_Made_Easy_Part2.pdf
# grep -E 'svm|vmx' /proc/cpuinfo
vmx is for Intel processors
svm is for AMD processors
# lsmod |grep kvm
kvm_intel 54285 0
kvm 333172 1 kvm_intel
# yum install kvm python-virtinst libvirt libvirt-python virt-manager virt-viewer libguestfs-tools device-mapper-event-libs
# cat > /etc/sysconfig/network-scripts/ifcfg-br0 << _EOF_
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=10.160.1.221
NETMASK=255.255.255.0
ONBOOT=yes
_EOF_
# cat > /etc/sysconfig/network-scripts/ifcfg-em1 << _EOF_
DEVICE=em1
BRIDGE=br0
ONBOOT=yes
_EOF_
# /etc/init.d/libvirtd start && chkconfig libvirtd on
qemu-img create -f qcow2 -o preallocation=metadata /opt/kvm/kvm-1-91.qcow2 300g
#http安装(ip地址dhcp分配)
virt-install \
--name=kvm-1-91 --os-variant=rhel6 \
--ram=4096 --vcpus=2 \
--network bridge=br0,model=virtio,mac=00:58:ef:00:00:01 \
--disk path=/opt/kvm/kvm-1-91.qcow2,size=300,format=qcow2,bus=virtio,cache=writeback \
--noapic --accelerate \
--location=http://us.install.suntv.tv/centos6 \
--extra-args='ks=http://us.install.suntv.tv/kickstart/00:58:ef:00:00:01 ksdevice=link ramdisk_size=102400 console=ttyS0,115200'
如果ip地址是静态的话,修改2个地方
1 00:58:ef:00:00:01 kickstart文件里 network部分
2 extra-args='ks=http://us.install.suntv.tv/kickstart/00:58:ef:00:00:01 ksdevice=link ramdisk_size=102400 console=ttyS0,115200'里需要添加ip=xxx.xxx.xxx.xxx netmask=xxx.xxx.xxx.xxx gateway=xxx.xxx.xxx.xxx nameserver=xxx.xxx.xxx.xxx
# 线上使用
qemu-img create -f qcow2 -o preallocation=metadata /opt/kvm/kvm-48-115.qcow2 30g
virt-install --name=kvm-48-115 --os-variant=rhel6 --ram=2048 --vcpus=1 --network bridge=br0,model=virtio,mac=00:58:ef:00:00:05 --disk path=/opt/kvm/kvm-48-115.qcow2,size=30,format=qcow2,bus=virtio,cache=writeback --graphics none --noapic --accelerate --location=http://install.local/centos-6 --extra-args='ks=http://install.local/kickstart/kvm-centos-6.cfg ksdevice=link ramdisk_size=102400 console=ttyS0,115200'
#pxe安装
virt-install \
--name=la-kvm-01 --os-variant=rhel6 \
--ram=4096 --vcpus=2 \
--network bridge=br0,model=virtio,mac=00:58:ef:00:00:01 \
--disk path=/opt/kvm/la-kvm-01.qcow2,size=500,format=qcow2,bus=virtio,cache=writeback \
--noapic --accelerate \
--pxe
#iso安装
virt-install \
--os-variant=rhel7 \
--name=centos7 \
--ram=2048 --vcpus=1 \
--network bridge=br0,model=virtio \
--disk path=/data/vm/centos7.qcow2,size=30,format=qcow2,bus=virtio,cache=writeback \
--noapic --accelerate \
--location=/data/iso/CentOS-7-x86_64-Minimal-1810.iso \
--graphics none \
--extra-args='console=ttyS0,115200n8 serial'
# 上面是文本界面,图形界面最后2行替换
--graphics vnc,listen=0.0.0.0
--noautoconsole
Q: ERROR Guest name 'la-kvm-01' is already in use.
A:
virsh destroy la-kvm-01
virsh undefine la-kvm-01
connect: virsh console la-kvm-01
disconnect: Ctrl+]
# 使用virsh console,需要开启console控制台登录,要么在安装时指定,要么用以下命令修改grub
grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
reboot
/etc/libvirt/qemu
/var/lib/libvirt/qemu
# 初始配置完成后建立第1个快照,用于快速恢复环境
virsh snapshot-create-as kvm-70-101 init
# 利用初始化好的虚拟机,克隆快速建立多台虚拟机
virsh shutdown kvm-70-101
virt-clone -o kvm-70-101 -n kvm-70-102 -f /opt/kvm/kvm-70-102.qcow2
# 改变虚拟机的cpu核数,最大内存及当前内存
virsh setmaxmem kvm-70-105 4G --config
virsh setmem kvm-70-105 4G --live
virsh setvcpus kvm-70-105 4
virsh dominfo kvm-70-105 (或者查看/etc/libvirt/qemu/kvm-70-105.xml)
# 虚拟机的vcpu绑定物理cpu
virsh vcpupin kvm-70-101 0 0
virsh vcpupin kvm-70-101 1 1
virsh vcpupin kvm-70-102 0 2
virsh vcpupin kvm-70-102 1 3
virsh vcpupin kvm-70-103 0 4
virsh vcpupin kvm-70-103 1 5
virsh vcpupin kvm-70-104 0 6
virsh vcpupin kvm-70-104 1 7
virsh vcpupin kvm-70-105 0 8
virsh vcpupin kvm-70-105 1 9
# 变更虚拟机配置
1. 关闭虚拟机
virsh shutdown vm1
2. 修改内存大小、vcpu个数
virsh edit vm1
3. 配置文件启动虚拟机
virsh create /etc/libvirt/qemu/vm1.xml
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
2015-05-26 yaml