打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
OpenstackClient
server create    (--image |--volume ) --flavor          选择使用的镜像 | 硬盘 | 云主机类型
                        --security-group                              安全组
                        --key-name                                     添加一个秘钥
                        --file   <dst-path=src-path>           将本地的<src-path>文件存储到虚拟机<dst-path>目录下。注射的文件收quota限制。
                        --user-data                                     云主机注入文件信息
                        --availablilty-zone                          选择可用域
                        --block-device-mapping               块设备映射。格式:<dev-name>=<id>:<type><size(GB)>:<delete-on-terminate>  
                         --nic                                             添加网卡信息。<net-id=net-uuid,net-name=network-name,port-id=port-uuid,v4-fixed-ip=ip-addr,v6-fixed-ip=ip-addr,tag=tag>
                                                                              net-id,net-name,port-id分别为网络ID、网络名字、端口ID,三者配置一个即可        
                                                                              v4-fixed-ip: 配置ipv4固定IP
                                                                              v6-fixed-ip:配置ipv6固定IP
                        -- network  --port                         与  --nic 用法相同,比其更简单一些。   
                        --hint                                            调用server group。在调度过程中,增加一个ServerGroupAffinity/Anti-affinity Filter
                        --config-drive | Ture                     使用指定的卷作为配置驱动器,或“True”使用临时驱动器。
                        --min     —mix                              启动的虚拟机最大/最小的数量。
部分不常用而又实用的功能详解:
--block-device-mapping 和--block-device
在animbus4.0中,在创建虚拟机时,可以设置云主机启动源“创建一个新云硬盘并启动”。    注:在animbus5.0中,在bashboard中创建云主机,默认使用这种方式。
如果想在命令行中以这个要求创建虚拟机,可以使用 nova boot --block-device,命令如下:
nova boot test  --flavor <Flavor ID>  --block-device   source=image,id=<Image ID>,dest=volume,size=20,bootindex=0,shutdown=remove
—block-device:
参数如下:
    id=UUID(image_id,snapshot_id,volume_id)
    souce=源类型(image,snapshot,volume,blank)
    dest=目的类型(volume,local)
    bus=总线类型(uml,lxc,virtio等,常用virtio)
    type=设备类型(disk,cdrom,Floppy,Flash,默认是disk)
    device=设备名称(vda,xda)
    size=块大小
    format=格式(ext4,ISO,swap,ntfs)
    bootindex=定义启动盘,是启动盘的话需要是0
    shutdown=删除对应动作(prserve,remove)
在nova boot中,有两个参数,--block-device 和--block-device-mapping,前者是v1版,后者是v2版。
在代码novaclient/v2/shell.py的_boot方法中:
从block_device_mapping取出值放入block_device_mapping
从_parse_block_device_mapping_v2取出值放入block_device_mapping_v2
所以说明两者是不兼容的。也就是说指定了–block_device_mapping,就不能指定参数–boot_volume、–snapshot、–block_device。
因此想达到创建一个新云硬盘并启动的启动源,只能使用 nova boot --block-device, 而--block-device-mapping暂时是不支持的,只能将volume先创建好,在套入格式。
那为什么要并用两套不兼容的版本?
因为openstack兼容多种虚拟化方式,但有些虚拟化不支持指定虚拟机的挂载点。因此推出加强版块设备映射(--block-device-mapping)
下面是两种版本的例句:
--block-device:
    nova  boot  test --flavor 39dc9f61-6334-4132-b987-5dc16ce0356b  --block-device source=image,id=dac2fb66-257e-4396-8708-a09c37fd87e4,dest=volume,size=20,bootindex=0,shutdown=remove
--block-device-mapping:
    nova boot --image dac2fb66-257e-4396-8708-a09c37fd87e4 --flavor 04a63ac9-45f7-4621-a109-fbc4c1f9a4ad --block-device-mapping vdc=dd066077-27b7-4da3-afa7-91da6d2b2f87:::0 device-mapping-test2
--block-device参数中,由于源类型(image,snapshot,volume,blank)有这么几种可选,目的类型(volume,local)有这两种可选
上面参数可以组合出几种形态,依据不同的形态有不同的含义:
dest source 说明 简述
volume volume 直接挂载到compute节点 当bootindex=0时,相当于--boot-volume<volume-id>
volume snapshot 调用cinder依赖快照创建新卷,挂在到compute节点 -snapshot<snapshot_id>
volume image 调用cinder依据镜像创建新卷,挂载到compute节点
当bootindex=0时,相当于 --image<image>
boot from image,create a new volume
volume blank 调用cinder依据创建空白的卷,挂载到compute节点  
local image 在Hypervisor上创建ephemeral分区,将image拷贝到里面并且启动虚拟机 相当于普通的boot from image
local blank format=swap时,创建swap分区,默认创建ephemeral分区
bootindex=-1 shutdown=remove format=swap时,相当于--swap=<swap size>。
bootindex=-1 shutdown=remove,相当于--ephemeral
--hint
用法如下:
    openstack server create --image dac2fb66-257e-4396-8708-a09c37fd87e4 --flavor 04a63ac9-45f7-4621-a109-fbc4c1f9a4ad --hint group=df091317-0eb5-42b0-82a5-aa95846d0f1a serverGroup-test
在--hint后面加上server group ID。
创建server group
openstack server group create [—policy <policy>]  <name>    
Server group 有两种policy:affinity 和anti-affinity。
affinity:表示尽量把vm都安排到一个host上面。如果不添加policy选项,默认使用affinity。
anti-affinity:表示尽量把vm安排到不同的host上面。
在创建云主机中加入--hint选项,就会将云主机将入相应的ServerGroup的member中,相同server group的成员按照相应的策略进行调度。
在调度的过程中,会加入一个ServerGroupAntiAffinityFilter或者ServerGroupAffinityFilter。 如果是ServerGroupAntiAffinityFilter,那就会将虚拟机见到相同节点上
ServerGroupAffinityFilter与RetryFilter的功能类似,但是比RetryFilter更加细致,可以细分到各个ServerGroup。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Logical Volume Manager (Linux) - Wikipedia, t...
How to use Odin Downloader to Flash or install Stock Firmware (ROM)
eMMC启动uboot
AM335x Hardware Design Guide
从nandflash上启动uboot的ecc校验问题(STI7105)
u
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服