OpenstackClient --server create

server create    (--image |--volume ) --flavor          选择使用的镜像 | 硬盘 | 云主机类型
                        --security-group                              安全组
                        --key-name                                     添加一个秘钥
                        --file             将本地的文件存储到虚拟机目录下。注射的文件收quota限制。
                        --user-data                                     云主机注入文件信息
                        --availablilty-zone                          选择可用域
                        --block-device-mapping               块设备映射。格式:=::  
                         --nic                                             添加网卡信息。
                                                                              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中创建云主机,默认使用这种方式。
OpenstackClient --server create_第1张图片
如果想在命令行中以这个要求创建虚拟机,可以使用 nova boot --block-device,命令如下:
nova boot test  --flavor  --block-device   source=image,id=,dest=volume,size=20,bootindex=0,shutdown=remove
 
—block-device:
OpenstackClient --server create_第2张图片
参数如下:
    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方法中:
OpenstackClient --server create_第3张图片
从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 snapshot 调用cinder依赖快照创建新卷,挂在到compute节点 -snapshot
volume image 调用cinder依据镜像创建新卷,挂载到compute节点
当bootindex=0时,相当于 --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=
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 ]      
 
Server group 有两种policy:affinity 和anti-affinity。
affinity:表示尽量把vm都安排到一个host上面。如果不添加policy选项,默认使用affinity。
anti-affinity:表示尽量把vm安排到不同的host上面。
 
在创建云主机中加入--hint选项,就会将云主机将入相应的ServerGroup的member中,相同server group的成员按照相应的策略进行调度。
OpenstackClient --server create_第4张图片
 
在调度的过程中,会加入一个ServerGroupAntiAffinityFilter或者ServerGroupAffinityFilter。 如果是ServerGroupAntiAffinityFilter,那就会将虚拟机见到相同节点上
 
ServerGroupAffinityFilter与RetryFilter的功能类似,但是比RetryFilter更加细致,可以细分到各个ServerGroup。

转载于:https://www.cnblogs.com/carzynonsense/p/7325129.html

你可能感兴趣的:(OpenstackClient --server create)