镜像设置虚拟内存

设置虚拟内存  时间:2021-01-16  阅读:()

OpenStack团队RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南管理实例、镜像、卷和容器RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南管理实例、镜像、卷和容器OpenStack团队rhos-docs@redhat.
com法律通告法律通告Copyright2017RedHat,Inc.
ThetextofandillustrationsinthisdocumentarelicensedbyRedHatunderaCreativeCommonsAttribution–ShareAlike3.
0Unportedlicense("CC-BY-SA").
AnexplanationofCC-BY-SAisavailableathttp://creativecommons.
org/licenses/by-sa/3.
0/.
InaccordancewithCC-BY-SA,ifyoudistributethisdocumentoranadaptationofit,youmustprovidetheURLfortheoriginalversion.
RedHat,asthelicensorofthisdocument,waivestherighttoenforce,andagreesnottoassert,Section4dofCC-BY-SAtothefullestextentpermittedbyapplicablelaw.
RedHat,RedHatEnterpriseLinux,theShadowmanlogo,JBoss,OpenShift,Fedora,theInfinitylogo,andRHCEaretrademarksofRedHat,Inc.
,registeredintheUnitedStatesandothercountries.
LinuxistheregisteredtrademarkofLinusTorvaldsintheUnitedStatesandothercountries.
JavaisaregisteredtrademarkofOracleand/oritsaffiliates.
XFSisatrademarkofSiliconGraphicsInternationalCorp.
oritssubsidiariesintheUnitedStatesand/orothercountries.
MySQLisaregisteredtrademarkofMySQLABintheUnitedStates,theEuropeanUnionandothercountries.
Node.
jsisanofficialtrademarkofJoyent.
RedHatSoftwareCollectionsisnotformallyrelatedtoorendorsedbytheofficialJoyentNode.
jsopensourceorcommercialproject.
TheOpenStackWordMarkandOpenStacklogoareeitherregisteredtrademarks/servicemarksortrademarks/servicemarksoftheOpenStackFoundation,intheUnitedStatesandothercountriesandareusedwiththeOpenStackFoundation'spermission.
Wearenotaffiliatedwith,endorsedorsponsoredbytheOpenStackFoundation,ortheOpenStackcommunity.
Allothertrademarksarethepropertyoftheirrespectiveowners.
摘要摘要实例和镜像管理指南介绍了在RedHatEnterpriseLinuxOpenStackPlatform环境中管理实例、镜像、卷和容器的内容.
目录目录序言第1章镜像服务1.
1.
镜像服务:新功能1.
2.
管理镜像1.
2.
1.
创建镜像1.
2.
1.
1.
在RHELOpenStackPlatform中使用KVMGuest镜像1.
2.
1.
2.
创建自定义的RedHatEnterpriseLinux镜像1.
2.
1.
2.
1.
创建一个RedHatEnterpriseLinux7镜像1.
2.
1.
2.
2.
创建RedHatEnterpriseLinux6镜像1.
2.
2.
上传镜像1.
2.
3.
更新镜像1.
2.
4.
删除镜像第2章配置OPENSTACKCOMPUTE存储2.
1.
架构概述2.
2.
配置第3章虚拟机实例3.
1.
管理实例3.
1.
1.
添加组件3.
1.
2.
创建实例3.
1.
3.
更新实例(使用操作菜单)3.
1.
4.
重新调整实例的大小3.
1.
5.
连接到一个实例3.
1.
5.
1.
使用Dashboard访问实例的控制台3.
1.
5.
2.
直接连接到一个VNC控制台3.
1.
5.
3.
直接连接到一个串行控制台3.
1.
5.
3.
1.
安装并配置nova-serialproxy3.
1.
6.
查看实例的使用3.
1.
7.
删除实例3.
2.
管理实例安全3.
2.
1.
管理密钥对3.
2.
1.
1.
创建一个密钥对3.
2.
1.
2.
导入一个密钥对3.
2.
1.
3.
删除密钥对3.
2.
2.
创建安全组3.
2.
3.
创建、分配和释放浮动IP地址3.
2.
3.
1.
为项目分配一个浮动IP地址3.
2.
3.
2.
分配一个浮动IP3.
2.
3.
3.
释放浮动IP3.
2.
4.
登录到实例3.
2.
5.
为实例添加一个admin密码3.
3.
管理FLAVOR3.
3.
1.
更新配置权限3.
3.
2.
创建flavor3.
3.
3.
更新常规属性3.
3.
4.
更新云主机类型的元数据3.
3.
4.
1.
查看元数据3.
3.
4.
2.
添加元数据3.
4.
管理主机集合3.
4.
1.
启用主机集合调度3.
4.
2.
查看可用域或主机集合56677888131718192020202424242426282828293030313232323233333333333434343536373738383839424343目录13.
4.
2.
查看可用域或主机集合3.
4.
3.
添加一个主机集合3.
4.
4.
更新一个主机集合3.
4.
5.
删除一个主机集群3.
5.
调度主机和CELL3.
5.
1.
配置调度过滤器3.
5.
2.
配置调度权重3.
5.
2.
1.
为主机配置权重选项3.
5.
2.
2.
为cell配置权重选项3.
6.
撤离实例3.
6.
1.
撤离一个实例3.
6.
2.
撤离所有实例3.
6.
3.
配置共享存储第4章管理卷(云硬盘)4.
1.
基本云硬盘(VOLUME)的使用和配置4.
1.
1.
创建云硬盘4.
1.
2.
为创建的云硬盘指定后端4.
1.
3.
编辑一个云硬盘的名称或描述信息4.
1.
4.
删除卷4.
1.
5.
为实例附加或取消附加一个云硬盘4.
1.
5.
1.
为实例挂载一个云硬盘4.
1.
5.
2.
从实例上断开一个云硬盘4.
1.
6.
把云硬盘设为只读4.
1.
7.
改变一个云硬盘的所有者4.
1.
7.
1.
通过命令行进行云硬盘传送4.
1.
7.
2.
通过Dashboard进行云硬盘传送4.
1.
8.
创建、克隆或删除云硬盘快照4.
1.
8.
1.
RedHatCeph后端中保护的快照和未保护的快照4.
1.
9.
把一个云硬盘上传到Image服务4.
2.
高级卷配置4.
2.
1.
备份和恢复一个云硬盘4.
2.
1.
1.
创建一个完全云硬盘备份4.
2.
1.
1.
1.
以Admin身份创建云硬盘备份4.
2.
1.
2.
创建一个增量云硬盘备份4.
2.
1.
3.
当BlockStorage数据库损坏时恢复云硬盘4.
2.
1.
4.
从备份恢复一个云硬盘4.
2.
1.
5.
查看和修改租户的备份配额4.
2.
1.
6.
通过Dashboard启用云硬盘备份管理功能4.
2.
1.
7.
设置一个NFS共享作为备份存储库4.
2.
1.
7.
1.
设置不同的备份文件大小4.
2.
2.
迁移卷4.
2.
3.
使用云硬盘类型进行云硬盘分组设置4.
2.
3.
1.
创建并配置一个云硬盘类型4.
2.
3.
2.
编辑一个云硬盘类型4.
2.
3.
3.
删除一个云硬盘类型4.
2.
3.
4.
创建和配置私有云硬盘类型4.
2.
4.
使用服务质量规格4.
2.
4.
1.
创建并配置一个QOS规格4.
2.
4.
2.
为云硬盘类型关联一个QOS规格4.
2.
4.
3.
为云硬盘类型取消关联一个QOS规格4.
2.
5.
使用静态密钥加密卷4.
2.
5.
1.
创建一个静态密钥4.
2.
5.
2.
配置云硬盘类型加密4343434545464950515253535456565657575858585858595960606161626262636464656565666767686869696970707171717172RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南24.
2.
5.
2.
配置云硬盘类型加密4.
2.
6.
配置如何在多后端间分配卷第5章管理容器5.
1.
创建一个容器5.
2.
为容器创建虚拟文件夹5.
3.
上传一个对象5.
4.
复制一个对象5.
5.
删除对象5.
6.
删除容器第6章配置OPENSTACK使用NFS后端6.
1.
配置SELINUX6.
2.
配置共享6.
3.
创建一个新的后端定义6.
4.
为NFS后端创建一个云硬盘类型6.
5.
测试新的NFS后端第7章配置带有NUMA的CPU固定(CPUPINNING)7.
1.
COMPUTE节点的配置7.
2.
调度程序配置7.
3.
集合(AGGREGATE)和FLAVOR配置附录A.
镜像配置参数7273757575757676767878787980818282838386目录3RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南4序言RedHatEnterpriseLinuxOpenStackPlatform(RHELOpenStackPlatform)提供了一个在RedHatEnterpriseLinux上构建私有或公共IaaS(Infrastructure-as-a-Service,基础设施即服务)云服务的平台.
它为部署使用云技术的计算环境提供了扩展性和容错性.
本指南讨论了与创建和管理镜像(image)、实例(instance)、卷(volume,也被称为云硬盘)和容器(container)相关的内容.
同时,它还包括了为实例配置存储,以及为RHELOpenStackPlatform配置NFS后端的信息.
您可以通过OpenStackdashboard或命令行客户端来对云进行管理.
多数操作都可以通过这两种方法中的任一方法完成,而一些高级的操作只能通过命令行来完成.
注意注意如需完整的RHELOpenStackPlatform文档,请访问RedHatEnterpriseLinuxOpenStackPlatformDocumentation序言5第1章镜像服务本章介绍了在RHELOpenStackPlatform中管理镜像和存储所需的步骤.
虚拟机镜像(image)就是一个包括安装了可引导操作系统的虚拟磁盘的文件.
虚拟机镜像可以有不同的格式,以下是RHELOpenStackPlatform支持的格式:RAW-没有进行结构化的磁盘镜像格式.
QCOW2-QEMU仿真程序支持的磁盘格式.
ISO-保存在一个二进制文件中的、包括磁盘每个扇区中的数据的数据备份.

AKI-AmazonKernelImage.
AMI-AmazonMachineImage.
ARI-AmazonRAMDiskImage.
VDI-VirtualBox虚拟机监控程序和QEMU仿真程序支持的磁盘格式.
VHD-VMWare、VirtualBox以及其它系统的虚拟机监控程序支持的通用磁盘格式.
VMDK-一些通用虚拟机监控程序支持的磁盘格式.
因为ISO包括了已安装了操作系统的可引导文件系统,所以我们通常不认为ISO是一个虚拟机镜像格式.
但是,您可以向处理其它虚拟机镜像文件一样处理ISO.
为了下载红帽官方的RedHatEnterpriseLinux云镜像,您需要一个有效的RedHatEnterpriseLinux订阅:RedHatEnterpriseLinux7KVMGuestImageRedHatEnterpriseLinux6KVMGuestImage1.
1.
镜像服务:新功能RHELOpenStackPlatform7发行版本中的镜像服务包括以下新功能:镜像转换镜像转换-在导入镜像时调用任务API对镜像进行转换(在Kilo中只支持qcow/raw格式的转换).
作为镜像导入流程的一部分,一个插件提供了对镜像进行转换的功能.
这个插件可以根据用户的配置被启用或被禁用.
因此,用户需要指定用于进行部署的首选镜像格式.

镜像服务(Imageservice)在接收到特定格式镜像的数据后会把这些数据保存在一个临时的存储中.
然后,会触发转换插件来把这些数据转换为目标格式,并把转换后的数据保存在最终的存储位置中.
当整个过程完成后,临时存储的镜像数据会被删除.
因此,上传的原始镜像数据不会被镜像服务保留.
RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南6注意注意镜像转换的过程只会在导入(导入(import))一个镜像时才会被触发.
在上传(上传(upload))一个镜像时不会触发镜像的转换.
例如:$glance--os-image-api-version2task-create--typeimport--input'{"import_from_format":"qcow2","import_from":"http://127.
0.
0.
1:8000/test.
qcow2","image_properties":{"disk_format":"qcow2","container_format":"bare"}}'镜像內省(镜像內省(ImageIntrospection))-每种格式的镜像本身都会包括一组元数据.
例如,一个vmdk包括以下参数:$head-20so-disk.
vmdk#DiskDescriptorFileversion=1CID=d5a0bce5parentCID=ffffffffcreateType="streamOptimized"#ExtentdescriptionRDONLY209714SPARSE"generated-stream.
vmdk"#TheDiskDataBase#DDBddb.
adapterType="buslogic"ddb.
geometry.
cylinders="102"ddb.
geometry.
heads="64"ddb.
geometry.
sectors="32"ddb.
virtualHWVersion="4"通过对vmdk进行內省,您可以方便地知道disk_type是streamOptimized,adapter_type是buslogic.
通过在镜像服务中对这些元数据进行提取,管理员不再需要了解所有元数据(除非需要覆盖其中的一些数据).
这些元数据参数对镜像的使用者非常有用.
例如,在Compute节点中,对一个streamOptimized磁盘进行实例化的过程和对flat磁盘进行实例化的过程完全不同.
现在,您可以在导入镜像的过程中,通过调用任务API进行镜像內省.
注意注意在Kilo中,您只能內省virtual_size元数据参数.
1.
2.
管理镜像OpenStackImage服务(glance)提供了磁盘和服务器镜像的发现(discovery)、注册(registration)和分发(delivery)功能.
您可以对服务器镜像进行复制或进行快照,然后进行保存.
存储的镜像可以作为模板来快速设置并运行一个新服务器.
1.
2.
1.
创建镜像第1章镜像服务7本节介绍了使用RedHatEnterpriseLinux6和RedHatEnterpriseLinux7ISO文件手工创建OpenStack兼容的.
qcow2格式镜像.
1.
2.
1.
1.
在RHELOpenStackPlatform中使用KVMGuest镜像您可以使用一个已经准备就绪的RHELKVMguestqcow2镜像(可以从RHEL7KVMGuestImage或RHEL6.
6KVMGuestImage获得).
这些镜像被配置为使用cloud-init,并需要使用ec2兼容的元数据服务来提供SSH密钥.
注意注意对于KVMguest镜像:这个镜像中的root帐号被禁用,但是,可以通过sudo来使用一个名为cloud-user的特殊用户.
这个镜像服务没有root密码设置.
root密码在/etc/shadow中被锁定(在第2项中加了!
!
).
对于一个OpenStack实例,我们推荐用户通过OpenStackdashboard或命令行产生一个ssh密钥对,并使用它们进行SSH公共验证来作为实例的root用户.
在启动实例时,公共密钥会被植入.
您可以使用在创建密钥对时下载的私人密钥进行验证.

