@zhangyy
2020-01-02T07:47:51.000000Z
字数 7850
阅读 472
openstack系列
- 一:关于虚拟化
- 二:kvm 虚拟机
1. 系统虚拟化是将底层物理设备与上层操作系统,软件分离的一种去藕合技术,在一台物理集群上路径的划分出多台机器2. 虚拟化的目录表是实现IT 资源利用效率和灵活的最大化3. 产品vmware vsphere esxi 就是最典型的产品


在一台物理机上虚拟出多个虚拟计算机(虚拟机,Virtaul Machine , VM),其上能同时运行多个独立的操作系统,这些客户机操作系统(Guest os)通过 虚拟机管理器(Virtual Machine Monitor, VMM , 也称作 Hypervisor) 访问实际的物理资源


1. kvm 全称 是基于内核的虚拟机(kernel-based Virtual machine), 它是一个Linux的一个内核模块,该内核模块使得LINUX 变成一个Hypervisor2.它是由Quramnet 开发,该公司于2008 年被Redhat 收购。3. 支持X86(32 and 64 位),s390,powerpc 等CPU4。 从Linux2.6.30 起就是作为一个模块被包含在Linux内核中5. 需要支持虚拟化扩展的CPU,完全开源
1.开启硬件的虚拟化 VT技术2. egrep -c "(vmx |svm)" /proc/cpuinfo3. 命令结果大于0 表示 cpu 支持虚拟化

更改本地的源,改为阿里云的源mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backupwget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repoyum clean all && yum makecacheyum install httpd createrepo reposync -yyum repolistcd /var/www/htmlmkdir basecd /var/www/html/reposync --repoid = base

cd /var/www/html/base/Packages/lscreaterepo --update /var/www/html/base ## 生成repodata包

1.安装kvmyum install qemu-kvm2.安装配置管理工具yum install virt-manager libvirt libvirt-python python-virtinst bridge-utils

3. libvirt:操作和管理KVM虚机的虚拟化 API,使用 C 语言编写,可以由 Python,Ruby, Perl, PHP, Java 等语言调用。可以操作包括 KVM,vmware,XEN,Hyper-v, LXC 等 Hypervisor。4. Virsh:基于 libvirt 的 命令行工具 (CLI)5. Virt-Manager:基于 libvirt 的 GUI 工具
lsmod | grep kvm

6.如果上面的命令看不到KVM 的模块就使用下面的命令加载modprobe kvmmodprobe kvm-intel
7.启动libvirt:service libvirtd startchkconfig libvirtd on


7. 创建安装盘:mkdir -p /kvmtestqemu-img create -f qcow2 /kvmtest/centos-6.9.qcow2 30G上传centos 6.9x64 的iso 到 Linux kvm 下面默认网络配置文件:/etc/libvirt/qemu/networks

8. 创建虚拟机virt-install --virt-type kvm --name centos-6.9 --ram 1024 \--vcpus 1 \--cdrom=/kvmtest/CentOS-6.9-x86_64-minimal.iso \--disk /kvmtest/centos-6.9.qcow2,format=qcow2 \--network network=default \--graphics vnc,listen=0.0.0.0 --noautoconsole \--os-type=linux --os-variant=rhel6


virt-install 常用参数一览表1.-n NAME指定虚拟机的名称2.-r MEMORY指定虚拟机的内存用量3.-u UUID指定虚拟机的唯一通用标识符(Universally Unique Identifier,UUID)。省略这个参数时,virt-install 将会自动产生4.--vcpus=VCPUS指定虚拟机的虚拟 CPU (Virtual CPU,VCPU) 数量-f DISKFILE指定虚拟磁盘的文件路径名称-s DISKSIZE用来指定虚拟磁盘的大小,这个参数需配合-f 使用。DISKSIZE为虚拟磁盘的大小,单位是GB-m MAC指定虚拟机的网络卡之硬件地址。这个参数可以省略,省略时virt-install 将自动产生-p 以半虚拟化的方式建立虚拟机-l LOCATION 指定安装来源
virt-manager ##### x-shell回打开一个被动的端口页面 打开即可安装系统

# virsh list

进入 virsh 模式# virshvirsh # list

Id 名称 状态----------------------------------------------------2 centos-6.9 running
关于virsh 的命令• virsh list # 显示本地活动虚拟机• virsh start openSuse # 启动名字为ubuntu的非活动虚拟机• virsh create ubuntu.xml # 创建虚拟机(创建后,虚拟机立即执行,成为活动主机)• virsh suspend openSuse # 暂停虚拟机• virsh resume ubuntu # 启动暂停的虚拟机• virsh shutdown ubuntu # 正常关闭虚拟机• virsh destroy ubuntu # 强制关闭虚拟机• virsh dominfo openSuse # 显示虚拟机的基本信息• virsh dumpxml openSuse # 显示虚拟机的当前配置文件• virsh setmem ubuntu 51200 # 给不活动虚拟机设置内存大小• virsh setvcpus ubuntu 4 # 给不活动虚拟机设置cpu个数• virsh edit ubuntu # 编辑配置文件(一般用在刚定义完VM)
dominfo 3

iptables -t nat -S

yum install -y tcpdumptcpdump -i vnet0 icmp

tcpdump -n -i vnet0 icmp

