admin 管理员组文章数量: 1184232
2023年12月25日发(作者:数据库是什么类型)
3.7RHEV、KVM虚拟化
3.7.1 RHEV安装
RHEV 虚拟环境由RHEV-H (虚拟服务器)和RHEV-M(管理平台)组成。
RHEV-H安装在裸机上。
RHEV-M安装在redhat linux6.3上,要求4G以上内存。RHEV3.1版本开始,RHEV-M安装在linux系统平台。RHEV3.0版本,只支持windows平台。
1、安装RHEV-H
2、安装RHEV-M管理端
(1)rhev3.1目录下的内容上传到/root/目录下:
(2)配置yum源
#cd /etc/.d
#vi
[rhev]
name=Red Hat Enterprise Virtualization
baseurl=file:///root/rhev3.1
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
(3)安装RHEV-M
# yum install rhevm rhevm-reports
(4)配置RHEV-M
# rhevm-setup
在配置过程中,需要输入admin、数据等密码,建议的输入的密码全部相同。
(5)IE访问测试
(6)配置报表
# rhevm-reports-setup
在登录界面选择“Reports Portal”, (默认用户为rhevm-admin,密码是安装时输入的密码)
3、RHEV-M管理界面
疑问1:KVM在无需共享存储的情况下,可以完成在线物理主机之前的迁移。速度快,base文件相同,仅迁移虚拟机变化数据量。
疑问2:RHEV-M、ESXi均无法继承到openstack,除非vmware和redhat开发api
疑问3:Pureflex的FSM中不是内置了SCE功能吗,如果Pureflex算P团队的单,FSM应该内置一个安装SCE云平台的虚拟机。
疑问4:KVM的正版授权。
3.7.2 KVM安装
1、重新驱动虚拟机测试
物理主机:32C+64GB
虚拟机1:8C+32GB
虚拟机2:8C+16GB
虚拟机3:8C+16GB
同时重启三台虚拟机,发现物理主机内存使用率100%后,使用部分swap分区。然后2-4分钟内逐步内存回收。
共六台虚拟机,重启其中三台
2、创建虚拟机测试
nova boot --availability-zone=nova:
b3d8fc40-6a00-4f28-8905-a4ce3e96e2c6
net-id=d90f8e81-250c-442c-b0a6-bb68c1f087b7,v4-fixed-ip=10.13.250.240
--flavor=win2008_app_8c_16G_300G win2008_test_240
nova boot --availability-zone=nova:
b3d8fc40-6a00-4f28-8905-a4ce3e96e2c6
net-id=d90f8e81-250c-442c-b0a6-bb68c1f087b7,v4-fixed-ip=10.13.250.241
--flavor=win2008_app_8c_16G_300G win2008_test_241
nova boot --availability-zone=nova:
b3d8fc40-6a00-4f28-8905-a4ce3e96e2c6
net-id=d90f8e81-250c-442c-b0a6-bb68c1f087b7,v4-fixed-ip=10.13.250.242
--flavor=win2008_app_8c_16G_300G win2008_test_242
--image
--nic
--image
--nic
--image
--nic
启动所有操作系统后,内存使用率逐渐降低。
3.7.3 vnc连接
[root@ControlNode ~]# /etc/init.d/vncserver start
Starting VNC server: no displays configured [FAILED]
[root@ControlNode ~]# rpm -qa |grep vnc
6.x86_64
6.x86_64
6.x86_64
1、启动vncserver与xrdp
/etc/init.d/vncserver restart
/etc/init.d/xinetd restart
[root@Compute-40-F2-E9-11-A8-09 ~]# /etc/init.d/vncserver restart
Shutting down VNC server: [
Starting VNC server: 2:root A VNC server is already running as :2
[root@Compute-40-F2-E9-11-A8-09 ~]#
[root@Compute-40-F2-E9-11-A8-09 ~]# vncserver -list
TigerVNC server sessions:
X DISPLAY # PROCESS ID
:1 44760
[root@Compute-40-F2-E9-11-A8-09 ~]#
2、查看物理主机的vnc配置
[root@Compute-40-F2-E9-11-A8-09 ~]# netstat -an |grep 59
tcp 0 0 0.0.0.0:5900 0.0.0.0:*
tcp 0 0 0.0.0.0:5901 0.0.0.0:*
tcp 0 0 0.0.0.0:5902 0.0.0.0:*
tcp 0 0 0.0.0.0:5903 0.0.0.0:*
tcp 0 0 0.0.0.0:5904 0.0.0.0:*
[root@Compute-40-F2-E9-11-A8-09 ~]# virsh list --all
Id Name State
OK ]
[FAILED]
LISTEN
LISTEN
LISTEN
LISTEN
LISTEN
----------------------------------------------------
1 instance-000001f2 running
2 instance-000001f5 running
3 instance-000001f3 running
4 instance-000001f4 running
5 instance-0000020a running
- temp shut off
3.7.4 KVM迁移测试
1、创建测试云主机
nova boot --availability-zone=nova:
b3d8fc40-6a00-4f28-8905-a4ce3e96e2c6
net-id=d90f8e81-250c-442c-b0a6-bb68c1f087b7,v4-fixed-ip=
--flavor=win2008_app_2C_2G_50G win2008_app_242
--image
--nic
2、在KVM中将instance-0000020b实例迁移到192.168.200.235主机上
Migrate过程:迁移是qemu中支持的,libvirt只是封装好命令并传递给qemu的监控模块。
直接将xml和img拷贝到目的主机就ok了
virsh命令行迁移:
migrate instance-0000020b qemu://10.10.10.1/system (tls 模式)
migrateinstance-0000020bqemu+ssh://************.200.235/system(ssh 模式)
migrate instance-0000020b qmeu+tcp://10.10.10.1/system (tcp 模式)
迁移问题1:
Unable to migrate guest: Unable to pre-create chardev file
'/var/lib/nova/instances/10172a9e-c62a-4fdf-85a8-6e77c13f2be9/': No such file or
directory
解决办法:手动拷贝缺少的目录和文件
scp ************.200.234:/var/lib/nova/instances/10172a9e-c62a-4fdf-85a8-6e77c13f2be9//var/lib/nova/instances/
迁移问题2:
Unable to migrate guest: Cannot get interface MTU on 'qbr755c3e6e-7e': No such device
命令行迁移:virshmigrateinstance-0000020bqemu+ssh://************.200.235/system************.200.235'spassword:
error: Cannot get interface MTU on 'qbr755c3e6e-7e': No such device
解决办法:在目标主机brctl addbr qbr755c3e6e-7e
[root@Compute-40-F2-E9-11-B4-E1 dev]# brctl show
bridge name bridge id STP enabled interfaces
qbr3e5625e2-1c 8000.66771487c9a4 no qvb3e5625e2-1c
tap3e5625e2-1c
qbr755c3e6e-7e 8000.d21fbb138fac no qvb755c3e6e-7e
tap755c3e6e-7e
qbrdbe5471c-35 472072a8b6 no qvbdbe5471c-35
tapdbe5471c-35
qbrde6b266f-92 8000.7a1927525f9a no qvbde6b266f-92
tapde6b266f-92
迁移问题3:
Unable to migrate guest: Network filter not found: Could not find filter
'nova-instance-instance-0000020b-fa163eb2f9f5'
察看是否启用了如下参数:
firewall_driver=esFirewallDriver
如果启用,注释掉并重启nova-compute服务
迁移问题4:必须用nova命令迁移,kvm目前暂不支持vswitch
nova live-migration win2008_app_242 --block-migrate
ERROR: Live migration of instance 10172a9e-c62a-4fdf-85a8-6e77c13f2be9 to host
failed (HTTP 400) (Request-ID:
req-90808625-88da-44c9-b601-d5f085d370fa)
检查发现:nova list虚拟机状态shutoff
DestinationDiskExists_Remote: The supplied disk path
(/var/lib/nova/instances/10172a9e-c62a-4fdf-85a8-6e77c13f2be9) already exists, it is expected
not to exist.
解决方法:目标端删除10172a9e-c62a-4fdf-85a8-6e77c13f2be9目录
迁移问题5:再次nova迁移虚拟机成功。
nova live-migration win2008_app_242 --block-migrate
3.8openstack云平台
云计算是一种计算模型,它将诸如运算能力、存储、网络和软件等资源抽象成为服务,以便让用户通过互联网远程享用,付费的形式也如同传统公共服务设施一样。
基础设施即服务(IaaS)
平台即服务(PaaS)
软件即服务(SaaS)
3.8.1 openstack架构
Chef server:openstack的快速部署工具,类似StackOps、Dell的CrowBar、Rackspac
ganlia server: 跨平台可扩展的,高 性能计算系统下的分布式监控系统
nagios server:监控
Horizon:openstack dashboard
openstack-nova-api:
openstack-nova-compute:运行虚拟机实例最主要的服务
openstack-nova-volume :块存储服务,安装在控制节点,这个物理主机提供volume的创建、删除、挂载等管理功能。
openstack-nova-network:
openstack-nova-cert:Nova证书管理服务,用来为Nova提供身份验证。
openstack-nova-scheduler:管理调度服务器满足对运行虚拟机的请求。
openstack-nova-objectstore:文件存储服务。
openstack-nova-common:OpenStack环境的基础Python库。
quantum-server:接受API requests然后把他们转发到合适的quantum插件去执行。
quantum-openvswitch-agent:运行在每个hypervisor主机上,提供虚拟交换配置服务。
openstack-glance-api:虚拟机镜像发现、注册、检索,将虚拟机镜像存储任何一种存储中。
openstack-glance-registry存储和检索镜像的元数据,实际的Image Blob存储在Image Store 中openstack-glance-scrubber
openstack-cinder-api :接受API requests并且将他们转发到cinder-volume去执行。
openstack-cinder-volume :处理cinder数据库的维护状态的读写请求,通过消息队列和直接在块存储设备或软件上与其他进程交互。
openstack-cinder-scheduler:选择在最优的块存储提供节点上去创建卷。
rabbitmq-server:消息队列服务。
ntp:网络时间协议,保持相同的时钟。(可容忍的误差在5秒以内,否则将会出现不可预知的结果)
3.8.1.1、nava安装配置
1、控制节点安装
#安装消息队列服务器(rabbitmq)、nova-api、nova-network、nova-objectstore(glance依赖)、nova-scheduler、nova-compute、nova-volume(如果卷服务不在控制节点不需要安装)
#编辑/etc/nova/,改成如下内容(nova配置文件范例)
--dhcpbridge_flagfile=/etc/nova/ #dhcp桥接配置文件位置
--dhcpbridge=/usr/bin/nova-dhcpbridge #桥接命令位置
--logdir=/var/log/nova #nova日志存放路径
--state_path=/var/lib/nova #nova状态文件位置
--lock_path=/var/lock/nova #lock文件位置,以为为pid相关
--force_dhcp_release=True #dhcp释放
--use_deprecated_auth=1 #是否启用外部认证,比如keystone
--verbose=1 #启用详细日志消息
--libvirt_type=kvm # 通过libvirt连接的虚拟化程序名称
--s3_host=60.12.206.111 #objectstore服务地址
--rabbit_host=60.12.206.111 #rabbitmq队列服务器地址
--cc_host=60.12.206.111 #nova-api服务地址
--ec2_url=60.12.206.111:8773/services/Cloud #nova-api接口地址
--fixed_range=10.0.0.0/24 #运行实例分配ip范围段
--floating_range=60.12.206.0/24 #分配给实例的外网ip范围段
--network_size=256 #网络主机数
--routing_source_ip=60.12.206.111
#路由地址,当实例得到外网ip,对外的snat地址将是这个地址
--sql_connection=mysql://nova:nova@localhost/nova #数据库连接参数
--glance_host=60.12.206.111 #glance服务地址
--image_service=ImageService #默认存储镜像使用的服务
--network_manager=CPManager #默认网络模式
--flat_network_dhcp_start=10.0.0.2 #dhcp分配给的ip的启示地址
--public_interface=eth0 #公共接口设定
--flat_interface=eth1 #私有接口设定
--connection_type=libvirt #启动虚拟机的驱动
--flat_network_bridge=br0 #默认的桥接卡
2、计算节点安装
(1)#安装nova-compute
(2)#编辑/etc/nova/,改成如下内容(nova配置文件范例)
--dhcpbridge_flagfile=/etc/nova/ #dhcp桥接配置文件位置
--dhcpbridge=/usr/bin/nova-dhcpbridge #桥接命令位置
--logdir=/var/log/nova #nova日志存放路径
--state_path=/var/lib/nova #nova状态文件位置
--lock_path=/var/lock/nova #lock文件位置,以为为pid相关
--verbose=1 #启用详细日志消息
--libvirt_type=kvm # 通过libvirt连接的虚拟化程序名称
--s3_host=60.12.206.111 #objectstore服务地址
--rabbit_host=60.12.206.111 #rabbitmq队列服务器地址
--cc_host=60.12.206.111 #nova-api服务地址
--ec2_url=60.12.206.111:8773/services/Cloud #nova-api接口地址
--sql_connection=mysql://nova:nova@localhost/nova #数据库连接参数
--glance_host=60.12.206.111 #glance服务地址
--image_service=ImageService #默认存储镜像使用的服务
--network_manager=CPManager #默认网络模式
--connection_type=libvirt #启动虚拟机的驱动
--glance_api_servers=60.12.206.111:9292 #glance-api服务运行地址
3.8.1.2、glance配置
1、配置glance使用keystone认证:
(1)更新/etc/glance/的以下选项为keystone中的设置值:
(2)在/etc/glance/尾添加:
[paste_deploy]
flavor = keystone
(3)更新/etc/glance/的以下选项为keystone中的设置值
(4)在/etc/glance/尾添加:
[paste_deploy]
flavor = keystone
2、设置glance的mysql连接:
修改/etc/glance/下的
sql_connection = mysql://glance:glance@localhost/glance
3、配置glance的通信服务器:
修改/etc/glance/下的:
notifier_strategy = noop
为:
notifier_strategy = rabbit
rabbit_password = guest
为:
rabbit_password = service123
4、glance命令
glance --help
glance index查看上传的镜像
3.8.1.3、quantum配置
1、编辑/etc/quantum/文件并修改:
2、虚拟交换机配置
编辑/etc/quantum/plugins/openvswitch/ovs_quantum_文件并修改:
3、编辑/etc/quantum/文件并修改:
4、/etc/libvirt/
5、网络其他组件
支持隧道的Virtual Bridging(Open-vSwitch + Quantum Agent)
DHCP Server(Quantum DHCP Agent)
Virtual Routing(Quantum L3 Agent)
3.8.1.4、cinder配置
Cinder替代以前的Nova volume
1、编辑/etc/cinder/文件并修改:
2、命令
cinder list
等同于以前nova volume-list
cinder show 65d23a41-b13f-4345-ab65-918a4b8a6fe6
列出当前用户的所有资源
cinder absolute-limits
列出volume快照
cinder snapshot-list
3.8.1.5、文件系统
计算节点192.168.200.232-----237
[root@Compute-40-F2-E9-11-B4-59 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rootvg-lvroot 49G 2.9G 43G 7% /
tmpfs 32G 0 32G 0% /dev/shm
/dev/sdi1 504M 45M 435M 10% /boot
/dev/mapper/openstackvg-lv_glance 301G 7.3G 278G 3% /opt/lbs/lv_glance
/dev/mapper/36d400005 2.0T 7.2G 1.9T 1% /vmdata
localhost:/lbs_vms 6.0T 7.6G 5.6T 1% /var/lib/nova/instances
计算节点192.168.200.231
[root@ControlNode ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/lbs-lvroot 49G 3.9G 42G 9% /
tmpfs 32G 0 32G 0% /dev/shm
/dev/sdi1 504M 44M 435M 10% /boot
/dev/mapper/lbs-lvimage 296G 75G 206G 27% /opt/lbs
/dev/mapper/36d400001
2.0T 209M 1.9T 1% /vmdata
/dev/mapper/lbs-lv_glance 190G 197M 180G 1% /opt/lbs/lv_glance
虚拟CC 192.168.200.230
[root@CloudController home]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_lbscontroller-lv_root 40G 18G 20G 48% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
/dev/vda1 504M 43M 436M 9% /boot
/dev/mapper/vg_lbscontroller-lv_home 55G 7.3G 45G 14% /home
虚拟NC 192.168.200.229
[root@NetworkController images]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_lbscontroller-lv_root 20G 2.8G 16G 15% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/vda1 504M 43M 436M 9% /boot
/dev/mapper/vg_lbscontroller-lv_home 28G 172M 26G 1% /home
:lbs_glance 790G 12G 739G 2% /var/lib/glance/images
3.8.1.6、查看网络流量和硬盘速度
# sar -n DEV -u 1 10
看看当前网络流量
# iostat -t 1 10
看看当前硬盘读写速度
3.8.2、openstack管理
2.8.2.4、VMHA---虚拟机高可用服务(vmha只在cc配置)
1、cd /opt/lbs/conf/vmha(其他主机均没有该目录,只有CC有)
[root@CloudController bin]# more /opt/lbs/conf/
#openstack keystone info.
OS_USERNAME=admin
OS_PASSWORD=Passw0rd
OS_TENANT_NAME=admin
OS_AUTH_URL=192.168.200.229:5000/v2.0
#if glusterfs check enabled
GLUSTERFS_CHECK_ENABLED=0
#number of ping failed, host-evacuate will occur
FAILED_THREADHOLD=6
#each ping interval
PING_INTERVAL=1
#each ping timeout. After this second, we believe a failed ping.
PING_TIMEOUT=2
#If "STONITH" is enabled, vmha will try to reboot the failed host.
STONITH_ENABLED=1
#debug flag
DEBUG=0
#imm addr info used to reboot the machine when failed
IMM_INFO_FILE="/opt/lbs/conf/imm_"
#vmha filter. if set, vmha will not monitor the service of these compute node.
#Use , to seperate multiple nodes,
VMHA_HOST_FILTER=
2、IMM配置
测试imm连接
/opt/ibm/toolscenter/asu/asu64 immapp --host 192.168.200.207 powerstate
vim /opt/lbs/conf/imm_
192.168.200.219 admin Passw0rd
192.168.200.207 admin Passw0rd
192.168.200.218 admin Passw0rd
192.168.200.217 admin Passw0rd
192.168.200.208 admin Passw0rd
3、安装
./vmha_
4、查看vmha状态
/etc/init.d/vmha status
ps -ef|grep vmha
service vmha status
find . -name "*.py" -print | xargs grep "rpc_response"
./chef_ cn 'cat /etc/'
knife node list
knife node show
./chef_ cn 'ls'
./chef_ cn 'hostname -f'
./chef_ cn 'fdisk -l '
./chef_ cn 'mount'
./chef_ cn 'mount -a'
glance-control all
./chef_ cn 'lsmod |grep bridge'
2.8.2.5、集群文件系统
./chef_ cn 'umount /var/lib/nova/instances'
./chef_ cn 'mount -a'
./chef_ cn 'mount -a'
./chef_ cn ''
./chef_ cn 'umount /var/lib/nova/instances'
./chef_ cn 'mount -a'
./chef_ cn 'umount /var/lib/nova/instances'
./chef_ cn 'rm -rf /vmdata/.glusterfs/'
./chef_ cn 'mount -a'
./chef_ cn 'chown -R nova:nova /var/lib/nova/instances'
gluster peer status
2.8.2.6、镜像管理
重新启动
service glance-api restart && service glance-registry restart
重新同步glance数据库
glance-manage db_sync
查看镜像
glance index
ID Name Disk Format Container Format Size
------------------------------------ ------------------------------ -------------------- -------------------- --------------
b3d8fc40-6a00-4f28-8905-a4ce3e96e2c6 win2008r2sp1 qcow2 bare 7566983168
d71015e5-97fa-4b5a-b6fe-332644f71552 iso bare 3720347648
1f245aea-063d-44ef-b755-ae023b03e1c5 cirros qcow2 bare 9761280
glance image-list
[root@CloudController bin]# glance show b3d8fc40-6a00-4f28-8905-a4ce3e96e2c6
URI: 192.168.200.229:9292/v1/images/b3d8fc40-6a00-4f28-8905-a4ce3e96e2c6
Id: b3d8fc40-6a00-4f28-8905-a4ce3e96e2c6
Public: Yes
Protected: No
Name: win2008r2sp1
Status: active
Size: 7566983168
Disk format: qcow2
Container format: bare
Minimum Ram Required (MB): 0
Minimum Disk Required (GB): 0
Owner: 53b8fccb076746a980b5840af8d5886f
Created at: 2013-11-27T11:07:25
Updated at: 2013-11-27T11:11:42
查看flavor
nova flavor-list
nova image-list
查看虚拟机
nova show superfrobnicator
注意:在创建存储池时,需要在主存储服务器依次创建附加服务器的peers,主服务器不需要添加。
2.8.2.7、检查keystone设置是否正确
keystone user-list
+-------------------------------------------------------+----------------+---------+-------+
| id | name | enabled | email |
+-------------------------------------------------------+----------------+------------+----------+
| b95a99f899ff4a2db458f010202dd4aa | admin | True | |
| f2aff4cfe0f34bf68e8ba6ec0ef534cd | ec2 | True | |
| 20d39b6f75664491a098281cad8585ad | glance | True | |
| cf25b1cfbc5dcf962881 | nova | True | |
| 69434f9591814d4f87603d4d7339ebec | quantum | True | |
| 7c32de5b53e943f38e8e198bd168f83e | swift | True | |
+--------------------------------------------------------+-------------+---------------+-----------+
keystone endpoint-list
keystone tenant-list
+--------------------------------------------------------+----------------+-----------+
| id | name | enabled |
+-------------------------------------------------------+-----------------+-----------+
| 53b8fccb076746a980b5840af8d5886f | admin | True |
| 09e262b9327046cdb08bbb1ac1612438 | service | True |
+---------------------------------------------------------+------------+-------------+
keystone role-list
| 9fe2ff9ee4384b1894a90878d3e92bab | _member_ |
| 824df0e344de45ef8f3687e64661ade4 | admin |
2.8.2.8、vnc无法打开
一个nova-consoleauth进程。通常运行在控制器主机上。
一个或多个nova-novncproxy服务。该服务提供基于浏览器的novnc客户端访问。
一个或多个nova-xvpvncproxy服务。该服务提供基于Java的客户端访问。
一个或多个compute节点。需要对compute节点进行正确配置。
重新启动cc端两个服务
/etc/init.d/openstack-nova-xvpvncproxy restart
/etc/init.d/openstack-nova-xvpvncproxy restart
2.8.2.9、重新扫描磁盘
2.8.2.10、快照管理
1、创建快照
(1)云主机d盘安装了rar,创建快照
发现物理主机存在以下操作:
qemu-img convert -f qcow2 -O qcow2 -s 52576f18bb1c414896a012d859870146
/var/lib/nova/instances/d84a5ee9-de3c-4d7a-a945-0442c8deb6db/disk
/var/lib/nova/instances/snapshots/tmpL6dR19/52576f18bb1c414896a012d859870146
qemu-img convert -f qcow2 -O qcow2 -s 16585801bf7546a485e119a710b84337
/var/lib/nova/instances/d84a5ee9-de3c-4d7a-a945-0442c8deb6db/disk
/var/lib/nova/instances/snapshots/tmpiK20sF/16585801bf7546a485e119a710b84337
disk 400MB
tmpL6dR19目录7.1GB
将DISK文件写入16585801bf7546a485e119a710b84337文件中。
(2)快照保存操作(所有image、snapshot均在NC节点保存)
在192.168.200.299/var/lib/glance/images目录下生成b7a68c63-8745-4169-8118-6ca7fc066035快照文件,速度约100MB/s
[root@NetworkController images]# glance index
ID Name Disk Format Container Format Size
----------------------------------------------------------- ------------------------ --------------- -------------------- --------------
b7a68c63-8745-4169-8118-6ca7fc066035 win2008_240_snapshot qcow2 bare 7584415744
b3d8fc40-6a00-4f28-8905-a4ce3e96e2c6 win2008r2sp1 qcow2 bare 7566983168
d71015e5-97fa-4b5a-b6fe-332644f71552 iso bare 3720347648
1f245aea-063d-44ef-b755-ae023b03e1c5 cirros qcow2 bare 9761280
云主机状态
2、从快照部署云主机
(1)指定从某个image部署云主机
nova boot --availability-zone=nova:
b7a68c63-8745-4169-8118-6ca7fc066035
net-id=d90f8e81-250c-442c-b0a6-bb68c1f087b7,v4-fixed-ip=10.13.250.241
--flavor=win2008_app_8c_16G_300G win2008_test_241
(2)状态(很慢约10min)
--image
--nic
-----------在物理主机的/var/lib/nova/instances/_base目录下生成一个*.part的文件(7.1GB)
-----------将part文件conver到一个300GB的base文件中
-----------云主机active
很慢,文件需要convert
快照部署虚拟机过程:拷贝一个part------将part文件conver到base(300GB)文件中----完成
/var/lib/nova/instances/_base
37G Dec 6 11:36 b03bbf8da17ce43c4f453a3cd92d040b4d8bf499
300G Dec 6 11:55 ted
7.1G Dec 6 11:55
查看conver操作命令
[root@Compute-40-F2-E9-11-B4-59 _base]# ps -ef|grep img
qemu-img convert -O raw
/var/lib/nova/instances/_base/
/var/lib/nova/instances/_base/ted
(3)部署完成
物理主机/var/lib/nova/instances/_base下生成一个base文件
37G Dec 6 11:36 b03bbf8da17ce43c4f453a3cd92d040b4d8bf499
300G Dec 6 11:55 1a48c6171fea451f868a9ef826d7fc7479f147ab
说明:如何查找虚拟机在物理主机对应的base文件名
(4)部署完成后,却确认没问题,可以删除快照(节省7.1GB image空间而已)
3、删除快照部署的虚拟机
(1)查看虚拟机对应的物理主机
[root@CloudController ~]# nova show win2008_test_241
(2)删除虚拟机
(3)删除快照
如果确认所有快照部署的虚拟机都确认删除,可以删除快照。
(4)删除物理主机的base文件
说明:如何查找虚拟机对应的base文件,每个快照部署的虚拟机的物理主机都会生成一个base文件。
4、快照部署和镜像部署的区别
存储空间区别:快照部署base文件大占用空间;而image镜像部署方式,只占用了37GB空间。
/var/lib/nova/instances/_base
37G Dec 6 11:36 b03bbf8da17ce43c4f453a3cd92d040b4d8bf499
300G Dec 6 11:55 ted
3.8.3 nova虚拟机管理
qemu-img create -f raw /var/lib/nova/instances/_base/ephemeral_240_default 240G
qemu-img create -f raw /tmp/ 1G
nova boot --availability-zone=nova: --image
b3d8fc40-6a00-4f28-8905-a4ce3e96e2c6 --nic net-id=56f24353-a38a-4c77-8c45-26b39b2e565c
--flavor=win2008_app_16c_32G_300G win1
2.8.3.1命令行创建云主机
export OS_PASSWORD="Passw0rd"
export OS_USERNAME="admin"
export OS_TENANT_NAME="admin"
export OS_AUTH_URL=192.168.200.229:35357/v2.0
[root@CloudController ~]# glance index
ID Name Disk Format Container Format Size
------------------------------------ ------------------------------ -------------------- -------------------- --------------
b3d8fc40-6a00-4f28-8905-a4ce3e96e2c6 win2008r2sp1 qcow2 bare 7566983168
d71015e5-97fa-4b5a-b6fe-332644f71552 iso bare 3720347648
1f245aea-063d-44ef-b755-ae023b03e1c5 cirros qcow2 bare 9761280
[root@Compute-40-F2-E9-11-A8-09 ~]# quantum net-list
| id | name | subnets |
| 56f24353-a38a-4c77-8c45-26b39b2e565c | Vlan100 | |
以win2008r2sp1为镜像,win2008_app_16c_32G_300G为flavor,创建云主机win1在物理主机
nova boot --availability-zone=nova: --image
b3d8fc40-6a00-4f28-8905-a4ce3e96e2c6 --nic net-id=56f24353-a38a-4c77-8c45-26b39b2e565c
--flavor=win2008_app_16c_32G_300G win1
nova boot --availability-zone=nova: --image
b3d8fc40-6a00-4f28-8905-a4ce3e96e2c6 --nic
net-id=d90f8e81-250c-442c-b0a6-bb68c1f087b7,v4-fixed-ip=10.13.250.202
--flavor=win2008_app_8c_32G_500G win2008_app_202
2.8.3.2 qemu-img help convert
2.8.3.3、迁移虚拟机
1、查看热迁移命令
[root@Compute-40-F2-E9-11-A8-09 ~]# nova help live-migration
usage: nova live-migration [--block-migrate] [--disk-over-commit]
Migrates a running instance to a new machine.
Positional arguments:
Optional arguments:
--block-migrate True in case of block_migration.
(Default=False:live_migration)
--disk-over-commit Allow overcommit.(Default=False)
2、热迁移虚拟机(必须有共享存储)
nova live-migration win2008_test_241
3、冷迁移虚拟机(无法指定目标物理主机)
usage: nova migrate [--poll]
Migrate a server. The new host will be selected by the scheduler.
nova migrate
ERROR: No server with a name or ID of '' exists.
冷迁移过程
nova migrate win2008_app_202
状态1:
qemu-img convert -f qcow2 -O qcow2
/var/lib/nova/instances/854e8e0a-5f9b-4dc2-920b-7230074df417_resize/disk
/var/lib/nova/instances/854e8e0a-5f9b-4dc2-920b-7230074df417_resize/disk_rbase
2013-12-07 09:37:37.724 6672 ERROR [-] Getting disk size of
instance-000001ec: [Errno 2] No such file or directory:
'/var/lib/nova/instances/854e8e0a-5f9b-4dc2-920b-7230074df417/disk'
手动干预:
cp -r 854e8e0a-5f9b-4dc2-920b-7230074df417_resize/disk
854e8e0a-5f9b-4dc2-920b-7230074df417/
状态2:
ssh 192.168.200.236 rsync --server - .
/var/lib/nova/instances/854e8e0a-5f9b-4dc2-920b-7230074df417/disk
状态3:迁移完成重启能ping通,进系统非常卡,伴随蓝屏
win2008_app_202
4、热迁移虚拟机(无共享存储)
过程:迁移源主机虚拟机镜像文件(700MB)到到目标主机,如果没有base文件,拷贝base到目标
查看虚拟机镜像id:nova list
查看实例id: virsh list -all
查看虚拟机和实例的对应关系:nova show vm_name
命令:
nova live-migration win2008_app_242 --block-migrate
2.8.3.4、修改虚拟机内存
将云主机win2008_app_203由8c_32G_500G,资源更改为8c_16G_300G
nova resize win2008_app_203
win2008_app_8c_16G_300G
(1)convert操作
(2)貌似要迁移到其他主机
ssh 192.168.200.236 rsync --server - .
/var/lib/nova/instances/62970fd6-5b96-4262-b2f5-f1782c927326/disk
rsync --sparse --compress
/var/lib/nova/instances/62970fd6-5b96-4262-b2f5-f1782c927326_resize/disk_rbase
192.168.200.236:/var/lib/nova/instances/62970fd6-5b96-4262-b2f5-f1782c927326/disk
(3)结果:主机变为8c_16G_500G
1、查看本节点的虚拟机
virsh list
virsh dominfo 5
2、修改虚拟机内存顺序
停止虚拟机----修改maxmem-----启动-----修改setmem
virsh shutdown 5
virsh setmaxmem instance-000000f9 32GB
virsh start instance-000000f9
virsh setmem instance-000000f9 4096MB
(3)修改虚拟机内存命令
virsh edit
virsh define
(1)确定要迁移的云主机名字及flavor
[root@CloudController ~]# nova list
| 5938fe72-2678-434a-9d5c-12a56e0ec4f7 | win2008_app1_202 | RESIZE | Vlan100=10.13.250.202 |
nova show
win2008_app1_202
instance-000001cd
[root@CloudController ~]# nova flavor-list
(2)更改云主机内存
nova resize instance-000001cd win2008_app_16c_16G_300G
ERROR: No server with a name or ID of 'instance-000001cd' exists.
nova resize win2008_app1_202 win2008_app_16c_16G_300G
cd /var/lib/nova/instances
cp b8dfcf87-50fa-47b6-b664-a55c45890349_resize/disk b8dfcf87-50fa-47b6-b664-a55c45890349
出现下面界面,confirm即可
发现win2008_app1_202被迁移到其他的主机上
win2008_app1_202 win2008_app_16c_16G_300G active
2013-12-05 04:04:33
定义一个kvm虚拟机
# virsh define /usr/local/kvm/
在后台,这个命令拷贝该xml文件到/etc/libvirt/qemu目录,文件名为xml里定义的kvm名称。并且正式定义一个新的kvm。
查看kvm虚拟机
# virsh list
2.8.3.5、修改虚拟机硬盘为1100GB
1、新建flavor
win2008_app_8c_16G_1100G
2、修改实例硬盘大小
nova resize win2008_app_204
win2008_app_8c_16G_1100G
3、确认磁盘更改成功
2.8.3.7、新建虚拟机
1、物理主机资源:80/1000可用VCPU,129/360GB内存,硬盘不能超过2TB
删除vm资源:48VCPU,62GB内存, 1960GB硬盘+32GB交换
localhost:/lbs_vms 6.0T 43G 5.6T 1% /var/lib/nova/instances
可用物理主机资源:32 /1000 可用VCPU,65GB / 360GB
测试结果:vcpu通过虚拟可达1000个,内存只能使用实际内存空间。
2、最大虚拟机资源测试160VCPU+63GB RAM
48C+64GB内存+1960GB硬盘+32GB交换
64C+78GB内存+160GB硬盘+16GB交换,error
100C+62GB内存+160GB硬盘+16GB交换,成功
200C+62GB内存+160GB硬盘+16GB交换,error
150C+62GB内存+160GB硬盘+16GB交换,成功
界面如下:为何任务管理器只能看到8颗CPU,但是设备管理器-处理器显示150个
(1)新建虚拟机
创建云主机OS结果:8C+15.6GB RACM+300GB硬盘+16GB SWAP
(2)新建最大虚拟机48C+64000MB内存+1960GB硬盘+32GB交换
时间11:36----12:07完成
2.8.3.8、虚拟机和物理主机的资源比例
(1)修改内存比例
修改控制节点、所有主机节点的配置文件
vi /etc/nova/
增加如下列:
ram_allocation_ratio=2
重新启动服务
/etc/init.d/openstack-nova-compute restart
(2)修改CPU比例
默认为16
2.8.3.9、云主机网络能ping通,但是防火墙禁止端口访问
基于安全理由,SUSE Cloud 在预设值下,防火墙会关闭所有外来连线,要从外面网路进入虚拟机器就要修改 Nova 的防火墙规则。要开启埠号容许 ping、SSH 和 TCP/UDP。
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0
nova secgroup-add-rule default tcp 1 65535 0.0.0.0/0
nova secgroup-add-rule default udp 1 65535 0.0.0.0/0
nova secgroup-list
nova secgroup-list-rules default
[root@Compute-40-F2-E9-11-B4-E1 ~]# rpm -qa |grep openvswitch
openvswitch-1.11.0_6ost.x86_64
最终解决办法:
(1)安装以下包
openvswitch-1.11.0_6ost.x86_
(2)
rpm -Uvh kernel*.rpm
(3)
/etc/init.d/quantum-openvswitch-agent stop
/etc/init.d/openvswitch stop
rpm -Uvh openvswitch-1.11.0_6ost.x86_
(4)
rpm -e 6.x86_64
rpm -e 6.x86_64
reboot
(5)删除network,重建network、subnetwork
(6)创建云主机必须指定ip地址
[root@Compute-40-F2-E9-11-B4-E1 openvswitch]# iptables -L -n -v
Chain INPUT (policy ACCEPT 1897K packets, 1823M bytes)
pkts bytes target prot opt in out source destination
1148K 1691M nova-compute-INPUT all -- * * 0.0.0.0/0
0.0.0.0/0
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0
tcp dpts:613:617
4 576 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0
udp dpt:111
0 0 ACCEPT tcp -- *
tcp dpts:34865:34885
2611K 4721M ACCEPT tcp -- *
tcp dpts:49352:49372
21093 1158K ACCEPT tcp -- *
tcp dpts:24007:24008
0 0 ACCEPT tcp -- *
state NEW tcp dpt:16509
0 0 ACCEPT tcp -- *
state NEW tcp dpts:49152:49261
0 0 ACCEPT tcp -- *
tcp dpt:2049
0 0 ACCEPT tcp -- *
tcp dpt:111
0 0 ACCEPT tcp -- *
tcp dpt:3260
31209 1740K ACCEPT tcp -- *
tcp dpts:5900:5999
0 0 ACCEPT tcp -- *
tcp dpt:24007
0 0 ACCEPT udp -- *
udp dpt:6343
2887 288K ACCEPT tcp -- *
tcp dpt:5666
0 0 ACCEPT udp -- *
udp dpt:8652
0 0 ACCEPT tcp -- *
tcp dpt:8652
0 0 ACCEPT udp -- *
udp dpt:8651
0 0 ACCEPT tcp -- *
tcp dpt:8651
0 0 ACCEPT udp -- *
udp dpt:8650
0 0 ACCEPT tcp -- *
* 0.0.0.0/0
* 0.0.0.0/0
* 0.0.0.0/0
* 0.0.0.0/0
* 0.0.0.0/0
* 0.0.0.0/0
* 0.0.0.0/0
* 0.0.0.0/0
* 0.0.0.0/0
* 0.0.0.0/0
* 0.0.0.0/0
* 0.0.0.0/0
* 0.0.0.0/0
* 0.0.0.0/0
* 0.0.0.0/0
* 0.0.0.0/0
* 0.0.0.0/0
* 0.0.0.0/0
0.0.0.0/0
0.0.0.0/0
0.0.0.0/0
0.0.0.0/0
0.0.0.0/0
0.0.0.0/0
0.0.0.0/0
0.0.0.0/0
0.0.0.0/0
0.0.0.0/0
0.0.0.0/0
0.0.0.0/0
0.0.0.0/0
0.0.0.0/0
0.0.0.0/0
0.0.0.0/0
0.0.0.0/0
0.0.0.0/0
tcp dpt:8650
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0
udp dpt:8649
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0
tcp dpt:8649
Chain FORWARD (policy ACCEPT 807 packets, 79995 bytes)
pkts bytes target prot opt in out source destination
922 86274 nova-filter-top all -- * * 0.0.0.0/0 0.0.0.0/0
450 37640 nova-compute-FORWARD all -- * * 0.0.0.0/0
0.0.0.0/0
Chain OUTPUT (policy ACCEPT 4086K packets, 2935M bytes)
pkts bytes target prot opt in out source destination
4976K 3461M nova-filter-top all -- * * 0.0.0.0/0 0.0.0.0/0
994K 664M nova-compute-OUTPUT all -- * * 0.0.0.0/0
0.0.0.0/0
Chain nova-compute-FORWARD (1 references)
pkts bytes target prot opt in out source destination
Chain nova-compute-INPUT (1 references)
pkts bytes target prot opt in out source destination
Chain nova-compute-OUTPUT (1 references)
pkts bytes target prot opt in out source destination
Chain nova-compute-inst-464 (1 references)
pkts bytes target prot opt in out source destination
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
state INVALID
154 9240 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0
state RELATED,ESTABLISHED
8 660 nova-compute-provider all -- * * 0.0.0.0/0
0.0.0.0/0
4 420 ACCEPT all -- * * 10.13.250.0/24 0.0.0.0/0
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0
tcp dpt:22
4 240 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0
multiport dports 1:65535
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0
multiport dports 1:65535
0 0 nova-compute-sg-fallback all -- * * 0.0.0.0/0
0.0.0.0/0
Chain nova-compute-inst-465 (1 references)
pkts bytes target prot opt in out source destination
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
state INVALID
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0
state RELATED,ESTABLISHED
0 0 nova-compute-provider all -- * * 0.0.0.0/0
0.0.0.0/0
0 0 ACCEPT all -- * * 10.13.250.0/24 0.0.0.0/0
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0
tcp dpt:22
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0
multiport dports 1:65535
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0
multiport dports 1:65535
0 0 nova-compute-sg-fallback all -- * * 0.0.0.0/0
0.0.0.0/0
Chain nova-compute-local (1 references)
pkts bytes target prot opt in out source destination
162 9900 nova-compute-inst-464 all -- * * 0.0.0.0/0
10.13.250.204
0 0 nova-compute-inst-465 all -- * * 0.0.0.0/0
10.13.250.205
3.8.4 openvswitch
ovs-vsctl 查询和更新ovs-vswitchd的配置;
ovs-appctl 发送命令消息,运行相关daemon;
使用命令ovs-vsctl show可以看到结果
[root@dell4 ~]# ovs-vsctl show
[root@Compute-40-F2-E9-11-A8-41 ~]# ovs-vsctl show
5fa6416f-ebbd-4f62-a83c-d811535de807
Bridge br-ex
Port br-ex
Interface br-ex
type: internal
Bridge br-int
Port br-int
Interface br-int
type: internal
Port int-br-phy
Interface int-br-phy
Bridge br-phy
Port phy-br-phy
Interface phy-br-phy
Port "bond1"
Interface "bond1"
Port br-phy
Interface br-phy
type: internal
ovs_version: "1.4.2"
启动虚拟交换机
ps -ef |grep ovs
成功后,会有三个进程,一个ovs-brcompatd进程,一个ovs-vswitchd进程,一个ovsdb-server进程
列出所有网桥
ovs-vsctl list-br
判断网桥是否存在
ovs-vsctl br-exists br0
echo $? //0表示存在,否则不存在
将网络接口eth0挂接到网桥br0上
ovs-vsctl add-port br0 eth0
列出挂接到网桥br0上的所有网络接口
ovs-vsctl list-ports br
int-br-phy
qvo0687563b-33
qvo120cb10f-87
qvo57090e3f-ac
qvo5c21a6d1-f6
qvo639f9168-24
qvo63dc6837-61
qvo80392e46-ad
qvof4e92a70-4b
列出已挂接eth0网络接口的网桥
ovs-vsctl port-to-br eth0
测试
tcpdump –i eth0
查看虚拟机端口uuid
ovs-vsctl list port
查看端口
[root@Compute-40-F2-E9-11-B4-E1 ~]# ovs-ofctl dump-ports br-int
OFPST_PORT reply (xid=0x1): 6 ports
port 21: rx pkts=18, bytes=2112, drop=0, errs=0, frame=0, over=0, crc=0
tx pkts=1752, bytes=174182, drop=0, errs=0, coll=0
port 20: rx pkts=2899, bytes=383975, drop=0, errs=0, frame=0, over=0, crc=0
tx pkts=420, bytes=71990, drop=0, errs=0, coll=0
port 14: rx pkts=492, bytes=99622, drop=0, errs=0, frame=0, over=0, crc=0
tx pkts=31215, bytes=3068887, drop=0, errs=0, coll=0
port 16: rx pkts=715, bytes=66977, drop=0, errs=0, frame=0, over=0, crc=0
tx pkts=31067, bytes=3108098, drop=0, errs=0, coll=0
port 15: rx pkts=17, bytes=1194, drop=0, errs=0, frame=0, over=0, crc=0
tx pkts=31639, bytes=3162485, drop=0, errs=0, coll=0
port 65534: rx pkts=6, bytes=468, drop=0, errs=0, frame=0, over=0, crc=0
tx pkts=169281, bytes=15491521, drop=0, errs=0, coll=0
3.8.5 libvirt
3.8.5.1 配置
1、libvirt的配置文件
libvirt相关的配置的配置文件都在 /etc/libvirt/ 目录之中,
(1)/etc/libvirt/
文件是用于配置一些常用 libvirt 连接(通常是远程连接)的别名
cat /etc/libvirt/
uri_aliases = [
"remote1=qemu+ssh://************.93.201/system",]
其中,配置了 remote1 这个别名用于指代 qemu+ssh://************.93.201/system这个远程的libvirt连接,有这个别名后,就可以在 virsh 等工具或者自己写代码调用libvirt API
时使用这个别名而不需要写完整的、冗长的URI连接标识了。用 virsh 使用这个别名,连接到远程的 libvirt 上查询当前已经启动的客户机状态,然后退出连接,命令行操作如下:
[root@rhel6u3-ga kvm_demo]# virsh -c remote1
************.93.201′spassword:
Welcome to virsh, the virtualization interactive terminal.
Type: ‘help’ for help with commands
重新load libvirt配置命令service libvirtd reload
(2)/etc/libvirt/
是 libvirt 的守护进程 libvirtd 的配置文件,修改后需要让libvirtd重新加载配置文件(或重启libvirtd)才会生效。
(3)/etc/libvirt/
是 libvirt 对QEMU的驱动的配置文件,包括 VNC、SPICE等和连接它们时采用的权限认证方式的配置,也包括内存大页、SELinux、Cgroups等相关配置。
(4)/etc/libvirt/qemu/ 目录
qemu 目录下是存放使用QEMU驱动的域的配置文件
3.8.5.2
libvirtd的使用
libvirtd 是一个作为 libvirt 虚拟化管理系统中的服务器端的守护程序,如果要让某个节点能够用 libvirt 进行管理(无论是本地还是远程管理),都需要在这个节点上运行着 libvirtd 这个守护进程,以便让其他上层管理工具可以连接到该节点,libvirtd 负责执行其他管理工具发送它的虚拟化管理操作指令。
libvirt 的客户端工具(包括virsh、virt-manager等)可以连接到本地或远程的 libvirtd
进程,以便管理节点上的客户机(启动、关闭、重启、迁移等)、收集节点上的宿主机和客户机的配置和资源使用状态。
“service libvirtd start”命令表示启动libvirtd,
“service libvirtd restart”表示重启 libvirtd,
“service libvirtd reload”表示不重启服务但是重新加载配置文件(即/etc/libvirt/ 配置文件)。
3.8.5.2(bridge) 网络配置
1、
2、Java代码
virsh net-list --all
1. Name State Autostart
2. -----------------------------------------
3. default active yes
4. local active yes
3、Xml代码
虚拟机domain的配置文件中interface的配置段:
1.
2.
3.
4.
5.
3.8.6 镜像管理
安装客户机操作系统两种方式,一种通过母机GUI的虚拟机管理程序virt-manager,一种通过母机命令行virt-install工具。
3.8.6.1镜像
CC节点/home/ (7.1GB)
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_lbscontroller-lv_home 55G 7.3G 45G 14% /home
添加iso镜像到glance
glance image-create --name="" --is-public true --container-format bare --disk-format
iso < /var/ftp/RHEL6.4-20130130.0-Server-x86_
添加qcow2镜像到glance
glance image-create --name="win2008r2sp1" --is-public true --container-format bare
--disk-format qcow2 < /home/
3.8.6.2qemu-img磁盘管理工具
qemu-img是QEMU的磁盘管理工具
info
查看镜像的信息
create
创建镜像
check
检查镜像
convert
转化镜像的格式,(raw,qcow ……)
snapshot
管理镜像的快照
rebase
在已有的镜像的基础上创建新的镜像
resize
增加或减小镜像大小
1、对磁盘镜像文件进行一致性检查
qemu-img check win2008r2sp1
2、创建磁盘镜像文件
qemu-img create -f qcow2 -o backing_file=,size=5G 2
3、镜像格式转换
将VMware的vmdk格式镜像转换为KVM可以使用的qcow2镜像
qemu-img convert
将一个raw镜像文件转化为qcow2格式的镜像。
qemu-img convert -O qcow2
4、显示镜像文件内容
[root@CloudController home]# qemu-img info
image:
file format: qcow2
virtual size: 37G (39322648576 bytes)
disk size: 7.0G
cluster_size: 65536
5、qemu-vm命令介绍
-smp cpu 核数,一个核上面的线程数等的设置
-boot d 以CD-ROM 方式引导
-cdrom 制定镜像文件
-drive file= 指定盘符,初始偏移量,以及虚拟化管理程序种类,这里使用virtio,这种半虚技术,
-name 指定实例名,注意不要和现有的实例名重复
-net nic,model=virtio 创建网卡,并将其连接到vlan 中,使用virtio 虚拟技术
-net user,将用户模式的网络堆栈连接到VLAN,配置DHCP 服务器功能的可选服务
-net tap ,tap类型网络,相当于“桥模式
-usbdevice tablet 在安装系统时会出现两个鼠标,这个参数可以使鼠标同步起来
-vga 选择显卡类型
-vnc :2 开启一个vnc 端口,使用vnc 连接,来安装系统
3.8.6.3创建qcow2镜像
Red Hat VirtIO SCSI
1、创建磁盘镜像文件
qemu-img create -f qcow2 -o backing_file=,size=5G 2
2、启动kvm,映射驱动vfd 到光盘
/usr/libexec/qemu-kvm -m 2048 -localtime -smp 1 -drive
file=,if=virtio,boot=on -fda -cdrom
-boot order=d,menu=on -name instance-02,process=instance-02 --vnc :13 -usb -usbdevice tablet
之后迅速用vncviewer 接入查看,按F12 ,跳到菜单选项,否则会自动进入硬盘启动模式,如果不慎进入,请kill 掉kvm 进程,再重启kvm 尝试迅速按F12。选择从DVD/CD启动,之后一直回车。
3、格式化为fat32,不知道ntfs 行不行,这里用的是fat ,不是ntfs!格式化后,可能会重启,按F12,选择从iPXE启动。
安装过程同windows2008安装
4、重启虚拟机镜像,加载virtio 驱动
/usr/libexec/qemu-kvm -m 2048 -drive file= -cdrom -net
nic,model=virtio -net tap -boot order=c -usbdevice tablet -nographic -vnc :13,按提示(推荐)安装虚拟网络适配器,然后关机。
说明:由于windows server 2008默认没有带virtio的驱动,所以在启动镜像安装的时候我们
要带上这个驱动盘,下/pub/alt/virtio-win/latest/images/bin
载地址为
进入系统后,要将virtio驱动的网卡和磁盘驱动都装好,切记别忘了安装网卡驱动,安装完成后会显示两个网卡,镜像在nova再次启动后就只会剩下virtio驱动的虚拟网卡
5、添加镜像到glance
***************.200.230:/home//home
glance image-create --name="win2008r2sp111" --is-public true --container-format bare
--disk-format qcow2 < /home/
3.8.6.3 vmdk转换qcow2
不加参数,转化的后的qcow2镜像达40GB
3.2GB
40GB
正确的qemu-img conver格式如下:
qemu-img convert -c -f fmt -O
out_fmt -o
options fname out_fname
-c:采用压缩,只有qcow和qcow2才支持
-f:源镜像的格式,它会自动检测,所以省略之
-O 目标镜像的格式
-o 其他选先
fname:源文件
out_fname:转化后的文件
1、采用压缩方式将vmdk格式转化为qcow2格式,源文件:,转化后文件:
qemu-img convert -c -O qcow2
结果:源vmdk文件3.2GB,转化后的qcow2文件才1.4GB
2、上传镜像
上传img到NC节点
glance image-create --name="linux53 " --is-public true --container-format bare --disk-format
qcow2 < /home/
3、根据镜像创建云主机
3.8.6.4派生镜像(qcow2)测试
1、派生自己测试
(1)查看原始镜像大小
qemu-img info
image:
file format: qcow2
virtual size: 40G (42949672960 bytes)
disk size: 1.3G
cluster_size: 65536
(2)新建一个镜像,但是派生自它
qemu-img create -f qcow2 -o backing_file= 3G
(3)查看排除镜像大小
(4)查看所有镜像大小
2、合并镜像
3.8.6.5iso镜像测试
3.8.6.6本地kvm下制作win2008镜像
1、linux下kvm安装win2008虚拟机
(1)VEPA模式下、使能反射口功能,同一物理主机内的不同虚拟机之间报文通过交换机进行转发。 (Source mode 没有选择VEPA),在一台虚拟机上ping另外一台虚拟机不通。
解决办法:
Bridge模式改为nat模式
2、win2008虚拟机安装过程
3.8.6.8 qemu-kvm VS virt-install工具创建客户机系统
/var/lib/nova/instances/下存在_base和各个虚拟机镜像,实际采用的是qemu-kvm虚拟化
/var/lib/libvirt/images下存在着镜像,大小31GB,说明kvm虚拟化平台磁盘默认raw格式
image:
file format: raw
virtual size: 30G (32212254720 bytes)
disk size: 30G
1、qemu-kvm
qemu-kvm -m 2048 -localtime -smp 1 -drive file=,if=virtio,boot=on -fda
-cdrom -boot order=d,menu=on -name
instance-02,process=instance-02 --vnc :13 -usb -usbdevice tablet
2、virt-install命令详解
#virt-install
--name=v1
--ram=512
--vcpus=1
--cdrom=/media/CentOS_6.2_
--os-type=rhel6
--disk /var/lib/libvirt/imgages/,size=8,bus=virtio,cache=writeback
--network bridge=br0,model=virtio
--name 给虚拟机起个名字
--ram 分配给虚拟机的内存,单位MB
--vcpus 分配给虚拟机的cpu个数
--cdrom 指定安装文件的全路径
--disk 指定虚拟机img文件路径,如果虚拟机使用lvm分区,这里就指向到lvm的分区就行
size 虚拟机文件大小,单位GB
bus 虚拟机磁盘使用的总线类型,为了使虚拟机达到好的性能,这里使用virtio
cache 虚拟机磁盘的cache类型
--network bridge 指定桥接网卡
model 网卡模式,这里也是使用性能更好的virtio
--graphics 图形参数
3.8.9.4、KVM管理工具—libvirt
libvirt是目前使用最为广泛的对KVM虚拟机进行管理的工具和应用程序接口(API),而且一些常用的虚拟机管理工具(如virsh、virt-install、virt-manager等)和云计算框架平台(如OpenStack、OpenNebula、Eucalyptus等)都在底层使用libvirt的应用程序接口。
libvirtd 负责执行其他管理工具发送它的虚拟化管理操作指令。
3.8.9.5、KVM迁移测试
1、在192.168.200.234主机创建测试云主机
nova boot --availability-zone=nova: --image
b3d8fc40-6a00-4f28-8905-a4ce3e96e2c6 --nic
net-id=d90f8e81-250c-442c-b0a6-bb68c1f087b7,v4-fixed-ip=10.13.250.242
--flavor=win2008_app_2C_2G_50G win2008_app_242
2、在KVM中将instance-0000020b实例迁移到192.168.200.235主机上
Migrate过程:迁移是qemu中支持的,libvirt只是封装好命令并传递给qemu的监控模块。
版权声明:本文标题:openstack实施手册 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1703441514a451524.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论