本帖最后由 pig2 于 2014-2-19 19:02 编辑
阅读本文可以带着下面问题:
1.生产环境,什么操作系统比较适合部署openstack?
2.什么是公网网段
3.什么是内网网段
4.什么是虚拟机网段
一、服务器选择型号
服务器的选型在类似于我们这样的非互联网类的传统公司也会成为一个很大的问题。以为之前并没有相关大规模服务器部署的经验,而且在采购等等环节受制于国企的一些制度和利益的影响,并不是能如意的选择到自己真正适合需要的机器。
这几年我买买的最多的机器还是DELL的,因为是集团的指定供应商。但是感觉服务很一般,尤其是官方的服务,二级分销商可能还会热情一些。而且在销售上,二级分销商和官方居然是竞争的关系,经常会因为抢做我们的单子而发生争执。
另外,我总觉得DELL的机器要比惠普的差一些,特别是在主板布局以及接口等方面,如果你手边有这两种服务器的话把机箱盖打开对比一下就知道了。另外网上提到现在国产服务器的份额也在逐年增加,像联想、曙光等等,做的也不错,这个我没接触过,就不评论了。
我们用的做多的机型是R710和R510,相信大家对着两款机型比较熟悉,是兼容性比较强的机器,属于拿来做什么项目都行的类型。可扩展性比较强,DELL提供的扩展组件也比较多。如果后期要升级的话,建议最好找二级分销商,价格会低很多。同是国企的朋友最好注意第一次购买的时候一定要根据项目需求配置双CPU和大内存,因为这两块占的比重很大,不然后期升级的时候费用很高,相信财务上会比较麻烦。
DELL最近为了适应云计算领域新推出了PowerEdge C系列的机器, C6100、C6105、以及C6220,比较适用于云计算的大内存,大存储空间的特点,移除了云计算不会涉及到的一些组件,降低了成本,也是可以考虑下的。
还有就是买KVM的时候千万别忘了RemoteKey,不然总跑机房也挺麻烦的。
---------------------------------------------------------------------------------------------------------------------------------------------------
二、操作系统安装
为大家介绍了搭建云计算运营系统的服务器选型,相信经过这段时间,大家都已经成功采购到了符合业务量需求的服务器配置。
下面将分享操作系统的安装过程中的思路:
如果您已经从WIKI得到了OpenStack的部署文档,比如os-compute-starterguide-trunk,您会发现文档中的安装演示步骤都是以Ubuntu为模板的。这也不足为怪,因为OpenStack基金会与Ubuntu的东家Canonical合作甚密;并且文档是以搭建实验开发平台为读者目标进行编攒的,以Ubuntu的apt-get管理方式进行OpenStack的安装确实也会给初学者带来许多方便。但是,如果您需要搭建一个多节点平台,一个真正需要运营的生产环境,还是建议使用CentOs,或者是商业系统RedHat等。因为毕竟Ubuntu开发中面向的群体主要还是桌面用户,对于服务器的支持并不是十分友好。刚开始接触OpenStack的时候,我也是按照教程使用的Ubuntu12.04作为操作系统,碰到了许多问题,拖延了部署的时间。
1、安装后开机不进入系统,显示并定在了initramfs,这是因为服务器启动时间过长让Ubuntu系统错认为是某些硬件系统初始化失败,系统默认的超时时间过短,我们需要在
sudo vi /etc/default/grub 复制代码
中修改GRUB_CMDLINE_LINUX_DEFAULT="rootdelay=600" 复制代码
调大超时的时间,并且更新grub复制代码
2、在/etc/network/interfaces中修改网络配置后重启网络服务,发现IP并没有改为我们在配置文件中设置的IP,发现是因为启动了Gnome的桌面,桌面系统中的网络管理软件接管了网络服务,需要在桌面右上角手动将其禁用。
3、Ubuntu没完没了的更新,让你需要经常重启服务器,造成服务的中断。
种种问题因篇幅不一一赘述,虽然说Ubuntu在桌面电脑的表现上还是上佳的,但是服务器上我们还是选用较为稳定的CentOs6.3吧。
安装CentOS6.3最好为光盘安装,在mirrors下载CentOS-6.3-x86_64-bin-DVD1.iso,刻录一张DVD光盘。如果没有光驱,可以用ultraISO制作U盘安装盘,需要注意的是制作完U盘安装盘后还要将CentOS-6.3-x86_64-bin-DVD1.iso这个文件也拷贝到U盘的根目录下,并且要将bios的启动方式从bios方式改为EFI方式。
计算节点的分区可以选择默认模式,如果是控制节点推荐手动分区,因为要安装nova-volume服务,需要一个独立的LVM卷。CentOS6.3网络设备的标识方法从Eth0改为了Em1,在做配置的时候需要注意。最近已经成功测试了在R510/710系列上利用自动化部署cobbler自动安装CentOS6.3系统。
---------------------------------------------------------------------------------------------------------------------------------------------------
三、网络配置
和大家讨论了操作系统安装的方方面面,这里将带来OpenStack的网络配置。初接触OpenStack的人,在看了部署文档之后,可能会被Nova-Network,Fix-ip,Floating-ip等概念弄的一头雾水,下面会一一详细道来。
Flat DHCP Network
上图大家可能看的不是很明白,其实OpenStack的nova-network部署可以分成3个网段:
公网网段指的是可以直接访问到互联网的网段(但是此IP不一定非要从公司外部也能访问,这里的内外是从OpenStack网络系统出发而不是从公司网络的视角出发,请注意),也就是Floating IP配置的网段,我把它绑定在了Eth0。
内网网段指的是OpenStack系统内各服务器之间互联的顶层交换机所划的网段,这里将其设置为192.168.3.X,此网段无需出口,我把它绑定在了Eth1,在公司的网络也就是公网网络是访问不到的。
虚拟机网段指的是虚拟机运行时其IP所在的网段,也就是Nova-Network中提到的Fix-IP,由于NOVA底层是采用libvirt,所以OpenStack内部默认将其设置为桥接网络br100,这里将其桥接在内网网络上,也就是Eth1。
在服务器选型的时候,我们已经选择了千兆双网卡的机型。这样公网网段和内网网段就可以绑定到两个不同的网口。有的实验环境中,比如沙克老师的文章将两个公网和内网两个网段都配置在了一个网卡上,在实验环境是可以的,但是生产环境不推荐,因服务器如果和外部网络数据交换量大的时候,会使内部服务如nova-scheduler,nova-volume等服务带来延迟。
我的服务器网络配置auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 10.2.15.3
netmask 255.255.255.0
broadcast 10.2.15.255
gateway 10.2.15.1
dns-nameservers 8.8.8.8
auto eth1
iface eth1 inet static
address 192.168.3.1
netmask 255.255.255.0
network 192.168.3.0
broadcast 192.168.3.255 复制代码
上面提到的Flat DHCP Network是Nova-Network服务的一种模式。另外还有Flat,VLan等,这里就不一一介绍了。Flat DHCP指的是所有虚拟机处在同一个平坦的网段上,且DHCP服务自动为其分配IP。配置Fixed-IP命令sudo nova-manage network create private --fixed_range_v4=192.168.3.32/27 --num_networks=1 --bridge=br100 --bridge_interface=eth1 --network_size=32 复制代码
使用此命令,我们可以详细配置虚拟机网段Fixed-IP所在的网段,掩码,桥接网络名称,桥接网络端口等参数,后面在NOVA章将详细介绍。
---------------------------------------------------------------------------------------------------------------------------------------------------
四、keyStone
前面啰嗦了这么多,终于要正式进入OpenStack各组件安装部署的章节了。首先为大家带来的是OpenStack的用户登陆鉴权组件,KeyStone的安装。首先,安装mysql服务,并分别创建Nova, glance, swift等组件独立的用户和口令sudo apt-get install mysql-server python-mysqldb
复制代码
安装过程中提示设置密码,这里设置为mygreatsecretsed -i '/bind-address/ s/127.0.0.1/0.0.0.0/' /etc/mysql/my.cnf
sudo restart mysql
sudo mysql -uroot -pmygreatsecret -e 'CREATE DATABASE nova;'
sudo mysql -uroot -pmygreatsecret -e 'CREATE USER novadbadmin;'
sudo mysql -uroot -pmygreatsecret -e "GRANT ALL PRIVILEGES ON nova.* TO 'novadbadmin'@'%';"
sudo mysql -uroot -pmygreatsecret -e "SET PASSWORD FOR 'novadbadmin'@'%' = PASSWORD('novasecret');"
sudo mysql -uroot -pmygreatsecret -e 'CREATE DATABASE glance;'
sudo mysql -uroot -pmygreatsecret -e 'CREATE USER glancedbadmin;'
sudo mysql -uroot -pmygreatsecret -e "GRANT ALL PRIVILEGES ON glance.* TO 'glancedbadmin'@'%';"
sudo mysql -uroot -pmygreatsecret -e "SET PASSWORD FOR 'glancedbadmin'@'%' = PASSWORD('glancesecret');"
sudo mysql -uroot -pmygreatsecret -e 'CREATE DATABASE keystone;'
sudo mysql -uroot -pmygreatsecret -e 'CREATE USER keystonedbadmin;'
sudo mysql -uroot -pmygreatsecret -e "GRANT ALL PRIVILEGES ON keystone.* TO 'keystonedbadmin'@'%';"
sudo mysql -uroot -pmygreatsecret -e "SET PASSWORD FOR 'keystonedbadmin'@'%' = PASSWORD('keystonesecret');" 复制代码
安装KeyStone组件sudo apt-get install keystone python-keystone python-keystoneclient
sed -i '/admin_token/ s/ADMIN/admin/' /etc/keystone/keystone.conf
sed -i '/connection/ s/sqlite\:\/\/\/\/var\/lib\/keystone\/keystone.db/mysql\:\/\/keystonedbadmin\:keystonesecret@192.168.3.1\/keystone/' /etc/keystone/keystone.conf
#注意修改mysql服务器地址
sudo service keystone restart
sudo keystone-manage db_sync
export SERVICE_ENDPOINT="http://localhost:35357/v2.0"
export SERVICE_TOKEN=admin 复制代码
后面就是按照文档,创建租户Tenants,创建用户Users,创建角色Roles,最后进行租户、用户、角色之间的关联。不管创建什么类型,都会返回一个UID值,后面的步骤会用到前面的id,比如用户角色关联命令keystone user-role-add --user $USER_ID --role $ROLE_ID --tenant_id $TENANT_ID
复制代码
这个$USER_ID和$ROLE_ID等就是前面创建用户或者角色时候得到的ID
比如先创建用户keystone user-create --name admin --pass admin --email admin@foobar.com 复制代码
查看IDkeystone user-list
+----------------------------------+---------+-------------------+--------+
| id | enabled | email | name |
+----------------------------------+---------+-------------------+--------+
| b3de3aeec2544f0f90b9cbfe8b8b7acd | True | admin@foobar.com | admin |
| ce8cd56ca8824f5d845ba6ed015e9494 | True | nova@foobar.com | nova |
+----------------------------------+---------+-------------------+--------+ 复制代码
如上,我们创建的名字为admin的用户就会显示出来,后面的步骤就要用这个ID。
大家会发现这样最非常麻烦,而且id这样拷贝很容易出错,所以我们要用脚本来自动完成上面的这些操作,以及service endpoint的操作。
脚本下载地址复制代码
最后,用命令验证查看KeyStone是否安装正确keystone tenant-list
keystone user-list
keystone role-list
keystone service-list 复制代码
---------------------------------------------------------------------------------------------------------------------------------------------------
五、Nova
这章将为大家介绍OpenStack最重要的核心组件,虚拟机管理组件Nova的安装部署。虽然是最重要的组件,但是因为包装的非常完整,所以如果前面的网络配置和KeyStone部署都正确完成的话,Nova组件的安装是非常简单的。
首先安装Nova组件sudo apt-get install nova-api nova-cert nova-compute nova-compute-kvm nova-doc nova-network nova-objectstore nova-scheduler nova-volume rabbitmq-server novnc nova-consoleauth 复制代码
2013-02-21 修改
OpenStack服务器节点迁移(修改IP)后引发的nova-compute不启动 由于这篇文章提到的遇到服务器搬迁外网地址需要修改等问题,导致nova不能启动,这里在nova.conf中增加--iscsi_ip_address=192.168.3.1,这样系统创建的volume都会指向内网IP,避免类似的错误。
修改节点的/etc/nova/nova.conf配置文件--dhcpbridge_flagfile=/etc/nova/nova.conf
--dhcpbridge=/usr/bin/nova-dhcpbridge
--logdir=/var/log/nova
--state_path=/var/lib/nova
--lock_path=/var/lock/nova
--allow_admin_api=true
--use_deprecated_auth=false
--auth_strategy=keystone
--scheduler_driver=nova.scheduler.simple.SimpleScheduler
--s3_host=192.168.3.1
--ec2_host=192.168.3.1
--rabbit_host=192.168.3.1
--cc_host=192.168.3.1
--nova_url=http://192.168.3.1:8774/v1.1/
--routing_source_ip=192.168.3.1
--glance_api_servers=192.168.3.1:9292
--image_service=nova.image.glance.GlanceImageService
--iscsi_ip_prefix=192.168.4
--iscsi_ip_address=192.168.3.1
--sql_connection=mysql://novadbadmin:novasecret@192.168.3.1/nova
--ec2_url=http://192.168.3.1:8773/services/Cloud
--keystone_ec2_url=http://192.168.3.1:5000/v2.0/ec2tokens
--api_paste_config=/etc/nova/api-paste.ini
--libvirt_type=kvm
--libvirt_use_virtio_for_bridges=true
--start_guests_on_host_boot=true
--resume_guests_state_on_host_boot=true
# VNC specific configuration
--novnc_enabled=true
--novncproxy_base_url=http://10.2.15.3:6080/vnc_auto.html
--vncserver_proxyclient_address=10.2.15.3
--vncserver_listen=10.2.15.3
# network specific settings
--network_manager=nova.network.manager.FlatDHCPManager
--public_interface=eth0
--flat_interface=eth1
--flat_network_bridge=br100
--fixed_range=192.168.4.1/27
--floating_range=10.2.15.254/25
--network_size=32
--flat_network_dhcp_start=192.168.4.33
--flat_injected=False
--force_dhcp_release
--iscsi_helper=tgtadm
--connection_type=libvirt
--root_helper=sudo nova-rootwrap
--verbose 复制代码
配置文件中需要注意的是各服务访问的IP地址,三、网络配置 中介绍过,我的控制节点有两个IP,一个是OpenStack系统内网IP 192.168.3.1,另一个是公司内部可访问Internet的IP 10.2.15.3。这里推荐将服务IP写成内网IP 192.168.3.1,这样如果控制节点搬迁,或者公司10网段IP变更,那么我们的配置文件可以不动。
但是要注意的是--novncproxy_base_url=http://10.2.15.3:6080/vnc_auto.html
--vncserver_proxyclient_address=10.2.15.3 复制代码
这两个VNC参数的IP要为公司内部网络10网段的IP,因为这个必须是从服务器系统外围能访问的IP。
配置文件参数详解可参见bk-compute-adminguide-essex.pdf
之后为Nova-volume服务创建独立的逻辑卷复制代码
这里将/dev/sda6为你之前格式化为LVM的分区
创建名为nova-volumes的卷组sudo vgcreate nova-volumes /dev/sda6 复制代码
修改配置文件权限sudo chown -R nova:nova /etc/nova
sudo chmod 644 /etc/nova/nova.conf 复制代码
修改/etc/nova/api-paste.ini,填写nova服务在keystone注册的用户名密码sed -i '/admin_tenant_name/ s/%SERVICE_TENANT_NAME%/service/' /etc/nova/api-paste.ini
sed -i '/admin_user/ s/%SERVICE_USER%/nova/' /etc/nova/api-paste.ini
sed -i '/admin_password/ s/%SERVICE_PASSWORD%/nova/' /etc/nova/api-paste.ini 复制代码
同步数据库复制代码
创建虚拟机所在的Fixed_ip的ip地址段sudo nova-manage network create private --fixed_range_v4=192.168.4.32/27 --num_networks=1 --bridge=br100 --bridge_interface=eth1 --network_size=32
复制代码
192.168.4.32/27表示IP段从32开始,并且子网掩码为前27位为1
写入环境变量export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_AUTH_URL="http://192.168.3.1:5000/v2.0/" 复制代码
最后重启各服务sudo restart libvirt-bin; sudo restart nova-network; sudo restart nova-compute; sudo restart nova-api; sudo restart nova-objectstore; sudo restart nova-scheduler; sudo restart nova-volume; sudo restart nova-consoleauth; 复制代码
再增加计算节点只需要安装nova-computesudo apt-get install nova-compute
复制代码
修改计算节点的配置文件--dhcpbridge_flagfile=/etc/nova/nova.conf
--dhcpbridge=/usr/bin/nova-dhcpbridge
--logdir=/var/log/nova
--state_path=/var/lib/nova
--lock_path=/run/lock/nova
--allow_admin_api=true
--use_deprecated_auth=false
--auth_strategy=keystone
--scheduler_driver=nova.scheduler.simple.SimpleScheduler
--s3_host=192.168.3.1
--ec2_host=192.168.3.1
--rabbit_host=192.168.3.1
--cc_host=192.168.3.1
--nova_url=http://192.168.3.1:8774/v1.1/
--routing_source_ip=192.168.3.1
--glance_api_servers=192.168.3.1:9292
--image_service=nova.image.glance.GlanceImageService
--iscsi_ip_prefix=192.168.4
--sql_connection=mysql://novadbadmin:novasecret@192.168.3.1/nova
--ec2_url=http://192.168.3.1:8773/services/Cloud
--keystone_ec2_url=http://192.168.3.1:5000/v2.0/ec2tokens
--api_paste_config=/etc/nova/api-paste.ini
--libvirt_type=kvm
--libvirt_use_virtio_for_bridges=true
--start_guests_on_host_boot=true
--resume_guests_state_on_host_boot=true
# vnc specific configuration
--novnc_enabled=true
--novncproxy_base_url=http://10.2.15.3:6080/vnc_auto.html
--vncserver_proxyclient_address=10.2.15.4
--vncserver_listen=10.2.15.4
# network specific settings
--network_manager=nova.network.manager.FlatDHCPManager
--public_interface=eth0
--flat_interface=eth1
--flat_network_bridge=br100
--fixed_range=192.168.4.1/27
--floating_range=10.2.15.4/27
--network_size=32
--flat_network_dhcp_start=192.168.4.33
--flat_injected=False
--force_dhcp_release
--iscsi_helper=tgtadm
--connection_type=libvirt
--root_helper=sudo nova-rootwrap
--verbose 复制代码
各计算节点间配置文件的不同点只有--novncproxy_base_url=http://10.2.15.3:6080/vnc_auto.html
--vncserver_proxyclient_address=10.2.15.4 复制代码
其IP为计算节点的IP
最后,查看是否各服务安装成功,各计算节点是否正常sudo nova-manage service list 复制代码
---------------------------------------------------------------------------------------------------------------------------------------------------
六、Glance
为大家介绍OpenStack的镜像管理系统glance,负责存储和管理OpenStack的镜像和虚拟机的快照等。
glance的安装部署比较简单,前半部分花一些时间讲解glance部署步骤,后面的篇幅主要介绍各类操作系统镜像制作的方方面面。
首先安装glance的软件包sudo apt-get install glance glance-api glance-client glance-common glance-registry python-glance 复制代码
修改glance api的配置文件,主要是填写在keystone中设置的用户名密码等sed -i '/admin_tenant_name/ s/%SERVICE_TENANT_NAME%/service/' /etc/glance/glance-api-paste.ini
sed -i '/admin_user/ s/%SERVICE_USER%/glance/' /etc/glance/glance-api-paste.ini
sed -i '/admin_password/ s/%SERVICE_PASSWORD%/' /etc/glance/glance-api-paste.ini 复制代码
修改glance api的配置文件,增加keystone的支持sed -i '$a [paste_deploy]' /etc/glance/glance-api.conf
sed -i '$a flavor = keystone' /etc/glance/glance-api.conf 复制代码
修改glance组件注册文件,修改数据库地址及令牌sed -i '/sql_connection/s/=.*$/= mysql:\/\/glancedbadmin:glancesecret@192.168.3.1\/glance' /etc/glance/glance-registry.conf 复制代码
修改glance组件注册配置文件,增加对keystone的支持sed -i '$a [paste_deploy]' /etc/glance/glance-registry.conf
sed -i '$a flavor = keystone' /etc/glance/glance-registry.conf 复制代码
重启glancesudo restart glance-api
sudo restart glance-registry 复制代码
验证glance是否安装成功,成功会返回0复制代码
另外说一下glance的配置位置,如果大家的镜像和虚拟机快照不是非常多的话,建议就和nova的控制节点装在一起就行了,如果快照特别多,可以考虑glance单配一台服务器。
下面给大家分享镜像制作方面的一些经验。镜像制作一定要单开一台服务器或者在客户机client上制作,如果其放在控制节点或计算节点上,制作过程中由于会占用服务器大量资源导致其他服务拖慢卡顿。制作完成后拷贝镜像文件到glance image服务器,或在客户机上安装glance-client服务即可。
首先创建镜像盘,这个所有镜像的制作步骤都一样kvm-img create -f qcow2 server.img 5G 复制代码
镜像文件有多种格式,常见的是qcow2和raw,qcow2是增量式的,raw是非增量式的。
制作Ubuntu镜像sudo kvm -m 256 -cdrom ubuntu-12.04-server-amd64.iso -drive file=server.img,
if=virtio,index=0 -boot d -net nic -net user 复制代码
按照正常安装系统的步骤安装,可一路点默认设置下来,重启后安装ssh和cloud-init模块
网上的安装教程里面多半是这样的sudo apt-get update
sudo apt-get upgrade
sudo apt-get install openssh-server cloud-init
#Remove the network persistence rules from /etc/udev/rules.das their presence will result in
#the network interface in the instance coming up as an interfaceother than eth0.
sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules 复制代码
这个是错误的,cloud-init不能按照默认配置安装,要修改器安装脚本,否则安装后cloud-init访问不到OpenStack的metadata元数据服务器
正确的安装方法为sudo apt-get update
sudo apt-get upgrade
echo "cloud-init cloud-init/datasources string NoCloud, OVF,Ec2" > /tmp/debconf-selections
/usr/bin/debconf-set-selections /tmp/debconf-selections
rm -f /tmp/debconf-selections
apt-get -y install cloud-init
sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules 复制代码
其实ubuntu的官网上有做好的UEC镜像的下载,地址为http://cloud-images.ubuntu.com/releases/12.04.2/release-20130222/
可直接wget http://cloud-images.ubuntu.com/r ... img-amd64-disk1.img 下载12.04 64位的镜像
制作CentOS或Fedora镜像
因为CentOS、Fedora没有cloud-init模块,所以要用curl从metadata元数据服务器获得主机名等信息echo >> /root/.ssh/authorized_keys
curl -m 10 -s http://169.254.169.254/latest/meta-data/public-keys/0/openssh-
key | grep 'ssh-rsa' >> /root/.ssh/authorized_keys
echo "AUTHORIZED_KEYS:"
echo "************************"
cat /root/.ssh/authorized_keys
echo "************************" 复制代码
另外还要修改/etc/sysconfig/network-scripts/ifcfg-eth0,将网卡的硬件串号等信息删除,设为DHCP模式DEVICE="eth0"
BOOTPROTO=dhcp
NM_CONTROLLED="yes"
ONBOOT="yes" 复制代码
删除网卡网口绑定规则,否则将导致重启后网络不可用rm -rf /etc/udev/rules.d/70-persistent-net.rules 复制代码
最后上传镜像glance add name="xxxx-linux" is_public=true container_format=ovf disk_format=qcow2 < server.img
复制代码
制作windows镜像kvm-img create -f qcow2 windowsserver.img 20G
复制代码
sudo kvm -m 1024 -cdrom 7601.17514.101119-1850_x64fre_server_eval_zh-cn-GRMSXEVAL_CN_DVD.iso -drive file=windowsserver2008-enterprise.img,if=virtio -boot d -drive file=virtio-win-0.1-30.iso,index=3,media=cdrom -device virtio-net-pci -net nic -net user
复制代码
由于windows server 2008默认没有带virtio的驱动,所以在启动镜像安装的时候我们要带上这个驱动盘,下载地址为 http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin
进入系统后,要将virtio驱动的网卡和磁盘驱动都装好,切记别忘了安装网卡驱动,安装完成后会显示两个网卡,镜像在nova再次启动后就只会剩下virtio驱动的虚拟网卡
最后上传镜像glance add name="windows" is_public=true container_format=ovf disk_format=qcow2 < windowsserver.img
复制代码
来自群组: openstack技术组