宿主机修改前置条件:在保证桥接网: ens33 网卡口能够获取到IP地址,然后创建桥接网卡(br100)此处网卡地址为:192.168.3.131cd /etc/sysconfig/network-script/cp -p ifcfg-ens33 ifcfg-br100复制之后br100 先使用自动获取IP 地址---vim ifcfg-br100 # 在保证ip 能够获取得到的在定IP地址---DEVICE=br100TYPE=BridgeBOOTPROTO=static#IPADDR=192.168.3.131#NETMASK=255.255.255.0#GATEWAY=192.168.3.1#DNS1=114.114.114.114#DNS2=8.8.8.8ONBOOT=yes---vim ifcfg-br100----DEVICE=br100TYPE=BridgeBOOTPROTO=staticIPADDR=192.168.3.131NETMASK=255.255.255.0GATEWAY=192.168.3.1DNS1=114.114.114.114DNS2=8.8.8.8ONBOOT=yes----更改ifcfg-ens33 网卡 增加BRIDGE="br100"vim ifcfg-ens33---DEVICE="ens33"BRIDGE="br100"ONBOOT="yes"---之后重启网卡:service network restart测试上网连接:ping www.baidu.combrctl show

修改虚拟机:cd /etc/libvirt/qemucp -p centos-6.9.xml centos-6.9-03.xmlvim centos-6.9-03.xml更改三处: 虚拟机的命名,删掉UUID, 存储的磁盘, 网络连接方式---<domain type='kvm'><name>centos-6.9-03</name> ---> 更改名字# <uuid>d7422aae-d7b4-4d38-8775-2dd0efd6191d</uuid> -- uuid 删掉<memory unit='KiB'>1048576</memory><currentMemory unit='KiB'>1048576</currentMemory><vcpu placement='static'>1</vcpu><os><type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type><boot dev='hd'/></os><features><acpi/><apic/></features><cpu mode='custom' match='exact' check='partial'><model fallback='allow'>Broadwell</model></cpu><clock offset='utc'><timer name='rtc' tickpolicy='catchup'/><timer name='pit' tickpolicy='delay'/><timer name='hpet' present='no'/></clock><on_poweroff>destroy</on_poweroff><on_reboot>restart</on_reboot><on_crash>destroy</on_crash><pm><suspend-to-mem enabled='no'/><suspend-to-disk enabled='no'/></pm><devices><emulator>/usr/libexec/qemu-kvm</emulator><disk type='file' device='disk'><driver name='qemu' type='qcow2'/><source file='/kvmtest/centos-6.9-03.qcow2'/> --》更改磁盘<target dev='vda' bus='virtio'/><address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/></disk><disk type='file' device='cdrom'><driver name='qemu' type='raw'/><target dev='hda' bus='ide'/><readonly/><address type='drive' controller='0' bus='0' target='0' unit='0'/></disk><controller type='usb' index='0' model='ich9-ehci1'><address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x7'/></controller><controller type='usb' index='0' model='ich9-uhci1'><master startport='0'/><address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0' multifunction='on'/></controller><controller type='usb' index='0' model='ich9-uhci2'><master startport='2'/><address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x1'/></controller><controller type='usb' index='0' model='ich9-uhci3'><master startport='4'/><address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x2'/></controller><controller type='pci' index='0' model='pci-root'/><controller type='ide' index='0'><address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/></controller><controller type='virtio-serial' index='0'><address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/></controller><interface type='bridge'> ----> 更改网络方式,删掉MAC<source brdge='br100'/> ----> 桥接到br100<model type='virtio'/><address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/></interface><serial type='pty'><target port='0'/></serial><console type='pty'><target type='serial' port='0'/></console><channel type='unix'><target type='virtio' name='org.qemu.guest_agent.0'/><address type='virtio-serial' controller='0' bus='0' port='1'/></channel><input type='tablet' bus='usb'><address type='usb' bus='0' port='1'/></input><input type='mouse' bus='ps2'/><input type='keyboard' bus='ps2'/><graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'><listen type='address' address='0.0.0.0'/></graphics><video><model type='cirrus' vram='16384' heads='1' primary='yes'/><address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/></video><memballoon model='virtio'><address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/></memballoon></devices></domain>---cd /kvmtest/cp -p centos-6.9.qcow2 centos-6.9-03.qcow2cd /etc/libvirt/qemu/virsh define centos-6.9-03.xml

打开运行虚拟机:virt-manager ---> 运行虚拟机


cd /etc/udev/rules.d/vi 70-persistent-net.rules注释掉第一行, 将最后的eth1 改为eth0mac 地址可以看生成的centos-6.9-03.xml 文件

删掉虚拟机网卡的MAC 地址cd /etc/sysconfig/network-scirpt/vi ifcfg-eth0删掉mac 地址将虚拟机重启reboot-------------重启之后一般就可以获到ip地址就可以ping 通百度可以上网ifconfig |more



kvm 虚拟机的快照:virsh # snapshot-create centos-6.9 ----> 创建快照Domain snapshot 1420286390 createdvirsh # snapshot-list ---> 列出快照error: command 'snapshot-list' requires <domain> optionvirsh # snapshot-list centos-6.9Name Creation Time State ------------------------------------------------------------14202863902015-01-03 19:59:50 +0800 runningvirsh # snapshot-revert centos-6.9 1420286390 ---> 恢复快照snapshot-create-as centos-6.6 testsnap001 --- 快照名字

file格式创建:qemu-img create -f qcow2 /kvmtest/add-centos-6.9.qcow2 20G

cd /etc/libvirt/qemuvirsh# list --all# edit 5

在disk 下面增加:<disk type='file' device='disk'><driver name='qemu' type='qcow2'/><source file='/kvmtest/add-centos-6.9.qcow2'/><target dev='vdb' bus='virtio'/></disk>

# destory 5#start centos-6.9

查看虚拟机配置:fdisk -l下面分区格式化磁盘,挂载即可用了

大于2tb磁盘的gpt分区方式:– http://www.cnblogs.com/qlwang/p/4600276.html– http://www.cnblogs.com/JimMoriarty/p/3669256.html