如果您不想使用密钥对,您可以使用在为一个实例添加一个admin密码一节中介绍的过程创建admin密码.
如果您需要创建一个自定义的RedHatEnterpriseLinux镜像,请参阅创建一个RedHatEnterpriseLinux7镜像或创建一个RedHatEnterpriseLinux6镜像.
1.
2.
1.
2.
创建自定义的RedHatEnterpriseLinux镜像先决条件:先决条件:使用一个运行Linux的主机创建镜像.
它可以是任何可以安装并运行Linux软件包的机器.
libvirt和virt-manager(运行yumgroupinstall-y@virtualization).
这会安装创建一个guest操作系统所需的所有软件包.
Libguestfs工具程序(运行yuminstall-ylibguestfs-tools-c).
这会安装一组用来访问和修改虚拟机镜像的工具程序.
一个RedHatEnterpriseLinux7ISO文件(RHEL7.
0BinaryDVD或RHEL6.
6BinaryDVD).
一个用来修改kickstart文件的文本编辑程序.
注意注意在以下的过程中,所有带有[user@host]#提示符的命令都需要在您的主机系统上运行.
1.
2.
1.
2.
1.
创建一个创建一个RedHatEnterpriseLinux7镜像镜像RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南8本节介绍了使用RedHatEnterpriseLinux7ISO文件手工创建OpenStack兼容的.
qcow2格式镜像的步骤.
1.
使用virt-install开始进行安装:[user@host]#qemu-imgcreate-fqcow2rhel7.
qcow28G[user@host]#virt-install--virt-typekvm--namerhel7--ram2048\--cdrom/tmp/rhel-server-7.
0-x86_64-dvd.
iso\--diskrhel7.
qcow2,format=qcow2\--network=bridge:virbr0--graphicsvnc,listen=0.
0.
0.
0\--noautoconsole--os-type=linux--os-variant=rhel7启动一个实例并开始安装过程.
注意注意如果实例没有自动启动,运行以下命令:[user@host]#virt-viewerrhel72.
按以下内容设置虚拟机:a.
AttheinitialInstallerbootmenu,choosetheInstallRedHatEnterpriseLinux7.
0option.
b.
选择适当的Language和Keyboard选项.
第1章镜像服务9c.
Whenpromptedaboutwhichtypeofdevicesyourinstallationuses,chooseAuto-detectedinstallationmedia.
d.
Whenpromptedaboutwhichtypeofinstallationdestination,chooseLocalStandardDisks.
Forotherstorageoptions,chooseAutomaticallyconfigurepartitioning.
e.
对于软件,选择MinimalInstall.
f.
对于网络和主机名,为您的设备选择eth0作为网络,并输入设备的hostname.
默认的主机名是localhost.
localdomain.
RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南10g.
Choosetherootpassword.
TheinstallationprocesscompletesandtheComplete!
screenappears.
3.
安装完成后,重启实例并以root用户身份登录.
4.
更新/etc/sysconfig/network-scripts/ifcfg-eth0文件,使它只包括以下内容:TYPE=EthernetDEVICE=eth0ONBOOT=yesBOOTPROTO=dhcpNM_CONTROLLED=no5.
重启机器.
6.
在ContentDeliveryNetwork中注册机器:#subscription-managerregistera.
在提示时输入您的用户门户网站(CustomerPortal)的用户名和密码:Username:admin@example.
comPassword:b.
找到包括所需频道的权利池:#subscription-managerlist--available|grep-A8"RedHatEnterpriseLinuxServer"c.
使用在上一步所获得的权利池ID来把RedHatEnterpriseLinuxServer的权利附加到系统上:#subscription-managerattach--pool=pool_id第1章镜像服务11d.
启用所需的频道:#subscription-managerrepos--enable=rhel-7-server-rpms对于RHELOpenStackPlatform7,所需的频道是rhel-7-server-openstack-7.
0-rpms和rhel-7-server-rh-common-rpms.
注意注意如需更多相关信息,请参阅InstallationReference中的"SubscribetotheRequiredChannels".
7.
更新系统.
#yum-yupdate8.
安装cloud-init软件包.
#yuminstall-ycloud-utils-growpartcloud-init9.
编辑/etc/cloud/cloud.
cfg配置文件,在cloud_init_modules下添加以下内容:-resolv-conf当实例第一次引导时,resolv-conf选项会自动配置resolv.
conf.
这个文件包括了与实例相关的信息,如nameservers、domain和其它选项.
10.
把以下行添加到/etc/sysconfig/network以避免访问EC2元数据服务时出现问题.
NOZEROCONF=yes11.
为了确保控制台的信息出现在dashboard的日志日志标签页中,以及novaconsole-log输出中,把以下的引导选项添加到/etc/default/grub文件中:GRUB_CMDLINE_LINUX_DEFAULT="console=tty0console=ttyS0,115200n8"运行以下命令:#grub2-mkconfig-o/boot/grub2/grub.
cfg这会输出以下结果:Generatinggrubconfigurationfile.
.
.
Foundlinuximage:/boot/vmlinuz-3.
10.
0-229.
7.
2.
el7.
x86_64Foundinitrdimage:/boot/initramfs-3.
10.
0-229.
7.
2.
el7.
x86_64.
imgFoundlinuximage:/boot/vmlinuz-3.
10.
0-121.
el7.
x86_64Foundinitrdimage:/boot/initramfs-3.
10.
0-121.
el7.
x86_64.
imgFoundlinuximage:/boot/vmlinuz-0-rescue-b82a3044fb384a3f9aeacf883474428bFoundinitrdimage:/boot/initramfs-0-rescue-b82a3044fb384a3f9aeacf883474428b.
imgdoneRedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南1212.
取消注册虚拟机.
这样可以避免通过对创建的镜像进行克隆所产生的镜像都有相同的订阅请求.
#subscription-managerrepos--disable=*#subscription-managerunregister#yumcleanall13.
关闭实例:#poweroff14.
使用virt-sysprep命令重置并清理镜像,从而可以避免在创建实例时出现问题:[user@host]#virt-sysprep-drhel715.
使用virt-sparsify命令减少镜像的大小.
这个命令会把磁盘镜像中的所有空闲空间转换为主机的空闲空间:[user@host]#virt-sparsify--compress/tmp/rhel7.
qcow2rhel7-cloud.
qcow2这会在运行此命令的地方创建一个新的rhel7-cloud.
qcow2文件.
rhel7-cloud.
qcow2镜像文件可以被上传到Image服务.
如需了解使用dashboard把镜像文件上传到OpenStack部署中的信息,请参阅上传镜像.
1.
2.
1.
2.
2.
创建创建RedHatEnterpriseLinux6镜像镜像本节介绍了使用RedHatEnterpriseLinux6ISO文件手工创建OpenStack兼容的.
qcow2格式镜像的步骤.
1.
使用virt-install开始进行安装:[user@host]#qemu-imgcreate-fqcow2rhel6.
qcow24G[user@host]#virt-install--connect=qemu:///system--network=bridge:virbr0\--name=rhel6.
6--os-typelinux--os-variantrhel6\--diskpath=rhel6.
qcow2,format=qcow2,size=10,cache=none\--ram4096--vcpus=2--check-cpu--accelerate\--hvm--cdrom=rhel-server-6.
6-x86_64-dvd.
iso启动一个实例并开始安装过程.
注意注意如果实例没有自动启动,运行以下命令:[user@host]#virt-viewerrhel62.
按以下内容设置虚拟机:第1章镜像服务13a.
AttheinitialInstallerbootmenu,choosetheInstallorupgradeanexistingsystemoption.
Stepthroughtheinstallationprompts.
Acceptthedefaults.
安装的过程会检查磁盘并进行一个介质检查介质检查操作.
当检查成功完成成功完成后,会弹出磁盘.
b.
选择适当的Language和Keyboard选项.
c.
Whenpromptedaboutwhichtypeofdevicesyourinstallationuses,chooseBasicStorageDevices.
d.
为主机选择一个hostname.
默认的主机名是localhost.
localdomain.
e.
设置timezone和root密码.
RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南14f.
Basedonthespaceonthedisk,choosethetypeofinstallation.
g.
ChoosetheBasicServerinstall,whichinstallsanSSHserver.
h.
安装过程完成,Congratulations,yourRedHatEnterpriseLinuxinstallationiscomplete界面会出现.
3.
重启实例,并以root用户登录.
4.
更新/etc/sysconfig/network-scripts/ifcfg-eth0文件,使它只包括以下内容:TYPE=EthernetDEVICE=eth0ONBOOT=yes第1章镜像服务15BOOTPROTO=dhcpNM_CONTROLLED=no5.
重启机器.
6.
在ContentDeliveryNetwork中注册机器:#subscription-managerregistera.
在提示时输入您的用户门户网站(CustomerPortal)的用户名和密码:Username:admin@example.
comPassword:b.
找到包括所需频道的权利池:#subscription-managerlist--available|grep-A8"RedHatEnterpriseLinuxServer"c.
使用在上一步所获得的权利池ID来把RedHatEnterpriseLinuxServer的权利附加到系统上:#subscription-managerattach--pool=pool_idd.
启用所需的频道:#subscription-managerrepos--enable=rhel-6-server-rpms对于RHELOpenStackPlatform7,所需的频道是rhel-7-server-openstack-7.
0-rpms和rhel-6-server-rh-common-rpms.
注意注意如需更多相关信息,请参阅InstallationReference中的"SubscribetotheRequiredChannels".
7.
更新系统.
#yum-yupdate8.
安装cloud-init软件包.
#yuminstall-ycloud-utils-growpartcloud-init9.
编辑/etc/cloud/cloud.
cfg配置文件,在cloud_init_modules下添加以下内容:-resolv-conf当实例第一次引导时,resolv-conf选项会自动配置resolv.
conf.
这个文件包括了与实例相关的信息,如nameservers、domain和其它选项.
RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南1610.
为了防止网络出现问题,创建/etc/udev/rules.
d/75-persistent-net-generator.
rules文件.
#echo"#">/etc/udev/rules.
d/75-persistent-net-generator.
rules这会避免创建/etc/udev/rules.
d/70-persistent-net.
rules文件.
如果创建了/etc/udev/rules.
d/70-persistent-net.
rules文件,当从快照引导时,网络可能无法正常工作(网络接口被创建为"eth1",而不是"eth0".
IP地址也没有被分配).
11.
把以下行添加到/etc/sysconfig/network以避免访问EC2元数据服务时出现问题.
NOZEROCONF=yes12.
为了确保控制台的信息出现在dashboard的日志日志标签页中,以及novaconsole-log输出中,把以下的引导选项添加到/etc/grub.
conf中:console=tty0console=ttyS0,115200n813.
取消注册虚拟机.
这样可以避免通过对创建的镜像进行克隆所产生的镜像都有相同的订阅请求.
#subscription-managerrepos--disable=*#subscription-managerunregister#yumcleanall14.
关闭实例:#poweroff15.
使用virt-sysprep命令重置并清理镜像,从而可以避免在创建实例时出现问题:[user@host]#virt-sysprep-drhel6.
616.
使用virt-sparsify命令减少镜像的大小.
这个命令会把磁盘镜像中的所有空闲空间转换为主机的空闲空间:[user@host]#virt-sparsify--compressrhel6.
qcow2rhel6-cloud.
qcow2这会在运行此命令的地方创建一个新的rhel6-cloud.
qcow2文件.
注意注意根据应用到这个实例的flavor中的磁盘空间设置,您需要手工调整实例分区的大小.
rhel6-cloud.
qcow2镜像文件可以被上传到Image服务.
如需了解使用dashboard把镜像文件上传到OpenStack部署中的信息,请参阅上传镜像.
1.
2.
2.
上传镜像第1章镜像服务171.
在dashboard中,选择项目项目>Compute>镜像镜像.
2.
点创建镜像创建镜像.
3.
输入相关的值后点创建镜像创建镜像.
项备注名称镜像的名称.
在一个项目中,不同镜像的名称需要是唯一的.
描述对镜像的简单描述.
镜像源镜像源:镜像地址或镜像文件.
根据您的选择,以下项会被显示.
镜像地址或镜像文件选择镜像地址选项来指定镜像的URL.
选择镜像文件选项来从本地磁盘上传一个镜像.
格式镜像格式(例如qcow2).
构架镜像架构.
例如,使用i686作为32位架构;或使用x86_64作为64位架构.
最小磁盘(GB)引导镜像所需的最小磁盘大小.
如果没有指定,默认值是0(没有最小磁盘大小的限制).
最低内存(MB)引导镜像所需的最低内存大小.
如果没有指定,默认值是0(没有最低内存大小的限制).
公有如果选择这个选项,这个镜像对所有可以访问这个项目的用户有效.
受保护的如果选择了这个选项,只有具有特定权限的用户可以删除这个镜像.
注意注意另外,您也可以使用带有property选项的glanceimage-create命令创建镜像.
在这个命令的命令行中可以使用多个值(请参阅镜像配置参数).
1.
2.
3.
更新镜像RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南181.
2.
3.
更新镜像1.
在dashboard中,选择项目项目>Compute>镜像镜像.
2.
从下拉菜单中选编辑镜像编辑镜像.
注意注意编辑镜像编辑镜像选项只在以admin用户登录时才有效.
当以demo用户登录时,有效的选项是启动云主机启动云主机和创建云硬盘创建云硬盘.
3.
更新相关的值后点更新镜像更新镜像.
您可以编辑以下值:名称、描述、内核ID、ramdiskID、架构、格式、最小磁盘、最低内存、公共、受保护的.
4.
点下拉菜单并选更新元数据更新元数据选项.
5.
通过把左面栏中的项添加到右面栏来指定元数据.
左面的栏中包括了在ImageServiceMetadataCatalog中定义的元数据.
如果需要添加您自己选择的关键字的元数据,选其它其它,然后点保存保存.
注意注意另外,您也可以使用带有property选项的glanceimage-update命令创建镜像.
在这个命令的命令行中可以使用多个值(请参阅镜像配置参数).
1.
2.
4.
删除镜像1.
在dashboard中,选择项目项目>Compute>镜像镜像.
2.
选择需要删除的镜像后点删除镜像删除镜像.
第1章镜像服务19第2章配置OPENSTACKCOMPUTE存储本节介绍了OpenStackCompute(nova)中的镜像后端存储的架构,以及基本的配置选项.
2.
1.
架构概述在RedHatEnterpriseLinuxOpenStackPlatform中,OpenStackCompute服务使用KVMhypervisor来执行计算负载.
libvirt驱动被用来处理和KVM间的所有交流,并启用对虚拟机的创建功能.
Compute服务需要考虑两类libvirt存储:基础镜像(baseimage):Image服务镜像的一个缓存的、具有特定格式的副本.
实例磁盘(Instancedisk):由libvirt创建作为虚拟机实例的后端.
实例磁盘可以存储在Compute的临时存储(使用libvirt),也可以存储在一个具有持久性的存储中(如使用BlockStorage).
Compute服务创建虚拟机实例的步骤是:1.
缓存Image服务的后端镜像作为libvirt的基础.
2.
把基础镜像转换为raw格式(如果被配置).
3.
调整基础镜像的大小来匹配虚拟机flavor的规范.
4.
使用基础镜像创建libvirt实例磁盘.
在上面的图中,#1实例磁盘使用临时存储;#2磁盘使用块存储卷.
2.
2.
配置用来处理libvirt基础镜像和实例磁盘的Compute配置(参数在/etc/nova/nova.
conf文件中定义)会决定环境的性能和安全性.
表表2.
1.
Compute镜像参数镜像参数RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南20项参数描述默认[DEFAULT]force_raw_images是否把non-raw缓存的基础镜像转换为raw(布尔值).
如果non-raw镜像被转换为raw,Compute将会:不允许备份文件(可能会产生安全性的问题).
删除存在的压缩(避免CPU瓶颈).
把基础镜像转换为raw格式会比hypervisor直接使用镜像(例如,一个qcow2镜像)需要更多空间.
如果您的系统有较慢的I/O或空间比较小,您可以把它设置为'false',这样可以通过提高数据压缩/解压操作对CPU的要求来换取对输入带宽要求最小化的目的.
raw基础镜像需要和libvirt_images_type=lvm一起使用.
true[DEFAULT]use_cow_imageslibvirt实例磁盘是否使用CoW(CopyonWrite)(布尔值):false-使用raw格式.
在不使用CoW时,磁盘镜像的公用部分会需要更多的存储空间.
true-使用cqow2格式.
在使用CoW时,每个虚拟机都有自己的数据副本,因此可以提高多系统共存的性能(这取决于后端的存储和主机缓存).
true[DEFAULT]preallocate_imageslibvirt实例磁盘的预分配模式.
它的值可以是:none-在实例启动时不分配存储.
space-在实例启动时完全分配存储(使用fallocate),这可以保证获得所需的存储空间和I/O性能.
即使没有使用CoW实例磁盘,每个虚拟机所获得的数据副本也是稀疏的,因此,虚拟机可能会在运行时出现ENOSPC错误.
通过在实例磁盘镜像中运行fallocate(1),Compute会马上并高效地为它们在文件系统中分配存储空间(如果支持这个功能).
因为在运行时,文件系统不需要动态地分配数据块,所以运行时的性能也会提高.
none第2章配置OPENSTACKCOMPUTE存储21[DEFAULT]resize_fs_using_block_device是否启用通过访问块设备上的基础镜像来直接调整基础镜像的功能(布尔值).
使用较旧版本的cloud-init的镜像不需要这个设置(它们无法调整自身的大小).
因为这个参数会启用直接挂载镜像的功能,而这个功能通常会因为安全性的原因被禁用,所以它在默认情况下没有被启用.
false[DEFAULT]default_ephemeral_format一个新临时卷的默认格式.
它的值可能是:ext2、ext3或ext4.
对于大的、新的磁盘,ext4格式会比ext3提供更快的初始化时间.
您可以使用guest_format配置选项单独对每个系统中的这个设置进行覆盖.
ext4[DEFAULT]image_cache_manager_interval在连续两次运行镜像缓存管理器(imagecachemanager)间需要等待的秒数,这会影响到libvirtcompute节点的基础缓存.
在这段间隔时间内会自动删除不再使用的缓存镜像(请参阅remove_unused_base_images和remove_unused_original_minimum_age_seconds).
2400[DEFAULT]remove_unused_base_images是否启动自动删除不使用的基础镜像的功能(每image_cache_manager_interval秒检查一次).
当镜像在remove_unused_original_minimum_age_seconds秒的时间内没有被访问,则认为它是unused.
true[DEFAULT]remove_unused_original_minimum_age_seconds在从libvirt缓存中删除未使用的基础镜像前,这个基础镜像存在的时间(remove_unused_base_images).
86400项参数描述默认RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南22[libvirt]images_type为libvirt实例磁盘使用的镜像类型(替代use_cow_images).
它的有效值是:raw、qcow2、lvm、rbd和default.
如果指定为default,use_cow_images参数的值会被使用.
default项参数描述默认第2章配置OPENSTACKCOMPUTE存储23第3章虚拟机实例OpenStackCompute是一个中心组件,它根据需要提供虚拟机.
Compute会通过Identity服务进行用户验证;使用Image服务来获得镜像(用来启动实例);使用dashboard服务作为用户和管理界面.
RHELOpenStackPlatform可以使您方便地管理云中的实例.
Compute服务会创建、调度并管理实例,并使其它OpenStack组件可以使用这个功能.
本章介绍了相关的操作,以及添加组件(如密钥对、安全组、主机集合、flavor)的信息.
实例(instance)在OpenStack中被用来代表虚拟机实例.
3.
1.
管理实例在创建实例前,您需要确保其它OpenStack组件(例如网络、密钥对、作为引导源的镜像或卷)已为实例准备好.
本节讨论了添加这些组件的步骤,以及创建和管理实例的内容.
管理实例包括更新实例、登录到实例、查看实例是如何被使用的、调整实例的大小以及删除实例.
3.
1.
1.
添加组件按照以下小节中介绍的内容创建网络、密钥对以及上传镜像或卷源的内容.
当创建实例时需要这些元素,而它们在默认的情况下不会被自动提供.
同时,您还需要创建一个新的安装组来提供对用户的SSH访问.
1.
在dashboard中选择项目项目.
2.
选择网络网络>网络网络,确定已经存在了一个新实例可以加入的私人网络.
如需了解创建网络的信息,请参阅NetworkingGuide的AddaNetwork一节(RedHatEnterpriseLinuxOpenStackPlatform).
3.
选择Compute>访问访问&安全安全>密钥对密钥对,确定已经存在了一个密钥对(如需了解创建密钥对的信息,请参阅第3.
2.
1.
1节"创建一个密钥对").
4.
确定您有一个可以作为引导源的镜像或云硬盘:要查看引导源镜像,选择镜像镜像标签页(如需了解创建镜像的信息,请参阅第1.
2.
1节"创建镜像").
要查看引导源云硬盘,选择云硬盘云硬盘标签页(如需了解创建云硬盘的信息,请参阅第4.
1.
1节"创建云硬盘").
5.
选择Compute>访问访问&安全安全>安全组安全组,确定您已经创建了一个安全组规则(如需了解创建安全组的信息,请参阅UsersandIdentityManagementGuide中的ProjectSecurityManagement(RedHatEnterpriseLinuxOpenStackPlatform).
3.
1.
2.
创建实例1.
在dashboard中选择项目项目>Compute>实例实例.
2.
点启动云主机启动云主机.
3.
输入所需的信息(带有'*'标记的项是必需的)后点运行运行.
RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南24标签页项备注详情可用域域(zone)就是可以放置您的实例的、包括云资源的逻辑组.
如果您不能确定您的选择,使用默认域(如需了解更多信息,请参阅第3.
4节"管理主机集合").
云主机名称实例的名称.
云主机类型云主机类型决定了实例可以获得什么资源(例如,内存).
如需了解更多与云主机类型相关的信息,请参阅第3.
3节"管理flavor".
云主机启动源根据所做的选择,新的项会被显示用来选择启动源:镜像源必须和OpenStack兼容(请参阅第1.
2节"管理镜像").
如果一个云硬盘或云硬盘源被选择,这个源必须使用一个镜像来格式化(请参阅第4.
1节"基本云硬盘(Volume)的使用和配置").
访问和安全密钥对指定的密钥对会被植入到实例中,并在使用SSH远程访问实例时使用它们.
通常情况下,每个项目都会创建一个密钥对.
安全组安全组包括了一组防火墙规则用来过滤并处理实例的网络数据(如需了解创建安全组的信息,请参阅UsersandIdentityManagementGuide中的ProjectSecurityManagement(RedHatEnterpriseLinuxOpenStackPlatform).
Networking已选择的网络您需要最少指定一个网络.
一般情况下,实例会被分配一个私有网络,然后会获得一个浮动IP地址用于外部连接.
第3章虚拟机实例25创建后定制脚本源您可以提供一组命令或一个脚本文件,当实例被引导后运行它们.
例如,使用它们来设置实例的主机名,或设置一个用户密码.
如果选择了'直接输入',您可以在'脚本数据项'中直接输入您的命令;如果使用其它选项,则指定您的脚本文件.
注意任何以'#cloud-config'开始的脚本都会被解析为使用cloud-config语法(如需了解与此语法相关的信息,请参阅http://cloudinit.
readthedocs.
org/en/latest/topics/examples.
html).
高级选项磁盘分区在默认情况下,实例只包括一个分区,并可以根据需要自动调整它的大小.
但是,您也可以选择手工配置您自己的分区.
配置驱动器如果选择了这个选项,OpenStack把元数据写到一个只读的配置驱动器中,在引导时会被附加到实例中(而不是加入到Compute的元数据服务中).
在实例被引导后,您可以挂载这个驱动器来查看其中的内容(您可以为实例提供文件).
标签页项备注3.
1.
3.
更新实例(使用操作菜单)为了更新实例,您可以选择项目项目>Compute>实例实例,并在操作操作栏中选择所需的操作.
操作描述创建快照快照可以保留正在运行的实例的磁盘状态.
绑定浮动IP/解除浮动IP的绑定在一个实例可以和外部网络进行通讯,或被外部用户访问前,您需要为这个实例关联一个浮动IP(外部)地址.
因为外部子网中的外部地址数量是有限的,所以我们推荐您释放那些不使用的地址.
编辑实例更新实例的名称和关联的安全组.
RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南26编辑安全组为实例添加和删除安全组.
如需了解创建安全组的信息,请参阅UsersandIdentityManagementGuide中的ProjectSecurityManagement(RedHatEnterpriseLinuxOpenStackPlatform).
控制台在浏览器中查看实例的控制台(可以方便地访问实例).
查看日志查看实例的控制台日志中的最新内容.
打开后,您可以点'ViewFullLog'来查看日志的全部内容.
暂停/恢复实例马上暂停实例(不需要用户进行确认);实例的当前状态会保存在内存(RAM)中.
挂起/恢复实例马上挂起实例(不需要用户进行确认);和休眠一样,实例的当前状态会保存在磁盘中.
重新调整实例的大小打开重启调整实例窗口(请参阅第3.
1.
4节"重新调整实例的大小").
软重启安全地停止并重启实例.
软重启会在重启实例前尝试安全地停止所有进程.
硬重启停止并重启实例.
硬重启只是简单地关闭实例的电源,然后对它进行重启.
关闭实例安全地停止实例.
重新构建实例使用新的镜像和磁盘分区选择来重新构建镜像(关闭、重新构建镜像和重新启动实例).
当操作系统出现问题时,这个选项比终止实例并重新开始更容易.
终止实例永久删除实例(您会被要求进行确认).
操作描述第3章虚拟机实例27您可以创建并分配一个外部IP地址(请参阅第3.
2.
3节"创建、分配和释放浮动IP地址")3.
1.
4.
重新调整实例的大小要调整一个实例的大小(内存或CPU的数量),您需要为这个实例选择一个适当的新flavor(有时也被称为"云主机类型").
如果您需要增加它的大小,则需要保证包括它的主机有足够的空间.

1.
设置每个主机来使用SSH密钥进行身份验证,从而使Compute可以使用SSH来在主机间移动磁盘(例如,compute节点可以共享相同的SSH密钥).
如需了解更多与设置SSH密钥验证相关的信息,请参阅MigratingInstancesGuide中的ConfigureSSHTunnelingBetweenNodes(RedHatEnterpriseLinuxOpenStackPlatform).
2.
在/etc/nova/nova.
conf文件中设置以下参数来允许在原始主机上重新调整大小:[DEFAULT]allow_resize_to_same_host=True3.
在dashboard中选择项目项目>Compute>实例实例.
4.
点主机的操作操作箭头,选调整云主机大小调整云主机大小.
5.
在新的云主机类型新的云主机类型项中选择一个新flavor.
6.
如果您需要在启动实例时手工对它进行分区(构建时间会比较快):a.
选择高级选项高级选项.
b.
在磁盘分区磁盘分区项中选择手工手工.
7.
点重新调整大小重新调整大小.
3.
1.
5.
连接到一个实例本节介绍了通过dashboard或命令行接口访问一个实例控制台的方法.
您也可以直接连接到实例的串口来进行故障排除(在网络连接失败时也可以使用这个方法).
3.
1.
5.
1.
使用Dashboard访问实例的控制台您可以在dashboard中使用控制台(console)直接连接到您的实例.
1.
在dashboard中选择Compute>实例实例.
RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南282.
Clicktheinstance'sMorebuttonandselectConsole.
3.
使用镜像的用户名和密码进行登录(例如,一个CirrOS镜像使用cirros/cubswin:)).
3.
1.
5.
2.
直接连接到一个VNC控制台您可以使用novaget-vnc-console命令所返回的URL来直接访问一个实例的VNC控制台.
浏览器浏览器要获得一个浏览器URL,使用:$novaget-vnc-consoleINSTANCE_IDnovncJava客户端客户端要获得一个Java-clientURL,使用:$novaget-vnc-consoleINSTANCE_IDxvpvnc第3章虚拟机实例29注意注意nova-xvpvncviewer提供了一个Java客户端的简单示例.
要下载客户端,运行:#gitclonehttps://github.
com/cloudbuilders/nova-xvpvncviewer#cdnova-xvpvncviewer/viewer#make使用实例的Java-clientURL来运行viewer:#java-jarVncViewer.
jar_URL_提供这个工具的目的只是方便用户的使用,红帽并不正式支持它.
3.
1.
5.
3.
直接连接到一个串行控制台您可以使用一个websocket客户端来直接访问实例的串口.
串口连接通常被作为故障排除工具使用(例如,在网络配置失败时,也可以通过它来访问实例).
要获得一个正在运行的实例URL,运行以下命令:$novaget-serial-consoleINSTANCE_ID注意注意novaconsole提供了一个websocket客户端的简单示例.
要下载客户端,运行:#gitclonehttps://github.
com/larsks/novaconsole/#cdnovaconsole使用实例的串口URL运行客户端:#pythonconsole-client-poll.
py提供这个工具的目的只是方便用户的使用,红帽并不正式支持它.
但是,根据所进行的安装,管理员可能会需要首先设置nova-serialproxy服务.
这个代理服务是一个websocket代理,它提供了连接到OpenStackCompute串口的功能.
3.
1.
5.
3.
1.
安装并配置安装并配置nova-serialproxy1.
安装nova-serialproxy服务:#yuminstallopenstack-nova-serialproxy2.
更新/etc/nova/nova.
conf文件中的serial_console部分:a.
启用nova-serialproxy服务:$openstack-config--set/etc/nova/nova.
confserial_consoleRedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南30enabledtrueb.
指定用来创建由novaget-serial-console命令提供的URLS的字符串.
$openstack-config--set/etc/nova/nova.
confserial_consolebase_urlws://PUBLIC_IP:6083/其中的PUBLIC_IP是运行nova-serialproxy服务的主机的公共IP地址.
c.
指定实例串口控制台监听的IP地址(字符串).
$openstack-config--set/etc/nova/nova.
confserial_consolelisten0.
0.
0.
0d.
指定需要连接的proxyclient的地址(字符串).
$openstack-config--set/etc/nova/nova.
confserial_consoleproxyclient_addressws://HOST_IP:6083/其中的HOST_IP是您的Compute主机的IP地址.
例如,对于一个启用了nova-serialproxy服务的配置会和以下类似:[serial_console]enabled=truebase_url=ws://192.
0.
2.
0:6083/listen=0.
0.
0.
0proxyclient_address=192.
0.
2.
33.
重启Compute服务:#openstack-servicerestartnova4.
启动nova-serialproxy服务:#systemctlenableopenstack-nova-serialproxy#systemctlstartopenstack-nova-serialproxy5.
重启所有正在运行的实例,从而使它们可以监听正确的网络套接字.
6.
打开防火墙的串行控制器端口连接.
串口的端口范围通过/etc/nova/nova.
conf中的[serial_console]`port_range进行设置.
在默认情况下,它的范围是10000:20000.
更新iptables:#iptables-IINPUT1-ptcp--dport10000:20000-jACCEPT3.
1.
6.
查看实例的使用使用情况的统计数据可以基于:每个项目要查看每个项目的使用情况,选项目项目>Compute>概况概况.
所有项目实例的使用数据会被显示.
您可以通过指定时间范围并点提交提交来查看特定时间段内的使用情况数据.
第3章虚拟机实例31每个虚拟机管理器如果以管理员的身份进行登录,您也可以查看所有项目的信息.
点管理员管理员>系统系统,选择其中的一个标签页.
例如,资源使用情况资源使用情况标签页中提供了特定时间段中的使用情况数据报告.
您也可以点虚拟机管理器虚拟机管理器来查看您当前的vCPU、内存或磁盘的使用情况统计数据.
注意注意vCPU使用情况使用情况的值(y中的中的x)反映了所有虚拟机的总vCPU数(x)和虚拟机管理器的内核数量(y).
3.
1.
7.
删除实例1.
在dashboard中选择项目项目>Compute>实例实例,然后选择您的实例.
2.
点终止云主机终止云主机.
注意注意删除一个实例的操作并不会删除附加到它上面的卷,您需要单独删除它们(请参阅第4.
1.
4节"删除卷").
3.
2.
管理实例安全您可以通过为实例分配正确的安全组(设置防火墙规则)和密钥对(启用SSH用户访问)来管理对它的访问.
另外,还可以为实例分配一个浮动IP地址,使它可以被外部网络访问.
以下介绍了创建和管理密钥对、安全组、浮动IP地址以及使用SSH登录到一个实例的信息,以及为实例添加一个admin密码的方法.
如需了解更多与管理安全组相关的信息,请参阅UsersandIdentityManagementGuide中的ProjectSecurityManagement(RedHatEnterpriseLinuxOpenStackPlatform).
3.
2.
1.
管理密钥对密钥对提供了到实例的SSH访问能力.
每次创建一个密钥对时,它的证书都会被下载到本地系统,从而可以分发给用户.
通常情况下,每个项目都会创建一个密钥对(可以在多个实例中使用).

您也可以为OpenStack导入一个已经存在的密钥对.
3.
2.
1.
1.
创建一个密钥对1.
在dashboard中,选项目项目>Compute>访问访问&安全安全.
2.
在密钥对密钥对标签页中点创建密钥对创建密钥对.
3.
在密钥对名称密钥对名称项中输入一个名称,点创建密钥对创建密钥对.
当密钥对被创建后,一个密钥对文件会通过浏览器自动下载.
您需要保存这个文件用于以后的连接.

对于使用命令行的SSH连接,您可以使用以下命令把这个文件加载到SSH:#ssh-add~/.
ssh/os-key.
pemRedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南323.
2.
1.
2.
导入一个密钥对1.
在dashboard中,选项目项目>Compute>访问访问&安全安全.
2.
在密钥对密钥对标签页中点导入密钥对导入密钥对.
3.
在密钥对名称密钥对名称项中输入一个名称,把您的公共密钥复制/粘贴到公共密钥公共密钥项中.
4.
点导入密钥对导入密钥对.
3.
2.
1.
3.
删除密钥对1.
在dashboard中,选项目项目>Compute>访问访问&安全安全.
2.
在密钥对密钥对标签页中点相应密钥的删除密钥对删除密钥对按钮.
3.
2.
2.
创建安全组安全组就是一组IP过滤器规则,它可以分配给项目实例,用来设置对实例的网络访问.
安全组是与项目相关联的,项目成员可以编辑安全组的默认设置,并可以向其添加新规则.

1.
在dashboard中,选项目项目标签页,点Compute>访问访问&安全安全.
2.
在安全组安全组标签页中,点+创建安全组创建安全组.
3.
为安全组提供一个名称和描述,点创建安全组创建安全组.
如需了解更多与管理项目安全的信息,请参阅UsersandIdentityManagementGuide中的ProjectSecurityManagement(RedHatEnterpriseLinuxOpenStackPlatform).
3.
2.
3.
创建、分配和释放浮动IP地址在默认情况下,实例会在首次创建时被分配一个内部IP地址.
但是,您可以通过创建和分配一个浮动IP地址(外部地址)来使它可以通过公共网络进行访问.
无论实例处于什么状态,您都可以修改与实例相关联的IP地址.
每个项目的可用浮动IP地址资源都是有限的(在默认情况下,是50个地址),因此您需要在某个IP地址不再被使用时释放它,从而使它可以被重复使用.
浮动IP地址只能从一个存在的浮动IP地址池中分配.
如需了解更多相关信息,请参阅NetworkingGuide中的CreateFloatingIPPools(RedHatEnterpriseLinuxOpenStackPlatform).
3.
2.
3.
1.
为项目分配一个浮动IP地址1.
在dashboard中,选项目项目>Compute>访问访问&安全安全.
2.
在浮动浮动IP标签页中,点分配分配IP给项目给项目.
3.
在资源池资源池中选择用来分配IP地址的网络.
4.
点分配分配IP.
第3章虚拟机实例333.
2.
3.
2.
分配一个浮动IP1.
在dashboard中,选项目项目>Compute>访问访问&安全安全.
2.
在浮动浮动IP标签页中,点相关地址的关联关联按钮.
3.
在IP地址项中选择要分配的地址.
注意注意如果没有可用的地址,您可以点+按钮创建一个新地址.
4.
在待待连连接的端口接的端口项中选择要被关联的实例.
一个实例只能和一个浮动IP地址相关联.
5.
点关联关联.
3.
2.
3.
3.
释放浮动IP1.
在dashboard中,选项目项目>Compute>访问访问&安全安全.
2.
在浮动浮动IP标签页中,点地址的菜单箭头(在关联关联/取消关联取消关联按钮旁).
3.
选择释放浮动释放浮动IP.
3.
2.
4.
登录到实例先决条件先决条件:确保实例的安全组中有一个SSH规则.
请参阅UsersandIdentityManagementGuide中的ProjectSecurityManagement(RedHatEnterpriseLinuxOpenStackPlatform).
确保实例有一个与之关联的浮动IP地址(外部地址).
请参阅创建、分配和释放浮动IP地址.
获得实例的密钥对证书.
当密钥对被创建时,这个证书会被下载.
如果您没有自己创建密钥对,请联系您的系统管理员(如需更多相关信息,请参阅第3.
2.
1节"管理密钥对").
首先把密钥对文件加入到首先把密钥对文件加入到SSH,然后使用它,然后使用它:1.
修改所产生的密钥对证书的访问权限.
$chmod600os-key.
pem2.
检查ssh-agent是否已运行:#ps-ef|grepssh-agent3.
如果还没有运行,使用以下命令运行它:#eval`ssh-agent`4.
在您的本地机器上,把密钥对证书加载到SSH.
例如:RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南34$ssh-add~/.
ssh/os-key.
pem5.
现在,您可以SSH到镜像文件.
以下是使用cloud-user用户SSH到RedHatEnterpriseLinux虚拟机镜像的示例:$sshcloud-user@192.
0.
2.
24注意注意您也可以直接使用证书.
例如:$ssh-i/myDir/os-key.
pemcloud-user@192.
0.
2.
243.
2.
5.
为实例添加一个admin密码您可以使用以下方法为一个实例添加一个admin(root)密码.
1.
在/etc/openstack-dashboard/local_settings文件中,把change_set_password参数的值设为True.
can_set_password:True2.
在/etc/nova/nova.
conf文件中,把inject_password参数的值设为True.
inject_password=true3.
重启Compute服务.
#servicenova-computerestart当使用novaboot命令启动一个新实例时,命令的输出中会显示一个adminPass参数.
您可以使用它作为root用户的密码登录到这个实例.
Compute服务会覆盖/etc/shadow文件中的root用户的密码.
它同时也会为KVM客户机镜像激活root账户.
如需了解更多与使用KVM客户机镜像相关的信息,请参阅第1.
2.
1.
1节"在RHELOpenStackPlatform中使用KVMGuest镜像"您也可以使用dashboard设置一个自定义密码.
在把can_set_password参数的值设为true后运行以下命令:#systemctlrestarthttpd.
service新添加的admin密码项如下所示:第3章虚拟机实例35这些项可以在启动或重建一个实例时使用.
3.
3.
管理FLAVOR每个创建的实例都会被分配一个flavor(资源模板),它定义了实例的大小和容量.
Flavor也可以指定二级临时存储(secondaryephemeralstorage)、交换磁盘、元数据来限制资源使用或对特定项目的访问(默认的flavor都没有定义这些额外的属性).
flavor在RedHatEnterpriseOpenStackPlatform中有时也被称为"云主机类型".
表表3.
1.
默认默认Flavor名称vCPURAMRoot磁盘大小m1.
tiny1512MB1GBm1.
small12048MB20GBm1.
medium24096MB40GBm1.
large48192MB80GBRedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南36m1.
xlarge816384MB160GB名称vCPURAMRoot磁盘大小多数最终用户都可以使用这些默认的flavor.
但是,您可能会需要创建并管理特殊的flavor.
例如,您可能需要:根据所使用的硬件修改默认的内存和能力.
添加元数据来为实例强制一个特定的I/O速率,或匹配一个主机集合(hostaggregate).
注意注意使用镜像属性设置的行为会覆盖使用flavors设置的行为.
如需了解更多信息,请参阅第1.
2节"管理镜像".
3.
3.
1.
更新配置权限在默认情况下,只有管理员可以创建flavor或查看完整的flavor列表(选择"管理员>系统>云主机类型").
要允许所有用户配置flavor,在/etc/nova/policy.
json文件(nova-api服务器)中指定以下内容:"compute_extension:flavormanage":"",3.
3.
2.
创建flavor1.
使用一个admin用户,在dashboard中选择管理员管理员>系统系统>云主机类型云主机类型.
2.
点创建云主机类型创建云主机类型,指定以下项:标签页项描述主机类型信息名称唯一的名字.
ID唯一的ID.
默认值auto会自动产生一个UUID4值,但是您可以手工指定一个整数或UUID4值.
VCPU虚拟CPU的数量RAM(MB)内存(以MB为单位)第3章虚拟机实例37根磁盘(GB)临时磁盘的大小(以GB为单位).
要使用镜像本身的大小,把它设为0.
当InstanceBootSource=BootfromVolume时这个磁盘不被使用.
临时磁盘(GB)二级临时磁盘的大小(以GB为单位).
Swap磁盘(MB)交换磁盘的大小(以MB为单位)云主机类型访问选择的项目可以使用这个云主机类型的项目.
如果没有选择项目,所有项目都可以访问(Public=Yes).
标签页项描述3.
点创建云主机类型.
3.
3.
3.
更新常规属性1.
使用一个admin用户,在dashboard中选择管理员管理员>系统系统>云主机类型云主机类型.
2.
点flavor的编辑云主机类型编辑云主机类型按钮.
3.
更新相关的值并点保存保存.
3.
3.
4.
更新云主机类型的元数据除了常规属性外,您还可以为云主机类型添加元数据(extra_specs),它可以更精细地定义实例的使用情况.
例如,您可以设置允许使用的最大带宽.
预定义的关键字决定了硬件支持或配额.
它受您所使用的虚拟机管理器(hypervisor)的限制(对于libvirt,请参阅表3.
2"Libvirt元数据").
预定义的关键字和用户定义的关键字都可以决定实例的调度.
例如,您可以设置SpecialComp=True,任何使用这个云主机类型的实例都将只能在元数据中带有相同关键字和值的主机集合中运行.
如需了解更多相关信息,请参阅第3.
4节"管理主机集合".
3.
3.
4.
1.
查看元数据1.
使用一个admin用户,在dashboard中选择管理员管理员>系统系统>云主机类型云主机类型.
RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南382.
点云主机类型的Metadata链接(Yes或No).
当前所有的值都在右面的ExistingMetadata项中列出.
3.
3.
4.
2.
添加元数据您可以使用一个关关键键字字/值值数据对来指定云主机类型的元数据.
1.
使用一个admin用户,在dashboard中选择管理员管理员>系统系统>云主机类型云主机类型.
2.
点云主机类型的Metadata链接(Yes或No).
当前所有的值都在右面的ExistingMetadata项中列出.
3.
在可用的元数据可用的元数据中,点其它其它项,选择您需要添加的关键字(请参阅表3.
2"Libvirt元数据").
4.
点+按钮;您现在可以看到新的关键字出现在已存在的元数据已存在的元数据项中.
5.
在右面项中输入关键字的值.
6.
当输入完"关键字/值"数据对后,点保存保存.
表表3.
2.
Libvirt元数据元数据键描述hw:action用来配置每个实例的支持限制.
有效值包括:cpu_max_sockets-支持的最大CPU插槽数量.
cpu_max_cores-支持的最大CPU内核数量.
cpu_max_threads-支持的最大CPU线程的量.
cpu_sockets-首选的CPU插槽数量.
cpu_cores-首选的CPU内核数量.
cpu_threads-首选的CPU线程数量.
serial_port_count-每个实例的最多串口数量.
例如:hw:cpu_max_sockets=2第3章虚拟机实例39hw:NUMA_def定义NUMA的拓扑.
当flavor中的RAM和vCPU的分配值比compute主机中的NUMA节点大时,通过定义NUMA拓扑可以使主机更好地利用NUMA,并提高客户机OS的性能.
flavor中定义的NUMA设置会覆盖镜像中的设置.
有效的定义包括:numa_nodes-实例可以看到的NUMA节点数量.
设置为'1'来确保镜像NUMA设置被覆盖掉.
numa_mempolicy-内存分配策略.
有效策略包括:strict-强制实例的内存分配来自于和它绑定的NUMA节点(如果设置了numa_nodes,这是默认值).
preferred-内核可以使用其它节点.
当numa_nodes被设置为'1'时会有用.
numa_cpus.
0-vCPUN-M到NUMA节点0的映射(以逗号分隔).
numa_cpus.
1-vCPUN-M到NUMA节点1的映射(以逗号分隔).
numa_mem.
0-把NGB内存映射到NUMA节点0.
numa_mem.
1-把NGB内存映射到NUMA节点1.
numa_cpu.
N和numa_mem.
N只有在设置了numa_nodes时才有效.
另外,它们只有在实例的NUMA节点的CPU和内存分配不对称时才需要(对于一些NFV负载非常重要).
注意如果numa_cpu或numa_mem.
N的值比实际有效的值大,则会出现一个异常错误.
示例(带有8个vCPU和4GB内存的实例):hw:numa_nodes=2hw:numa_cpus.
0=0,1,2,3,4,5hw:numa_cpus.
1=6,7hw:numa_mem.
0=3hw:numa_mem.
1=1调度程序会查找带有2个NUMA节点的主机,它需要可以在一个节点上运行6个CPU和3GB内存,在另一个节点上运行2个CPU和1GB内存.
如果某个主机只有一个NUMA节点,它可以运行8个CPU和4GB内存,这个主机不会被认为是一个有效的匹配.
无论numa_mempolicy是如何设置的,相同的逻辑都适用于调度程序.
键描述RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南40hw:watchdog_action当实例出现故障时,可以使用实例的watchdog设备触发一个操作.
有效的操作是:disabled-没有附加的设备(默认值).
pause-暂停实例.
poweroff-强制关闭实例.
reset-强制重置实例.
none-启用watchdog,但当实例出现故障时不进行任何操作.
例如:hw:watchdog_action=poweroffhw_rng:action通过使用镜像属性把一个随机数生成器设备添加到镜像中(请参阅RHELOpenStackPlatform文档的"Command-LineInterfaceReference"部分中的hw_rng_model内容).
如果添加了设备,有效的操作将包括:allowed-如果为True,这个设备被启用;如果为False,设备被禁用.
在默认情况下,设备被禁用.
rate_bytes-在每个rate_period周期中,为了填充它的熵池,实例的内核可以从主机读的最大字节数(整数).
rate_period-读持续的时间(以秒为单位,整数).
例如:hw_rng:allowed=True.
hw_video:ram_max_mb视频设备允许使用的最大内存数量(以MB为单位).
例如:hw:ram_max_mb=64键描述第3章虚拟机实例41quota:option对实例的限制.
有效选项包括:cpu_period-强制cpu_quota限制的时间(以ms为单位).
在指定的cpu_period时间中,每个vCPU不能占用超过cpu_quota的运行时.
这个值的范围必须是[1000,1000000],'0'代表没有值.
cpu_quota-在每个cpu_period时间段中vCPU所允许的最大带宽(以ms为单位).
这个值的范围必须是[1000,18446744073709551],'0'代表没有值,负值代表vCPU不被控制.
cpu_quota和cpu_period可以被用来保证所有vCPU以相同的速度运行.
cpu_shares-域共享CPU的时间.
这个值只有在对同一个域中的其它机器加权重的情况下才有意义.
一个云主机类型的相关值为'200'的实例会获得比相关值为'100'的实例多一倍的机器时间.
disk_read_bytes_sec-每秒磁盘可以读取的最大数据量(以字节为单位).
disk_read_iops_sec-每秒所允许的最大读I/O操作.
disk_write_bytes_sec-每秒磁盘可写的最大数据量(以字节为单位).
disk_write_iops_sec-每秒所允许的最大写I/O操作.
disk_total_bytes_sec-每秒所允许的最大吞吐量总和的限制.
disk_total_iops_sec-每秒所允许的最大总I/O操作.
vif_inbound_average-期望的平均流入网络流量.
vif_inbound_burst-在vif_inbound_peak速度上可以接收的最大网络流量.
vif_inbound_peak-可以接收流入网络数据的最大速率.
vif_outbound_average-期望的平均流出网络流量.
vif_outbound_burst-在vif_outbound_peak速度上可以发送的最大网络流量.
vif_outbound_peak-可以发送流出网络数据的最大速率.
例如:quota:vif_inbound_average=10240键描述3.
4.
管理主机集合为了性能和管理的目的,一个单一的Compute部署可以被分成不同的逻辑组.
OpenStack会使用以下的相关术语:主机集合(Hostaggregate)-一个主机集合就是OpenStack部署中的一个逻辑组,它包括了一组Compute主机,以及相关的元数据.
一个主机可以属于多个主机集合.
只有系统管理员可以查看或创建主机集合.
一个主机集合的元数据通常被用来为Compute调度器(scheduler)提供信息(如为一部分主机限制特定的云主机类型或镜像).
当在一个主机集合中指定了元数据,只有那些在云主机类型中指定了相同元数据的实例才可以使用其中的主机.
系统管理员可以通过主机集合实现负载均衡、强制物理隔离(或冗余)、对带有相同属性的服务器进行分组或分离不同的硬件系统.
当您创建一个集合时,需要指定一个域名(zonename),它会作为最终用户可以看到的这个集合的名称.
RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南42可用域(Availabilityzone)-可用域就是最终用户可以看到的主机集合.
最终用户无法看到这个域是由哪些主机组成的,也无法看到这个域的元数据,而只能看到域的名称.

系统管理员可以设置包括特定计算能力的域,或位于特定区域中的域,最终用户将可以使用这些配置的域.
3.
4.
1.
启用主机集合调度在默认情况下,主机集合元数据不会被用来过滤实例的使用情况,您需要更新Compute的调度配置来启用元数据:1.
编辑/etc/nova/nova.
conf文件(您需要具有root或nova用户的权限).
2.
确定scheduler_default_filters参数包括:AggregateInstanceExtraSpecsFilter(对于主机集合元数据).
例如:scheduler_default_filters=AggregateInstanceExtraSpecsFilter,RetryFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,CoreFilterAvailabilityZoneFilter在启动一个实例时的有效域主机的规格.
例如:scheduler_default_filters=AvailabilityZoneFilter,RetryFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,CoreFilter3.
保存配置文件.
3.
4.
2.
查看可用域或主机集合使用一个admin用户,在dashboard中选择管理员管理员>系统系统>主机集合主机集合.
当前所有定义的集合会在主主机集合机集合项中列出,所有域会在可用域可用域项中列出.
3.
4.
3.
添加一个主机集合1.
使用一个admin用户,在dashboard中选择管理员管理员>系统系统>主机集合主机集合.
当前所有定义的集合会在主机集合主机集合项中列出.
2.
点创建主机集合创建主机集合.
3.
在名称名称项中指定集合的名称,最终用户将会在可用域可用域项中看到这个名称.
4.
点在集合中管理主机在集合中管理主机.
5.
点相应主机的+图标来选择主机.
6.
点创建主机集合创建主机集合.
3.
4.
4.
更新一个主机集合1.
使用一个admin用户,在dashboard中选择管理员管理员>系统系统>主机集合主机集合.
当前所有定义的集合会在主机集合主机集合项中列出.
第3章虚拟机实例432.
更新实例的名称名称或可用域可用域:点集群的编辑主机集群编辑主机集群按钮.
更新名称名称或可用域可用域的值,点保存保存.
3.
更新实例的分配的主机分配的主机:在操作操作项中选集合的箭头图标.
点管理主机管理主机.
点主机的+或-图标来修改主机的分配.
完成后点保存保存.
4.
更新实例的元数据元数据:在操作操作项中选集合的箭头图标.
点更新元数据更新元数据按钮.
所有当前值都在右面的存在的元数据存在的元数据项中列出.
在可用的元数据可用的元数据中点其它其它项,输入您要添加的关键字.
您可以使用预定义的关键字(请参阅表3.
3"主机集合元数据")或添加您自己的关键字(只在实例的flavor中设置了相同关键字时才有效).
点+按钮;您现在可以看到新的关键字出现在已存在的元数据已存在的元数据项中.
注意注意点-图标删除一个关键字.
点保存保存.
表表3.
3.
主机集合元数据主机集合元数据键描述cpu_allocation_ratio设置虚拟CPU对物理CPU的分配比率.
这取决于为Compute调度设置的AggregateCoreFilter过滤.
disk_allocation_ratio设置虚拟磁盘对物理磁盘的分配比率.
这取决于为Compute调度设置的AggregateDiskFilter过滤.
filter_tenant_id如果指定,集合只包括这个租户(项目)的主机.
这取决于为Compute调度设置的AggregateMultiTenancyIsolation过滤.
RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南44ram_allocation_ratio设置虚拟内存对物理内存的分配比率.
这取决于为Compute调度设置的AggregateRamFilter过滤.
键描述3.
4.
5.
删除一个主机集群1.
使用一个admin用户,在dashboard中选择管理员管理员>系统系统>主机集合主机集合.
当前所有定义的集合会在主机集合主机集合项中列出.
2.
从集群中删除所有分配的主机:a.
在操作操作项中选集合的箭头图标.
b.
点管理主机管理主机.
c.
点主机的-图标删除主机.
d.
完成后点保存保存.
3.
在操作操作项中选集合的箭头图标.
4.
点删除主机集合删除主机集合.
3.
5.
调度主机和CELLCompute调度服务决定了一个实例要被放置在哪个cell或主机(或主机集合)中.
作为一个管理员,您可以设置调度的决定过程.
例如,您可以把实例调度到特定组中的主机,或具有特定RAM的主机中.
您可以配置以下组件:Filters(过滤器)-决定可以放置实例的初始主机范围(请参阅第3.
5.
1节"配置调度过滤器").
Weights(权重)-通过过滤程序后的主机再根据权重系统来进行优先级排列.
具有最高权重值的主机有最高的优先级(请参阅第3.
5.
2节"配置调度权重").
Schedulerservice(调度程序服务)-在调度程序所在主机的/etc/nova/nova.
conf文件中包括了以下配置选项,它决定了调度程序如何执行它的任务、处理权重和过滤.
主机和cell都有调度程序.
如需了解这些选项的完整列表,请参阅"ConfigurationReference"(RHELOpenStackPlatformDocumentation).
在下图中,主机1和主机3都通过了过滤程序.
主机1具有最高的权重,因此在调度过程中有最高优先级.
第3章虚拟机实例453.
5.
1.
配置调度过滤器您可以使用scheduler_default_filters选项(/etc/nova/nova.
conf文件)来定义调度程序(scheduler)使用的过滤器(您需要具有root或nova用户的权限).
过滤器可以被添加或删除.
默认情况下,以下过滤器被配置并在调度程序中运行:scheduler_default_filters=RetryFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter一些过滤器会使用通过命令中的参数传递给实例的信息:novaboot命令,请参阅RHELOpenStackPlatformDocumentation中的"Command-LineInterfaceReference".
实例的flavor(参阅第3.
3.
4节"更新云主机类型的元数据")实例的镜像(参阅附录A,镜像配置参数).
下表列出了可用的过滤器表表3.
4.
调度过滤器调度过滤器过滤器描述AggregateCoreFilter使用host-aggregate元数据关键字cpu_allocation_ratio过滤掉超过过度分配(over-commit)比率(虚拟CPU和物理CPU分配的比率)的主机,它只在为实例指定了主机集合(hostaggregate)的情况下有效.
如果没有设置这个值,过滤器会使用/etc/nova/nova.
conf文件中的cpu_allocation_ratio的值.
它的默认值是16.
0(每个物理CPU可以分配16个虚拟CPU).
RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南46AggregateDiskFilter使用host-aggregate元数据关键字disk_allocation_ratio过滤掉超过过度分配(over-commit)比率(虚拟磁盘和物理磁盘分配的比率)的主机,它只在为实例指定了主机集合(hostaggregate)的情况下有效.
如果没有设置这个值,过滤器会使用/etc/nova/nova.
conf文件中的disk_allocation_ratio的值.
它的默认值是1.
0(每个物理磁盘可以分配一个虚拟磁盘).
AggregateImagePropertiesIsolation只通过那些元数据和实例镜像的元数据匹配的主机集合中的主机,它只在为实例指定了主机集合的情况下有效.
如需了解更多相关信息,请参阅第1.
2.
1节"创建镜像".
AggregateInstanceExtraSpecsFilter主机集合中的元数据必须与主机的flavor元数据相匹配.
如需了解更多相关信息,请参阅第3.
3.
4节"更新云主机类型的元数据".
AggregateMultiTenancyIsolation指定了filter_tenant_id的主机只能包括所指定租户(项目)中的实例.
注意租户仍然可以在其它主机上放置实例.
AggregateRamFilter使用host-aggregate元数据关键字ram_allocation_ratio过滤掉超过过度分配(over-commit)比率(虚拟内存和物理内存分配的比率)的主机,它只在为实例指定了主机集合(hostaggregate)的情况下有效.
如果没有设置这个值,过滤器会使用/etc/nova/nova.
conf文件中的ram_allocation_ratio的值.
它的默认值是1.
5(每个物理内存可以分配1.
5的虚拟内存).
AllHostsFilter通过所有有效的主机(但不禁用其它过滤器).
AvailabilityZoneFilter过滤器使用实例指定的可用域.
过滤器描述第3章虚拟机实例47ComputeCapabilitiesFilter确定Compute元数据被正确读取.
:前的所有内容被认为是命名空间(namespace).
例如,quota:cpu_period使用quota作为命名空间,cpu_period是关键字.
ComputeFilter通过所有可以正常工作并被启用的主机.
CoreFilter使用/etc/nova/nova.
conf文件中的cpu_allocation_ratio过滤掉超过过度分配比率(虚拟CPU到物理CPU分配比率)的主机.
它的默认值是16.
0(每个物理CPU可以分配16个虚拟CPU).
DifferentHostFilter在一个和指定主机不同的主机上创建实例.
使用novaboot命令的--different_host选项来指定不同不同的主机.
DiskFilter使用/etc/nova/nova.
conf文件中的disk_allocation_ratio过滤掉超过过度分配比率(虚拟磁盘到物理磁盘分配比率)的主机.
它的默认值是1.
0(每个物理磁盘可以分配1个虚拟磁盘).
ImagePropertiesFilter只通过匹配实例镜像属性的主机.
如需了解更多信息,请参阅第1.
2.
1节"创建镜像".
IsolatedHostsFilter只通过运行独立镜像(在/etc/nova/nova.
conf文件中使用isolated_hosts和isolated_images(以逗号分隔的值)指定)的独立主机.
JsonFilter接受并使用实例的自定义JSON过滤器:有效的操作包括:=、、in、、>=、not、or、and可识别的变量是:$free_ram_mb、$free_disk_mb、$total_usable_ram_mb、$vcpus_total、$vcpus_used这个过滤器通过novaboot命令的'--hintquery'指定.
例如:--hintquery=free_disk_mb',200*1024]'MetricFilter过滤掉带有无效指标数据的过滤器.
过滤器描述RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南48NUMATopologyFilter根据主机的NUMA拓扑过滤主机.
如果实例没有定义拓扑,所有主机都可以被使用.
这个过滤程序会尝试匹配带有完全相同的NUMA拓扑的主机.
这个过滤器还会查看每个NUMA节点的标准过度订阅(over-subscription)的限制,并根据它为compute主机提供限制.
RamFilter使用/etc/nova/nova.
conf文件中的ram_allocation_ratio过滤掉超过过度分配比率(虚拟内存到物理内存的分配比率)的主机.
它的默认值是1.
5(每个物理内存可以分配1.
5倍的虚拟内存).
RetryFilter过滤掉调度失败的主机.
它只在scheduler_max_attempts大于0的情况下有效(scheduler_max_attempts=3是默认设置).
SameHostFilter通过一个或多个指定的主机.
使用novaboot的--hintsame_host选项指定主机.
ServerGroupAffinityFilter只通过一个特定服务器组中的主机:设置服务器组的affinity策略(novaserver-group-create--policyaffinitygroupName).
构建带有指定组的实例(novaboot选项--hintgroup=UUID).
ServerGroupAntiAffinityFilter只通过还没有包括任何实例的服务器组中的主机:设置服务器组的anti-affinity策略(novaserver-group-create--policyanti-affinitygroupName).
构建带有指定组的实例(novaboot选项--hintgroup=UUID).
SimpleCIDRAffinityFilter只通过特定IP子网范围内(由实例的cidr和build_new_host_iphint指定)的主机.
例如:--hintbuild_near_host_ip=192.
0.
2.
0--hintcidr=/24过滤器描述3.
5.
2.
配置调度权重cell和主机可以被加上权重来进行调度,具有最大权重的主机或cell将会在经过过滤后被选择.
所有的权重器都具有一个乘数(multiplier),它会在规格化节点权重后被应用.
一个节点的权重以以下方法计算:w1_multiplier*norm(w1)+w2_multiplier*norm(w2)+.
.
.
第3章虚拟机实例49您可以在调度程序主机的/etc/nova/nova.
conf文件中配置权重选项(需要有root或nova的用户权限).
3.
5.
2.
1.
为主机配置权重选项您可以在[DEFAULT]scheduler_weight_classes选项中定义调度程序需要使用的主机权重器:nova.
scheduler.
weights.
ram-主机可用内存的权重.
nova.
scheduler.
weights.
metrics-主机指标数据(metrics)的权重.
nova.
scheduler.
weights.
all_weighers-使用所有主机权重器(默认).
表表3.
5.
主机权重选项主机权重选项权重器选项描述所有[DEFAULT]scheduler_host_subset_size定义所选主机的子集合的大小(整数),它的值必须不小于1.
如果是1,权重功能返回的第1个主机会被选择.
如果它的值小于1,这个值会被忽略,并使用1作为它的值.
metrics[metrics]required指定当[metrics]weight_setting无效时如何处理metrics:True-需要metrics,如果无效,会产生一个exception.
为了避免产生exception,在scheduler_default_filters选项中使用MetricFilter.
False-无效的metric在权重处理过程中被认为是一个负参数;返回的值由weight_of_unavailable设置.
metrics[metrics]weight_of_unavailable当[metrics]weight_setting中的metric无效时的权重值.
它只在required=False时有效.
metrics[metrics]weight_multiplier权重metric使用的乘数.
在默认情况下,weight_multiplier=1.
0,并在所有可能的主机中的实例上有效.
如果这个值是负数,带有较低metric的主机会有高优先值.
RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南50metrics[metrics]weight_setting指定metric以及它们权重的比率,它是一个使用逗号分隔的metric=ratio对列表.
有效的metric名是:cpu.
frequency-当前CPU的频率cpu.
user.
time-CPU用户模式时间cpu.
kernel.
time-CPU内核时间cpu.
idle.
time-CPU空闲时间cpu.
iowait.
time-CPUI/O等待时间cpu.
user.
percent-CPU用户模式百分比cpu.
kernel.
percent-CPU内核百分比cpu.
idle.
percent-CPU空闲百分比cpu.
iowait.
percent-CPUI/O等待百分比cpu.
percent-一般的CPU利用率例如:weight_setting=cpu.
user.
time=1.
0ram[DEFAULT]ram_weight_multiplierRAM的乘数(浮点值).
在默认情况下是ram_weight_multiplier=1.
0,并在所有可能主机上的实例中有效.
如果它的值为负数,具有较少RAM的主机具有高优先级.
权重器选项描述3.
5.
2.
2.
为cell配置权重选项您可以使用[cells]scheduler_weight_classes选项(在/etc/nova/nova.
conf文件中)来定义调度器使用的cell权重程序.
您需要具有root或nova用户权限.
有效的权重程序是:nova.
cells.
weights.
all_weighers-使用所有cell权重程序(默认).
nova.
cells.
weights.
mute_child-对一个子cell是否已经有一段时间没有发送容量或容量进行权重.
nova.
cells.
weights.
ram_by_instance_type-对cell的有效RAM进行权重.
nova.
cells.
weights.
weight_offset-评估一个cell的权重offset.
注意注意在`nova-managecellcreate命令中使用--woffset选项可以指定一个cell的权重offset.
表表3.
6.
Cell权重选项权重选项第3章虚拟机实例51权重程序选项描述mute_child[cells]mute_weight_multiplier已经沉默了一段时间的主机的乘数(multiplier).
它需要是一个负的浮点数,默认值是-10.
0.
mute_child[cells]mute_weight_value沉默主机的权重值.
它的值需要是负的浮点数,默认值是1000.
0.
ram_by_instance_type[cells]ram_weight_multiplier权重RAM的乘数.
它的值需要是一个浮点数,默认值是1.
0,并在所有cell上的实例中有效.
如果它的值为负数,具有较少RAM的cell具有高优先级.
weight_offset[cells]offset_weight_multiplier权重cell的乘数(浮点值).
允许实例通过把它的权重偏移(weightoffset)设置为999999999999999(最高权重具有优先级)来指定一个优先的cell.
它的默认值是1.
0.
3.
6.
撤离实例如果您需要把一个实例从一个有故障或已停止运行的compute节点上移到同一个环境中的其它主机服务器上时,可以使用novaevacuate命令对实例进行撤离(evacuate).
撤离的操作只有在实例的磁盘在共享存储上,或实例的磁盘是块存储卷时才有效.
因为在其它情况下,磁盘无法被新compute节点访问.
实例只有在它所在的服务器停止运行的情况下才可以被撤离;如果服务器没有被关闭,evacuate命令会运行失败.
RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南52注意注意如果您有一个可以正常工作的compute节点,您需要:对实例进行一个静态复制(实例没有处于运行状态)作为备份;或把实例复制到其它环境中.
使用novaimage-create创建一个快照(请参阅MigrateaStaticInstance).
把一个静态(没有运行的)实例移到相同环境中的另外一个主机(不需要共享存储),使用novamigrate(请参阅MigrateaStaticInstance).
把一个动态(正在运行的)实例移到相同环境中的另外一个主机,使用novalive-migration命令(请参阅MigrateaLive(running)Instance).
3.
6.
1.
撤离一个实例1.
使用以下命令撤离一个实例:#novaevacuate[--passwordpass][--on-shared-storage]instance_name[target_host]其中:--password-撤离实例的admin密码(如果指定了--on-shared-storage,则无法使用).
如果没有指定密码,一个随机密码会被产生,并在撤离操作完成后被输出.

--on-shared-storage-指定所有实例文件都在共享存储中.
instance_name-要撤离的实例名称.
target_host-实例撤离到的主机;如果您没有指定这个主机,Compute调度会为您选择一个主机.
您可以使用以下命令找到可能的主机:#novahost-list|grepcompute例如:#novaevacuatemyDemoInstanceCompute2_OnEL7.
myDomain3.
6.
2.
撤离所有实例1.
使用以下命令在一个特定主机上撤离所有实例:#novahost-evacuateinstance_name[--targettarget_host][--on-shared-storage]source_host其中:--target-实例撤离到的主机;如果您没有指定这个主机,Compute调度会为您选择一个主机.
您可以使用以下命令找到可能的主机:第3章虚拟机实例53#novahost-list|grepcompute--on-shared-storage-指定所有实例文件都在共享存储中.
source_host-被撤离的主机名.
例如:#novahost-evacuate--targetCompute2_OnEL7.
localdomainmyDemoHost.
localdomain3.
6.
3.
配置共享存储如果您使用共享存储,以下操作会为Compute服务把实例目录导出到两个节点,并保证这些节点可以被访问.
/etc/nova/nova.
conf文件中的state_path和instances_path参数指定了目录的路径.
以下操作使用默认值-/var/lib/nova/instances.
只有具有root访问权限的用户才可以设置共享存储.
1.
在控制器主机上:在控制器主机上:a.
确保Compute服务的用户(这个用户必须在控制器和节点中都是相同的)对/var/lib/nova/instances目录有读和写的访问权限.
例如:drwxr-xr-x.
9novanova4096Nov520:37instancesb.
把以下行添加到/etc/exports文件,使用两个compute节点的IP地址替换其中的node1_IP和node2_IP:/var/lib/nova/instances(rw,sync,fsid=0,no_root_squash)/var/lib/nova/instances(rw,sync,fsid=0,no_root_squash)c.
把/var/lib/nova/instances目录导出到compute节点.
#exportfs-avrd.
重启NFS服务器:#systemctlrestartnfs-server2.
在每个在每个compute节点上:节点上:a.
确定/var/lib/nova/instances目录在本地存在.
b.
把以下行添加到/etc/fstab文件::/var/lib/nova/instances/var/lib/nova/instancesnfs4defaults00c.
挂载控制器的实例目录(所有设备在/etc/fstab中列出):#mount-a-vRedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南54d.
确认qemu可以访问目录的镜像:#ls-ld/var/lib/nova/instancesdrwxr-xr-x.
9novanova4096Nov520:37/var/lib/nova/instancese.
确定节点可以看到实例目录:drwxr-xr-x.
9novanova4096Nov520:37/var/lib/nova/instances注意注意您可以运行以下命令查看所有挂载的设备:#df-k第3章虚拟机实例55第4章管理卷(云硬盘)卷就是一个块存储设备,它为OpenStack实例提供持久性的存储.
在RedHatEnterpriseOpenStackPlatform中,卷有时也被称为云硬盘.
4.
1.
基本云硬盘(VOLUME)的使用和配置以下介绍了对最终用户的云硬盘进行基本管理的方法4.
1.
1.
创建云硬盘1.
在dashboard中选择项目项目>Compute>云硬盘云硬盘.
2.
点创建云硬盘创建云硬盘,编辑以下项:项描述云硬盘名称云硬盘的名称描述对云硬盘的描述信息(可选)类型卷类型(可选).
请参阅第4.
2.
3节"使用云硬盘类型进行云硬盘分组设置".
如果您有多个块存储后端,您可以在这里选择一个后端.
请参阅第4.
1.
2节"为创建的云硬盘指定后端".
大小(GB)卷的大小(以GB为单位)可用域可用域(逻辑服务器组)和主机集合(hostaggregate)是在OpenStack中进行资源聚合的常用方法.
可用域在安装的过程中被定义.
如需了解更多与可用域和主机集合相关的信息,请参阅第3.
4节"管理主机集合".
3.
指定云硬盘源云硬盘源:源描述没有源,空白云硬盘云硬盘为空,不包括文件系统和分区表.
RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南56快照使用一个存在的快照作为云硬盘的源.
如果您选择这个选项,一个"使用快照作为源"的列表会被显示,您可以从这个列表中选择一个快照.
如需了解更多与云硬盘快照相关的信息,请参阅第4.
1.
8节"创建、克隆或删除云硬盘快照".
镜像使用一个存在的镜像作为云硬盘源.
如果您选择这个选项,一个"使用镜像作为源"的列表会出现,您可以从这个列表中选择一个镜像.
卷使用一个存在的云硬盘作为云硬盘源.
如果您选择这个选项,一个"将云硬盘作为源"的列表会出现,您可以从这个列表中选择一个云硬盘.
源描述4.
点创建云硬盘创建云硬盘.
云硬盘被创建后,它的名字会出现在云硬盘云硬盘列表中.
4.
1.
2.
为创建的云硬盘指定后端您可以配置BlockStorage服务来使用多个后端.
例如,配置OpenStack使用NFS后端介绍了如果配置BlockStorage服务来使用一个NFS共享和默认后端的方法.
在创建多个BlockStorage后端时,您还需要为每个后端创建一个云硬盘类型.
然后,您可以使用这个类型来指定创建的云硬盘使用哪个后端.
如需了解更多相关信息,请参阅第4.
2.
3节"使用云硬盘类型进行云硬盘分组设置".
在创建云硬盘时通过在"类型"下拉列表中选择云硬盘类型来为它指定后端(请参阅第4.
1.
1节"创建云硬盘").
如果您在创建云硬盘时没有指定后端,BlockStorage服务会自动选择一个.
默认情况下,它会选择有最大可用空间的设备作为后端.
您也可以配置BlockStorage服务在所有可用后端中随机进行选择.
如需了解更多相关信息,请参阅第4.
2.
6节"配置如何在多后端间分配卷".
4.
1.
3.
编辑一个云硬盘的名称或描述信息1.
在dashboard中选择项目项目>Compute>云硬盘云硬盘.
2.
按云硬盘的编辑云硬盘编辑云硬盘按钮.
3.
根据需要修改云硬盘的名称和描述.
4.
点编辑云硬盘编辑云硬盘保存您的改变.
第4章管理卷(云硬盘)57注意注意要创建一个加密的卷,首先需要一个可以提供卷加密功能的卷类型.
另外,Compute和BlockStorage服务都需要被配置为使用相同的静态密钥.
如需了解更详细的信息,请参阅第4.
2.
5节"使用静态密钥加密卷".
4.
1.
4.
删除卷1.
在dashboard中选择项目项目>Compute>云硬盘云硬盘.
2.
在云硬盘云硬盘列表中,选择要删除的云硬盘.
3.
点删除云硬盘删除云硬盘.
注意注意当一个云硬盘(卷)存在快照时,这个云硬盘将无法被删除.
如需了解删除快照的信息,请参阅第4.
1.
8节"创建、克隆或删除云硬盘快照".
4.
1.
5.
为实例附加或取消附加一个云硬盘实例可以使用一个云硬盘来进行持久保存.
一个云硬盘同时只能附加到一个实例.
如需了解更多与实例相关的信息,请参阅第3.
1节"管理实例".
4.
1.
5.
1.
为实例挂载一个云硬盘1.
在dashboard中选择项目项目>Compute>云硬盘云硬盘.
2.
选择云硬盘的编辑挂载编辑挂载操作.
如果这个云硬盘还没有挂载到一个实例,"挂载到云主机"下拉列表会被显示.
3.
在挂载到云主机挂载到云主机列表中选择需要挂载这个云硬盘的云主机.
4.
点挂载云硬盘挂载云硬盘.
4.
1.
5.
2.
从实例上断开一个云硬盘1.
在dashboard中选择项目项目>Compute>云硬盘云硬盘.
2.
选择云硬盘的管理挂载管理挂载操作.
如果这个云硬盘已被挂载到一个实例,实例的名称会出现在挂挂载载项中.
3.
点端口云硬盘端口云硬盘.
4.
1.
6.
把云硬盘设为只读您可以把一个云硬盘设置为允许多个用户对它进行访问,但不能对它的内容进行编辑.
使用以下命令把云硬盘设置为只只读读:#cinderreadonly-mode-updateVOLUMEtrueRedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南58使用目标云硬盘的ID替换VOLUME.
如果需要把只读云硬盘设为可读写,运行以下命令:#cinderreadonly-mode-updateVOLUMEtrue4.
1.
7.
改变一个云硬盘的所有者为了改变云硬盘的所有者,您需要进行一个"云硬盘传送(volumetransfer)"操作.
云硬盘传送操作由云硬盘的当前所有者发起,当云硬盘的新所有者接受了这个操作,云硬盘传送操作就完成了.

4.
1.
7.
1.
通过命令行进行云硬盘传送1.
以云硬盘当前所有者身份登录.
2.
列出有效的云硬盘:#cinderlist3.
启动云硬盘操作:#cindertransfer-createVOLUME其中的VOLUME是云硬盘的名称或ID.
例如:|Property|Value||auth_key|f03bf51ce7ead189||created_at|2014-12-08T03:46:31.
884066||id|3f5dc551-c675-4205-a13a-d30f88527490||name|None||volume_id|bcf7d015-4843-464c-880d-7376851ca728|cindertransfer-create命令清除了云硬盘的所有者设置,并为所有者转换的过程创建了一个id和auth_key.
其它用户可以使用这些值接受所有者转换请求,并成为这个云硬盘的新所有者.
4.
新用户现在可以接受成为云硬盘的新所有者.
用户需要从命令行登录并运行:#cindertransfer-acceptTRANSFERIDTRANSFERKEY其中,TRANSFERID和TRANSFERKEY分别是cindertransfer-create命令返回的id和auth_key的值.
例如:#cindertransfer-accept3f5dc551-c675-4205-a13a-d30f88527490f03bf51ce7ead189第4章管理卷(云硬盘)59注意注意您可以使用以下命令查看所有有效的云硬盘转移:#cindertransfer-list4.
1.
7.
2.
通过Dashboard进行云硬盘传送通过通过Dashboard进行云硬盘传送进行云硬盘传送1.
使用云硬盘(卷)所有者的身份在dashboard中选择项目项目>云硬盘云硬盘.
2.
在要进行传送的云硬盘的操作操作栏中选创建传送创建传送.
3.
在创建传送创建传送对话框中,输入传送的名称,点新增存储卷迁移新增存储卷迁移.
云硬盘传送操作会被创建,在存储卷迁移存储卷迁移界面中包括了需要发送到接收项目的传传送号送号和认认证证密密钥钥信息.
注意注意认证密钥信息只会出现在存储卷迁移存储卷迁移界面中.
如果您丢失了这个信息,则需要取消这个存储卷迁移,并创建一个新的迁移来产生一个新的认证密钥.
4.
关闭存储卷迁移存储卷迁移界面返回卷列表.
卷的状态会变为awaiting-transfer,直到接收项目接受了这个转移操作通过通过dashboard接受一个存储卷转移接受一个存储卷转移1.
使用接收项目所有者的身份在dashboard中选择项目项目>云硬盘云硬盘.
2.
点接受转移接受转移.
3.
在接受存储卷转移接受存储卷转移对话框中,输入从存储卷当前所有者那里获得的转转移号移号和认认证证密密钥钥,点接接受存储卷转移受存储卷转移.
这个存储卷现在会出现在活跃项目的云硬盘列表中.
4.
1.
8.
创建、克隆或删除云硬盘快照您可以通过创建一个云硬盘快照来保存一个云硬盘在某个时间点上的状态.
然后,可以使用这个快照来克隆新的云硬盘.
警告警告为一个已经挂载到某个实例上的云硬盘创建快照可能会破坏快照的数据.
如需了解如何把云硬盘从实例上断开,请参阅第4.
1.
5.
2节"从实例上断开一个云硬盘".
RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南60注意注意卷备份和快照有所不同.
备份会保存包括在卷中的数据,而快照会保存一个卷在某个时间点上的状态.
另外,当一个卷带有快照时,这个卷将无法被删除.
卷备份的目的是防止数据丢失,而快照的目的是用于克隆.
因为这个原因,快照后端通常会和存储卷后端在一起,从而可以在进行克隆时最小化延迟的影响.
相反的,在一个企业级的环境中,备份存储库通常会存在于不同的位置(例如,在不同的节点上、不同的物理存储上,甚至不同的地理位置).
这可以在存储卷后台被破坏时,备份数据不会受到影响.
如需了解更多与云硬盘备份相关的信息,请参阅第4.
2.
1节"备份和恢复一个云硬盘".
创建云硬盘快照:创建云硬盘快照:1.
在dashboard中选择项目项目>Compute>云硬盘云硬盘.
2.
选择目标云硬盘的创建快照创建快照操作.
3.
为快照输入一个快照名快照名,点创建云硬盘快照创建云硬盘快照.
云硬盘快照云硬盘快照标签也会显示所有快照.
当一个快照出现在云硬盘快照云硬盘快照表中,您就可以使用它来克隆新云硬盘.
点快照的创建云硬盘创建云硬盘来克隆云硬盘.
如需了解更多相关信息,请参阅第4.
1.
1节"创建云硬盘".
要删除一个快照,选择删除云硬盘快照删除云硬盘快照操作.
如果您的OpenStack部署使用RedHatCeph后端,请参阅第4.
1.
8.
1节"RedHatCeph后端中保护的快照和未保护的快照"来获取更多相关信息.
4.
1.
8.
1.
RedHatCeph后端中保护的快照和未保护的快照当使用RedHatCeph作为OpenStack部署的后端时,可以把快照在后端设置为受保护的.
在OpenStack中进行删除受保护的快照操作(通过dashboard或使用cindersnapshot-delete命令)将会失败.
如果需要删除受保护的快照,您需要先在RedHatCeph后端把快照设置为未保护,然后,就可以使用一般的方法在OpenStack中删除这个快照.
如需了解相关信息,请参阅ProtectingaSnapshot和UnprotectingaSnapshot.
4.
1.
9.
把一个云硬盘上传到Image服务您可以把一个存在的云硬盘作为一个镜像直接上传到Image服务:1.
在dashboard中选择项目项目>Compute>云硬盘云硬盘.
2.
选择目标云硬盘的上传到镜像上传到镜像操作.
3.
为云硬盘提供一个镜像名称镜像名称,并从磁盘格式磁盘格式列表中选择一个值.
4.
点上传上传.
QEMU磁盘镜像工具程序会使用您所提供的名称上传您所选择格式的镜像.
要查看上传的镜像,选项目项目>Compute>镜像镜像.
新的镜像会出现在镜像镜像列表中.
如需了解更多关于使用和配置镜像的信息,请参阅第1.
2节"管理镜像".
第4章管理卷(云硬盘)614.
2.
高级卷配置以下介绍了如何进行高级的卷管理.
这些操作需要管理权限.
4.
2.
1.
备份和恢复一个云硬盘云硬盘备份就是一个可以持久保存的云硬盘内容的副本.
云硬盘备份通常被创建为项存储,在默认情况下,通过ObjectStorage服务进行管理.
您也可以为您的备份设置不同的存储技术,OpenStack支持Ceph、GlusterFS和NFS作为替代的存储后端.
当创建云硬盘备份时,所有备份的元数据被保存在BlockStorage服务的数据库中.
当cinder使用备份进行数据恢复时会使用这个元数据.
因此,如果数据库已经被破坏,您在恢复云硬盘备份前需要首先恢复BlockStorage服务的数据库.
如果您只希望配置云硬盘的一部分来使它可以在数据库被破坏的情况下仍然可以工作,您也可以导出备份的元数据.
导出元数据后,您就可以在需要时把元数据重新导入到BlockStorage数据库中.
然后,就可以正常地恢复云硬盘.
注意注意卷备份和快照有所不同.
备份会保存包括在卷中的数据,而快照会保存一个卷在某个时间点上的状态.
另外,当一个卷带有快照时,这个卷将无法被删除.
卷备份的目的是防止数据丢失,而快照的目的是用于克隆.
因为这个原因,快照后端通常会和存储卷后端在一起,从而可以在进行克隆时最小化延迟的影响.
相反的,在一个企业级的环境中,备份存储库通常会存在于不同的位置(例如,在不同的节点上、不同的物理存储上,甚至不同的地理位置).
这可以在存储卷后台被破坏时,备份数据不会受到影响.
如需了解更多与云硬盘快照相关的信息,请参阅第4.
1.
8节"创建、克隆或删除云硬盘快照".
4.
2.
1.
1.
创建一个完全云硬盘备份使用cinderbackup-create命令可以对云硬盘进行备份.
在默认情况下,这个命令会对云硬盘创建一个完全备份.
如果这个云硬盘已经存在了备份,则可以创建一个增量增量备份(请参阅第4.
2.
1.
2节"创建一个增量云硬盘备份").
您可以对您有访问权限的云硬盘进行备份.
这意味着,有管理权限的用户可以备份任何云硬盘(无论这些云硬盘的所有者是谁).
如需了解更详细的信息,请参阅第4.
2.
1.
1.
1节"以Admin身份创建云硬盘备份".
1.
查看需要备份的云硬盘的ID或DisplayName:#cinderlist2.
备份云硬盘:#cinderbackup-createVOLUME使用要备份的云硬盘的ID或DisplayName替换VOLUME.
例如:RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南62|Property|Value||id|e9d15fc7-eeae-4ca4-aa72-d52536dc551d||name|None||volume_id|5f75430a-abff-4cc7-b74e-f808234fa6c5|注意注意备份的volume_id会和被备份的源云硬盘的ID相同.
3.
运行以下命令检查云硬盘备份是否已经成功完成:#cinderbackup-list当备份项的Status为available时,意味着云硬盘备份已完成.
现在,您还可以导出并保存云硬盘备份的元数据.
这将使您可以在BlockStorage数据库被破坏的情况下仍然可以恢复云硬盘的备份.
运行以下命令:#cinder--os-volume-api-version2backup-exportBACKUPID其中的BACKUPID是云硬盘备份的ID或名称.
例如:|Property|Value||backup_service|cinder.
backup.
drivers.
swift||backup_url|eyJzdGF0dXMiOiAiYXZhaWxhYmxlIiwgIm9iam.
.
.
|||.
.
.
4NS02ZmY4MzBhZWYwNWUiLCAic2l6ZSI6IDF9|云硬盘备份的元数据包括backup_service和backup_url的值.
4.
2.
1.
1.
1.
以以Admin身份创建云硬盘备份身份创建云硬盘备份具有管理权限的用户(例如默认的admin用户)可以备份OpenStack管理的任何云硬盘.
当admin用户备份一个所有者是非admin用户的云硬盘时,在默认情况下,所做的备份对云硬盘的所有者不可见.
作为一个admin用户,您可以创建一个云硬盘的备份,并且并且使这个备份对特定的租户有效.
运行以下命令:#cinder--os-auth-urlKEYSTONEURL--os-tenant-nameTENANTNAME--os-usernameUSERNAME--os-passwordPASSWDbackup-createVOLUME其中:TENANTNAME是可以访问这个备份的租户的名称.
USERNAME和PASSWD是TENANTNAME内的一个用户的username/password信息VOLUME是您需要备份的云硬盘的名称或ID.
第4章管理卷(云硬盘)63KEYSTONEURL是Identity服务的URL端点(通常是http://IP:5000/v2,其中的IP是Identity服务主机的IP地址).
在进行这个操作时,备份的大小会占用TENANTNAME的配额,而不会占用admin的配额.
4.
2.
1.
2.
创建一个增量云硬盘备份在默认情况下,cinderbackup-create命令会对云硬盘创建一个完全备份.
如果这个云硬盘已经存在了备份,则可以创建一个增量增量备份.
因为云硬盘的数据可能会随着使用时间的增加变得非常大,因此定期进行完全备份会消耗大量资源.

而增量备份只记录从上一次备份(完全备份或增量备份)以来数据的变化,这样就可以定期记录云硬盘上数据的所有变化,同时最小化对资源的消耗.
使用--incremental选项创建一个增量备份:#cinderbackup-createVOLUME--incremental使用要备份的云硬盘的ID或DisplayName替换VOLUME.
注意注意当存在增量备份时,不能删除相关的完全备份.
例如,当一个完全备份有多个增量备份时,您只能删除最后一个增量备份.
增量备份在NFS和ObjectStorage备份存储库中被完全支持.
Ceph备份存储库也支持增量备份,但只针对于存储在Ceph后端的存储卷.
4.
2.
1.
3.
当BlockStorage数据库损坏时恢复云硬盘BlockStorage数据库包括了云硬盘备份服务(openstack-cinder-backup)所需的元数据,因此一般情况下,BlockStorage数据库损坏时将无法恢复一个云硬盘备份.
元数据包括backup_service和backup_url的值,您可以在创建备份后导出它们(第4.
2.
1.
1节"创建一个完全云硬盘备份").
如果您已经导出并保存了元数据,就可以在需要时把它导入到一个新的BlockStorage数据库,这样就可以对云硬盘备份进行恢复.
1.
使用带有管理员权限的用户运行:#cinder--os-volume-api-version2backup-importbackup_servicebackup_url其中的backup_service和backup_url包括在您导出的元数据中.
例如,使用第4.
2.
1.
1节"创建一个完全云硬盘备份"导出的元数据:#cinder--os-volume-api-version2backup-importcinder.
backup.
drivers.
swifteyJzdGF0dXMi.
.
.
c2l6ZSI6IDF9|Property|Value|RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南64|id|77951e2f-4aff-4365-8c64-f833802eaa43||name|None|2.
在元数据被导入到BlockStorage服务数据库后,您就可以象一般情况一样恢复云硬盘(请参阅第4.
2.
1.
4节"从备份恢复一个云硬盘").
4.
2.
1.
4.
从备份恢复一个云硬盘1.
找到您需要使用的云硬盘备份的ID:#cinderbackup-listVolumeID需要和您要恢复的云硬盘的ID相匹配.
2.
恢复云硬盘备份:#cinderbackup-restoreBACKUP_ID其中的BACKUP_ID是您要使用的云硬盘备份的ID.
3.
如果您不再需要一个备份,运行以下命令删除它:#cinderbackup-deleteBACKUP_ID4.
2.
1.
5.
查看和修改租户的备份配额和多数租户存储配额(云硬盘数量、云硬盘存储、快照等)不同,备份的配额当前还无法通过dashboard进行修改.
当前,备份配额只能通过命令行进行修改(使用cinderquota-update命令).
使用以下命令查看某个特定租户(TENANTNAME)的存储配额:#cinderquota-showTENANTNAME运行以下命令更新一个特定租户可以创建的最大备份数量(MAXNUM):#cinderquota-update--backupsMAXNUMTENANTNAME运行以下命令更新一个特定租户可以创建的所有备份的总量(MAXGB):#cinderquota-update--backup-gigabytesMAXGBTENANTNAME运行以下命令查看一个特定租户的存储配额的使用情况:#cinderquota-usageTENANTNAME4.
2.
1.
6.
通过Dashboard启用云硬盘备份管理功能第4章管理卷(云硬盘)65现在,您可以通过dashboard创建、查看、删除和恢复云硬盘备份.
使用项目项目>Compute>云硬盘云硬盘>云硬盘备份云硬盘备份标签页可以进行这些操作.
在默认情况下,云硬盘备份云硬盘备份标签页没有被启用,您需要根据以下步骤配置dashboard来启用它:1.
打开/etc/openstack-dashboard/local_settings文件.
2.
找到以下设置:OPENSTACK_CINDER_FEATURES={'enable_backup':False,}把这个设置改为:OPENSTACK_CINDER_FEATURES={'enable_backup':True,}3.
通过重启httpd服务来重启dashboard:#systemctlrestarthttpd.
service4.
2.
1.
7.
设置一个NFS共享作为备份存储库在默认情况下,BlockStorage服务使用ObjectStorage服务作为备份的存储库.
您可以使用以下方法,把BlockStorage服务配置为使用一个存在的NFS共享作为备份存储库:1.
使用一个带有管理权限的用户登录到提供备份服务(openstack-cinder-backup)的节点上.
2.
把BlockStorage服务配置为使用NFS备份驱动(cinder.
backup.
drivers.
nfs):#openstack-config--set/etc/cinder/cinder.
confDEFAULTbackup_drivercinder.
backup.
drivers.
nfs3.
设置您需要作为备份存储库使用的NFS共享:#openstack-config--set/etc/cinder/cinder.
confDEFAULTbackup_shareNFSHOST:PATH其中:NFSHOST是NFS服务器的IP地址或主机名.
PATH是NFS共享在NFSHOST上的绝对路径.
4.
运行以下命令可以为NFS共享设置可选的挂载配置:#openstack-config--set/etc/cinder/cinder.
confDEFAULTbackup_mount_optionsNFSMOUNTOPTS其中,NFSMOUNTOPTS是由逗号分隔的NFS挂载选项(例如,rw,sync).
如需了解更多相关信息,请参阅nfs和mount的man页.
RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南665.
重启BlockStorage备份服务来使所做的改变生效:#systemctlrestartopenstack-cinder-backup.
service4.
2.
1.
7.
1.
设置不同的备份文件大小设置不同的备份文件大小备份服务会使用一个最大的备份文件大小备份文件大小设置来限制备份文件的大小,当云硬盘备份的实际大小超过这个值时,备份会被分为多个文件.
备份文件大小的默认值是1.
8GB.
运行以下命令可以修改备份文件大小的设置:#openstack-config--set/etc/cinder/cinder.
confDEFAULTbackup_file_sizeSIZE使用您实际需要的值替换SIZE(以字节为单位).
重启BlockStorage备份服务使所做的修改生效:#systemctlrestartopenstack-cinder-backup.
service4.
2.
2.
迁移卷只有管理员可以迁移卷.
迁移卷时卷不能被使用,也不能有任何快照.
1.
以一个管理员用户的身份,列出所有有效的卷:#cinderlist2.
列出有效的后端(主机)和它们相关的可用域:#cinder-managehostlist3.
初始迁移的过程:#cindermigrateVOLUMEBACKEND其中:VOLUME是要迁移卷的ID.
BACKEND是卷要被迁移到的后端.
4.
查看迁移卷的当前状态:#cindershowVOLUME例如:#cindershow45a85c3c-3715-484d-ab5d-745da0e0bd5a|Property|Value|第4章管理卷(云硬盘)67|os-vol-host-attr:host|server1||os-vol-mig-status-attr:migstat|None|在迁移过程中,请关注以下属性:os-vol-host-attr:host卷当前的后台.
当迁移完成后,它的值会变为目标后台(BACKEND的值).
os-vol-mig-status-attr:migstat迁移的状态.
当它的值为None时说明迁移没有在进行.
4.
2.
3.
使用云硬盘类型进行云硬盘分组设置OpenStack允许您创建云硬盘类型,并在创建一个云硬盘时应用云硬盘类型中包括的设置(第4.
1.
1节"创建云硬盘").
例如,您可以设置:是否对云硬盘进行加密(第4.
2.
5.
2节"配置云硬盘类型加密")云硬盘所使用的后端(第4.
1.
2节"为创建的云硬盘指定后端")Quality-of-Service(QoS)规格使用"键-值"对来与云硬盘类型进行关联的设置被称为特别设定(ExtraSpecs).
当您在创建云硬盘时指定一个云硬盘类型,BlockStorage调度器会应用这些使用"键/值"对指定的设置.
您可以为同一个云硬盘类型关联多个"键/值"对.
云硬盘类型可以为不同用户提供不同级别的存储级别.
通过使用"键/值"对为云硬盘类型关联相关的设置,您可以为不同的云硬盘类型指定不同的存储级别.
然后,您就可以在创建云硬盘时通过指定云硬盘类型来为云硬盘指定相应的存储级别.
注意注意被支持的特别设定会根据卷驱动的不同而有所不同.
请参考您的卷驱动的相关文档来获得详细信息.
4.
2.
3.
1.
创建并配置一个云硬盘类型1.
使用一个admin用户,在dashboard中选择管理员管理员>云硬盘云硬盘>云硬盘类型云硬盘类型.
2.
点创建云硬盘类型创建云硬盘类型.
3.
在名称名称项中输入云硬盘类型的名称.
4.
点创建云硬盘类型创建云硬盘类型.
新类型会出现在云硬盘类型云硬盘类型项中.
5.
选择云硬盘类型的查看特别设定查看特别设定操作.
6.
点创建创建,设置键键和值值.
所指定的键/值对必须有效,否则在创建云硬盘时指定云硬盘类型会出现错误.
7.
点创建创建.
相关联的设置("键/值"对)会出现在特别设定特别设定列表中.
RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南68在默认情况下,所有的云硬盘类型对于所有OpenStack租户都有效.
如果您创建的云硬盘类型需要对租户访问进行限制时,则需要使用CLI进行设置.
如需了解相关信息,请参阅第4.
2.
3.
4节"创建和配置私有云硬盘类型".
注意注意您也可以为云硬盘类型关联一个QOS规格.
如需了解详细信息,请参阅第4.
2.
4.
2节"为云硬盘类型关联一个QOS规格".
4.
2.
3.
2.
编辑一个云硬盘类型1.
使用一个admin用户,在dashboard中选择管理员管理员>云硬盘云硬盘>云硬盘类型云硬盘类型.
2.
在云硬盘类型云硬盘类型项中,选择云硬盘类型的查看特定设置查看特定设置操作.
3.
在卷扩展规格属性卷扩展规格属性列表中,您可以:为云硬盘类型添加新设置.
点创建创建,指定需要和这个云硬盘类型相关联的"键/值"对.
编辑一个存在的设置.
选择编辑编辑操作.
删除已存在的设置.
点删除额外规格删除额外规格按钮.
4.
2.
3.
3.
删除一个云硬盘类型要删除一个云硬盘类型,在云硬盘类型云硬盘类型列表中选择相应的云硬盘并点删除云硬盘类型删除云硬盘类型.
4.
2.
3.
4.
创建和配置私有云硬盘类型在默认情况下,所有的云硬盘类型对于所有OpenStack租户都有效.
您可以在创建云硬盘类型的过程中修改这个设置,把所创建的云硬盘类型设置为私有私有(把它的Is_Public标记设置为False).
通过设置私有云硬盘类型,可以限制对特定云硬盘类型的访问.
一般情况下,某些设置(例如,需要进行测试的新后端或超高性能配置)应该只可以被特定租户使用.
运行以下命令创建一个私有云硬盘类型:#cinder--os-volume-api-version2type-create--is-publicfalse_VTYPE_+使用私有云硬盘类型的名称替换VTYPE.
在默认情况下,私有云硬盘类型只能被它的创建者访问.
admin用户可以使用以下命令找到并查看私有云硬盘类型:#cinder--os-volume-api-version2type-list--all这个命令会列出公共云硬盘类型和私有云硬盘类型,并列出它们的名称和ID.
您需要使用云硬盘类型的ID对它们进行访问.
分配私有云硬盘类型的访问权限是在租户一级进行的.
运行以下命令可以为一个租户分配访问一个私有云硬盘类型的权限:第4章管理卷(云硬盘)69#cinder--os-volume-api-version2type-access-add--volume-type_VTYPEID_--project-id_TENANTID_其中:VTYPEID是私有云硬盘类型的ID.
TENANTID是被分配可以访问VTYPEID权限的项目/租户ID.
运行以下命令可以查看哪些租户可以访问某个私有云硬盘类型:#cinder--os-volume-api-version2type-access-list--volume-type_VTYPE_运行以下命令可以把一个租户从一个私有云硬盘的访问列表中删除:#cinder--os-volume-api-version2type-access-remove--volume-type_VTYPE_--project-id_TENANTID_注意注意在默认情况下,只有具有管理权限的用户才可以创建、查看或配置私有云硬盘类型的访问权限.
4.
2.
4.
使用服务质量规格您可以把多个性能设置包括在一个服务质量规格(Quality-of-Servicespecification,简称QOSSpecs)中,这样,就可以为不同类型的用户提供相应服务质量的性能.
和卷类型相似,性能设置通过一个"关键字/值"数据对来映射到规格.
服务质量规格和卷类型的不同之处在于:服务质量规格被用来实现性能设置,包括对磁盘读/写的限制.
不同的存储驱动会支持不同性能设置.
如需了解您的后端所支持的QOS规格,请参阅您的后端设备的卷驱动文档.
卷类型会直接应用到卷,而QOS规格会与卷类型相关联.
在创建卷时,指定卷类型的同时也会应用和这个卷类型相关联的QOS规格中定义的性能设置.
4.
2.
4.
1.
创建并配置一个QOS规格作为管理员,您可以通过QOS规格列表创建并配置QOS规格.
您可以为同一个QOS规格管理多个"键/值"对.
1.
使用一个admin用户,在dashboard中选择管理员管理员>云硬盘云硬盘>云硬盘类型云硬盘类型.
2.
在QOS规格规格项中点创建创建QOS规格规格.
3.
为QOS规格规格输入一个名称.
4.
在消费者消费者项中指定QOS规格在哪里被强制执行:RedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南70表表4.
1.
消费者类型消费者类型类型描述back-endQOS规格需要应用到BlockStorage后端.
front-endQOS规格需要应用到Compute.
bothQOS规格将应用到BlockStorage和Compute.
5.
点创建创建.
新创建的QOS规格应该出现在QOS规格规格列表中.
6.
在QOS规格规格列表中,选择新规格的管理规格管理规格操作.
7.
点创建创建,设置键键和值值.
所指定的键/值对必须有效,否则在创建云硬盘时,指定和这个QOS规格相关联的云硬盘类型时会出现错误.
8.
点创建创建.
相关联的设置("键/值"对)会出现在键值对键值对列表中.
4.
2.
4.
2.
为云硬盘类型关联一个QOS规格作为一个管理员,您可以使用云硬盘类型云硬盘类型列表为一个存在的卷类型关联QOS规格.
1.
使用一个admin用户,在dashboard中选择管理员管理员>云硬盘云硬盘>云硬盘类型云硬盘类型.
2.
在云硬盘类型云硬盘类型项中,选择云硬盘类型的管理管理QOS规格关联规格关联操作.
3.
从要关联的要关联的QOS规格规格下拉列表中选择一个QOS规格.
4.
点关联关联.
所选的QOS规格将会出现在被编辑的云硬盘类型的已关联已关联QOS规格规格栏中.
4.
2.
4.
3.
为云硬盘类型取消关联一个QOS规格1.
使用一个admin用户,在dashboard中选择管理员管理员>云硬盘云硬盘>云硬盘类型云硬盘类型.
2.
在云硬盘类型云硬盘类型项中,选择云硬盘类型的管理管理QOS规格关联规格关联操作.
3.
从要关联的QOS规格列表中选择None.
4.
点关联关联.
所选的QOS规格将会不会出现在被编辑的云硬盘类型的已关联已关联QOS规格规格栏中.
4.
2.
5.
使用静态密钥加密卷对卷进行加密可以在卷后台的安全性被破坏时为数据提供基本的安全保护.
被加密卷的内容只有在使用一个特定密钥时才可以被读写;Compute和BlockStorage服务都需要被配置为使用相同的密钥来使实例可以使用加密的卷.
以下介绍了如何配置OpenStack部署来使用一个密钥来加密卷.
4.
2.
5.
1.
创建一个静态密钥第4章管理卷(云硬盘)71实现基本卷加密的第一步是设置一个静态密钥(statickey).
这个密钥需要是一个十六进制的字符串,并被BlockStorage卷服务(openstack-cinder-volume)和所有Compute服务(openstack-nova-compute)使用.
要设置这两个服务使用这个密钥,在它们的相关配置文件中的[keymgr]项中使用这个密钥作为fixed_key的值.
1.
通过命令行,以root身份登录到包括openstack-cinder-volume的节点.
2.
设置静态密钥:#openstack-config--set/etc/cinder/cinder.
confkeymgrfixed_keyHEX_KEY把HEX_KEY替换为一个16位的十六进制密钥值(例如0000000000000000000000000000000000000000000000000000000000000000).
3.
重启BlockStorage卷服务:#openstack-servicerestartcinder-volume4.
登录到包括openstack-nova-compute的节点,设置相同的静态密钥:#openstack-config--set/etc/nova/nova.
confkeymgrfixed_keyHEX_KEY注意注意如果您有多个Compute节点(多个节点都包括openstack-nova-compute),您需要在每个节点的/etc/nova/nova.
conf中设置相同的静态密钥.
5.
重启Compute服务:#openstack-servicerestartnova-compute注意注意同样,如果您在多个Compute节点上设置了静态密钥,您需要在每个节点上都重启openstack-nova-compute服务.
到目前为止,Compute和BlockStorage卷服务都可以使用相同的静态密钥对卷进行加密和解密.
新的实例将可以使用经过静态密钥(HEX_KEY)加密的卷.
4.
2.
5.
2.
配置云硬盘类型加密为了使用第4.
2.
5.
1节"创建一个静态密钥"创建的静态密钥对云硬盘进行加密,您需要一个加密的云硬盘类型.
配置一个加密的云硬盘类型包括设置providerclass、cipher和key_size.
运行以下命令:#cinderencryption-type-create--cipheraes-xts-plain64--key_sizeBITSIZE--control_locationfront-endVOLTYPEnova.
volume.
encryptors.
luks.
LuksEncryptorRedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南72其中:BITSIZE是密钥的大小(例如,512代表512位的密钥).
VOLTYPE是您需要加密的云硬盘类型的名称.
这个命令设置了nova.
volume.
encryptors.
luks.
LuksEncryptorproviderclass和aes-xts-plain64cipher.
在这个发行版本中,云硬盘加密只支持这个class/cipher配置.
在您创建了一个加密的云硬盘类型后,您就可以在创建加密云硬盘时自动使用它.
在创建云硬盘创建云硬盘窗口中的类型下拉菜单中选择需要的加密云硬盘类型(请参阅第4.
1节"基本云硬盘(Volume)的使用和配置").
4.
2.
6.
配置如何在多后端间分配卷如果BlockStorage服务被配置为使用多后端,您可以使用配置的云硬盘类型来指定卷可以在哪里创建.
如需更详细的信息,请参阅第4.
1.
2节"为创建的云硬盘指定后端".
如果在创建云硬盘的过程中没有进行指定,BlockStorage服务会自动选择一个后端.
BlockStorage把第一个定义的后端作为默认的后端,在这个后端还有空间时,它会被使用.
如果第一个后端没有可用的空间,BlockStorage会把第2个后端设置为默认后端.
以此类推.
如果这无法满足您的要求,则可以使用过滤调度程序来控制BlockStorage如何选择后端.
调度程序会根据不同的过滤规则选择适当的后端,例如:AvailabilityZoneFilter过滤掉不符合所需卷的可用域要求的后端.
CapacityFilter只选择有足够空间的后端来保存云硬盘CapabilitiesFilter只选择可以支持卷中的所有指定设置的后端按照以下步骤配置过滤器:1.
启用FilterScheduler.
#openstack-config--set/etc/cinder/cinder.
confDEFAULTscheduler_drivercinder.
scheduler.
filter_scheduler.
FilterScheduler2.
设置哪个过滤器应该被激活:#openstack-config--set/etc/cinder/cinder.
confDEFAULTscheduler_default_filtersAvailabilityZoneFilter,CapacityFilter,CapabilitiesFilter3.
配置调度程序如何选择适当的后端.
如果您需要调度程序:总选择具有最多可用空间的后端,运行:#openstack-config--set/etc/cinder/cinder.
confDEFAULT第4章管理卷(云硬盘)73scheduler_default_weighersAllocatedCapacityWeigher#openstack-config--set/etc/cinder/cinder.
confDEFAULTallocated_capacity_weight_multiplier-1.
0在适当后端中随机选择,运行:#openstack-config--set/etc/cinder/cinder.
confDEFAULTscheduler_default_weighersChanceWeigher4.
重启BlockStorage调度程序来使您的改变生效:#openstack-servicerestartopenstack-cinder-schedulerRedHatEnterpriseLinuxOpenStackPlatform7实例和镜像指南74第5章管理容器OpenStackObjectStorage(swift)使用容器(container)来保存它的对象(数据),容器和一个文件系统的目录相似,只是不能进行嵌套.
它为用户提供了一个存储无结构数据的方法.
例如,对象可以包括图形、文本文件或镜像.
存储的对象没有被加密,也不被压缩.
为了更好地组织数据,可以使用虚拟文件夹(pseudo-folder).
虚拟文件夹是包括对象的逻辑设备,并可以进行嵌套.
例如,您可以在存储照片的容器中创建一个Images文件夹;在存储视频的容器中创建一个Media文件夹.
您可以在每个项目中创建一个或多个容器,在每个容器中创建一个或多个对象或虚拟文件夹.

5.
1.
创建一个容器1.
在dashboard中选择项目项目>对象存储对象存储>容器容器.
2.
点创建容器创建容器.
3.
指定容器名容器名,在容器访问容器访问项中选择以下值之一:类型描述Private限制当前的项目只能被某个用户访问.
Public允许API访问所有具有公共URL的容器.
但是在dashboard中,项目用户无法看到其它项目的公共容器和数据.
4.
点创建容器创建容器.
5.
2.
为容器创建虚拟文件夹1.
在dashboard中选择项目项目>对象存储对象存储>容器容器.
2.
点您需要添加虚拟文件夹的容器名称.
3.
点创建虚拟文件夹创建虚拟文件夹.
4.
在虚拟文件夹名称虚拟文件夹名称项中输入名称,点创建创建.
5.
3.
上传一个对象如果您没有上传一个实际的文件,对象仍然会被创建(作为一个占位符),它可以在以后被用来上传文件.
1.
在dashboard中选择项目项目>对象存储对象存储>容器容器.
2.
点放置上传对象的容器的名称;如果容器中存在虚拟文件夹,您可以点它的名称.

第5章管理容器753.
找到您的文件,点上传对象上传对象.
4.
在对象名对象名项中输入一个名称:虚拟文件夹的名称可以使用/(如Images/myImage.
jpg).
如果指定的文件夹不存在,在对象上传时会被自动创建.
如果您使用的名称不是唯一的(同名的对象已经存在),它会覆盖以前同名对象的内容.

修罗云50元/月起香港大宽带NAT VPS,香港沙田建站2核2G5M仅70元/月起

修罗云怎么样?修罗云是一家国内老牌商家,修罗云商家以销售NAT机器起家,国内的中转机相当不错,给的带宽都非常高,此前推荐的也都是国内NAT VPS机器。今天,云服务器网(www.yuntue.com)小编主要介绍一下修罗云的香港云服务器,适合建站,香港沙田cn2云服务器,2核2G,5M带宽仅70元/月起,同时香港香港大带宽NAT VPS低至50元/月起,性价比不错,可以尝试一下!点击进入:修罗云官...

云雀云(larkyun)低至368元/月,广州移动1Gbps带宽VDS(带100G防御),常州联通1Gbps带宽VDS

云雀云(larkyun)当前主要运作国内线路的机器,最大提供1Gbps服务器,有云服务器(VDS)、也有独立服务器,对接国内、国外的效果都是相当靠谱的。此外,还有台湾hinet线路的动态云服务器和静态云服务器。当前,larkyun对广州移动二期正在搞优惠促销!官方网站:https://larkyun.top付款方式:支付宝、微信、USDT广移二期开售8折折扣码:56NZVE0YZN (试用于常州联...

Ftech:越南vps,2核/2G/20G SSD/1Gbps不限流量/可安装Windows系统,$12.5月

ftech怎么样?ftech是一家越南本土的主机商,成立于2011年,比较低调,国内知道的人比较少。FTECH.VN以极低的成本提供高质量服务的领先提供商之一。主营虚拟主机、VPS、独立服务器、域名等传统的IDC业务,数据中心分布在河内和胡志明市。其中,VPS提供1G的共享带宽,且不限流量,还可以安装Windows server2003/2008的系统。Ftech支持信用卡、Paypal等付款,但...

设置虚拟内存为你推荐
域名查询域名信息查询网站独立ip空间大家都来看看,下面哪个独立IP空间好linux虚拟主机如何安装LINUX虚拟机虚拟主机租用虚拟主机服务器租用要怎么选择?域名注册查询怎么查看域名是否注册网站服务器租用哪些网站适合独立服务器租用?价格方面怎么样?ip代理地址使用IP代理会有什么坏处吗?域名申请申请域名需要什么条件?具体点!急!急!!!网站空间购买国内网站空间购买哪里的比较实惠啊?asp网站空间求申请ASP免费空间地址的网址
重庆网站空间 过期域名查询 国际域名抢注 vpsio ix主机 360抢票助手 贵州电信宽带测速 http500内部服务器错误 日本空间 最好的空间 789电视网 卡巴斯基破解版 申请网页 常州联通宽带 lamp是什么意思 成都主机托管 google搜索打不开 美国asp空间 卡巴斯基免费版 vpsaa 更多