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:

Name or ID of server.

destination host name.

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的监控模块。


本文标签: 镜像 安装 服务 文件 迁移