VMADM(1M)VMADM(1M)


名称


vmadm - 管理SmartOS虚拟机

概要


/ usr / vm / sbin / vmadm <command> [-d] [-v] [特定于命令的参数]

描述


vmadm工具允许您与SmartOS上的虚拟机进行交互
系统。 全部3个:OS虚拟机(SmartOS区域),LX虚拟机
可以管理机器和KVM虚拟机。 vmadm允许你
创建,检查,修改和删除本地系统上的虚拟机。

重要事项:对LX VM的支持目前有限和实验性。 这个
意味着它很有可能以主要方式改变,恕不另行通知。 还:不
所有实现的LX功能都已记录在案。
随着事情的稳定,文档将被更新。

虚拟机的主要参考是其UUID。 大多数命令都在VM上运行
由UUID。 在SmartOS中,包括bash选项卡完成规则
您可以选择完成UUID,而不必为每个UUID键入它们
命令。

命令


支持以下命令和选项:

create [-f <filename>]

在系统上创建一个新的虚拟机。 引用的任何图像/数据集都必须
已经存在于目标zpool上。 输入必须是JSON您可以
使用-f参数传递文件或从某些东西重定向stdin
与JSON。 如果没有指定文件,Create将拒绝创建VM
而stdin是一个tty。

有关详细信息,请参阅下面的“属性”或“示例”部分
放入JSON有效载荷。

create-snapshot <uuid> <snapname>

支持快照目前是实验性的。 它只适用于操作系统
VMS也没有其他数据集。

<snapname>参数指定要拍摄的快照的名称
的指定VM。 快照名称必须为64个字符或更少
只能在集合中包含字母数字字符和字符
[-_.:%]以符合ZFS的限制。

您可以在将来使用删除快照或回滚快照
您使用create-snapshot创建的快照,只要该快照
还存在

有关如何使用的更多详细信息,请参阅下面的“SNAPSHOTS”部分
这些快照及其限制。

console <uuid>

连接到正在运行的虚拟机的文本控制台。 对于OS VM,这将是
区域控制台。 对于KVM虚拟机,这将是串行控制台和您的
VM将需要使用getty或类似的方式首先运行
串行设备 LX VM尚不支持。

要结束串行控制台会话CTRL-]。 对于OS VM,您需要
在一行开始时这样做,所以一般这意味着压力:
ENTER然后按CTRL-]然后一个点字符。 对于KVM虚拟机你应该只是
需要按CTRL-]本身。

删除<uuid>

用指定的UUID删除虚拟机。 VM和任何关联的
存储包括zvols和区域文件系统将被删除。

如果你设置了indestructible_zoneroot或indestructible_delegated
VM上的标志* *无法*删除,直到您取消设置这些标志
有一些像:

vmadm update <uuid> indestructible_zoneroot = false
vmadm update <uuid> indestructible_delegated = false

删除快照并保留。

注意:'vmadm delete'命令没有交互,请小心删除
右VM。

delete-snapshot <uuid> <snapname>

支持快照目前是实验性的。 它只适用于操作系统
VMS也没有其他数据集。

此命令将删除存在该名称的ZFS快照
具有指定uuid的VM的<snapname>。 您无法撤消此操作
操作,它将不再能够回滚到指定的
快照

有关如何使用的更多详细信息,请参阅下面的“SNAPSHOTS”部分
这些快照及其限制。

得到<uuid>

输出描述VM的JSON对象。 JSON对象将被转储
到stdout。 输出对象可以由json(1)进一步处理,
如果需要的话。

info <uuid> [type,...]

info命令仅运行KVM虚拟机。 它会谈到
vmadmd(1M)守护程序,并请求有关正在运行的VM的一些信息。
该信息作为具有成员的JSON对象输出到stdout
每个类型指定的对象。 如果没有指定类型,则所有信息
已经包括了。 类型值可以用逗号分隔
空格

可用的信息类型有:

所有:
明确地包括所有其他类型。

块:
关于连接到该VM的块设备的信息。

blockstats:
读/写数据块,操作次数最多
为每个块设备写入偏移量。

查尔德夫
关于附加的特殊字符设备的信息
虚拟机

cpus:
有关连接到此虚拟机的虚拟CPU的信息。

kvm:
有关此虚拟机中KVM驱动程序可用性的信息。

pci:
关于虚拟PCI总线上每个设备的信息
这个虚拟机。

香料:
我们的TCP套接字的IP,端口和VNC显示编号
监听这个虚拟机。 如果启用了香料。

版:
Qemu版本信息。

vnc:
我们的TCP套接字的IP,端口和VNC显示编号
监听这个虚拟机。 如果VNC启用


列表[-p] [-H] [-o字段,...] [-s字段,...] [field = value ...]

列表命令可以以各种方式列出系统上的虚拟机。
过滤器,排序和排序选项均基于虚拟机的属性。
有关允许的键列表,请参阅下面的“属性”部分。 所有
列为“listable”的那些可以用作过滤的关键字,
排序或排序。

列表命令始终对受一个限制的一组VM进行操作
过滤。 默认情况下,过滤器为空,因此列出所有虚拟机。 你添加
通过在cmdline上指定key = value对进行过滤。 你也可以
通过使用key =〜value和make来通过正则表达式匹配过滤器
值为正则表达式。 您可以添加任意数量的过滤器
并且将仅显示与所有过滤器参数匹配的VM。

输出的字段由-o选项控制
订购。 默认的顺序是'uuid,type,ram,state,alias'。 如果你
用-o选项指定你自己的顺序,这个顺序被替换了
您希望保留在输出中的默认字段
将它们添加到您的字段列表中。

输出中的行顺序通过-s选项进行控制
这决定了排序顺序。 默认排序顺序为'ram,uuid'
这意味着VM将首先按RAM排序,然后再分配VM
相同的RAM值将被uuid排序。 你也可以选择拥有
一个字段按降序排序,前缀为该字段名称
' - '字符。 因此,像'-ram,uuid'这样的命令会做同样的事情
默认除了首先用最高RAM值排序。

您可以为list命令指定的另外两个选项是
选择可解析输出的“-p” 设置此标志,输出为
用“:”字符分隔,而不是在列中排列。 这个
选项也禁用标题的打印。

如果你想禁用标题的标题打印
由于某些原因输出,可以使用'-H'选项。

你可以看到几个例子,使用顺序,排序和选择
下面的示例部分。

lookup [-j | -1] [-o field,field,..] [field = value ...]

查找命令旨在帮助您查找虚拟机。 需要一套
过滤器选项的格式与list命令相同。 这意味着你
在命令行上用key = value对指定它们,并可以使用
key =〜value格式指定正则表达式值。 这些虚拟机
匹配所有的过滤器参数将被输出。

默认输出是匹配的VM的UUID的单列列表
过滤器。 这样,您可以执行以下操作:

for vm in $(vmadm lookup type = KVM state = running);
echo -n“$ {vm}”
vmadm info $ {vm} vnc | json vnc.display
完成了

基于输出。 如果要将输出用作JSON,可以添加
-j参数。 设置该标志,输出将是一个JSON数组
包含与“get”命令相同的JSON数据的VM对象
每个虚拟机匹配。

当-j标志被传递时,你也可以限制对象中的字段
的输出数组。 要这样做,请使用-o选项。 例如,如果你
使用:

vmadm lookup -j -o uuid,品牌,配额

输出数组中的对象只能具有uuid,品牌和配额
会员 在可能的情况下,vmadm可以优化查找,从而不会
包括输出中的字段意味着它不必做这个潜在的事情
昂贵的操作来查找它们。 默认情况下(不含-o)所有字段
被包含在对象中。

如果传递-1参数,则lookup只能返回1个结果。 如果
多个结果匹配或0个匹配的结果,一个错误将
退回状态将不为零。

有关允许的键列表,请参阅下面的“属性”部分。 所有
那些列为“listable”的那些可以用作过滤的关键。

重启<uuid> [-F]

重新启动虚拟机。 默认重新启动将尝试正常停止VM
当VM已停止时,它将再次被引导。 这确保了
给予VM内的进程有机会正确关闭
以尽量减少数据丢失。

对于OS VM,shutdown命令将在该区域内运行
cmdline'/ usr / sbin / shutdown -y -g 0 -i 6'将导致VM
关机后重新启动

对于KVM虚拟机,vmadmd将作为这里的帮助程序重新启动
与“stop”命令相同的方式。

如果由于某种原因你不能或不想做一个优雅的
重新启动,您可以添加'-F'参数来强制重启。 这个
重新启动将会更快,但不一定会给予任何VM
时间关闭其流程。

回滚快照<uuid> <snapname>

支持快照目前是实验性的。 它只适用于操作系统
VMS也没有其他数据集。

此命令滚动以指定的方式备份VM的数据集
当使用snapname的快照时,uuid返回到其状态
被采取。 除了回滚到更老的位置,您不能撤消此操作
快照如果存在。

重要信息:当您回滚到快照时,所有其他快照都将更新
比你回滚的那个将被删除。 不会再这样了
可以回滚到比该虚拟机的<snapname>更新的快照。
还要注意:如果您的VM启动时运行,则VM将被停止
回滚快照,并将在快照完成后引导
恢复。

有关如何使用的更多详细信息,请参阅下面的“SNAPSHOTS”部分
这些快照及其限制。

开始<uuid> [option = value ...]

启动处于“关闭”状态的虚拟机。 对于OS VM,这不需要
任何论据 对于KVM VM,可以指定一些额外的
使用此工具启动VM的参数。 这些可以是:

order = cdn [,一次= d]

此选项允许您更改VM的引导顺序
当前启动。 硬盘的顺序选项为'c','d'
用于第一个CD-ROM驱动器,'n'用于网络引导。 所以订单
'cdn'意味着启动硬盘,如果失败,尝试cdrom和if
那会失败尝试网络引导。

您还可以添加',once = X'选项,其中'X'是相同的
订单选项。 这将设置引导顺序一次,如果VM
重新启动(甚至从内部),订单将返回到默认值。
这对于安装媒体特别有用,因为您可以添加
,一旦= d启动ISO映像一次,然后安装
完成后,您将在硬盘驱动器上启动。

order =选项只能在每次引导时指定一次。

cdrom = / path / to / image.iso,[ide | scsi | virtio]

此选项允许您为虚拟机添加虚拟CD-ROM磁盘
启动。 指定的路径在zoneroot内进行评估
VM所以/image.iso实际上就像路径一样
/zones/<uuid>/root/image.iso从全球区域。

该参数的第二部分(在逗号之后)指示哪个
型号的CD-ROM驱动器应该是。 大多数人应该选择ide
案件

引导虚拟机时可以指定多个cdrom选项。 他们会的
按照它们在cmdline上显示的顺序进行附加。

disk = / path / to / disk,[ide | scsi | virtio]

此选项允许您向虚拟机添加其他磁盘以进行此引导
只要。 指定的路径在zoneroot内进行评估
VM所以/raw.img实际上就是这样的路径
/zones/<uuid>/root/raw.img从全球区域。

该参数的第二部分(在逗号之后)指示哪个
模拟虚拟驱动器应该是。 你应该选择美德
你知道虚拟机支持它,而ide或scsi则支持它
取决于客人支持的驱动程序。

引导虚拟机时可以指定多个磁盘选项。 他们会的
按照它们在cmdline上显示的顺序进行附加。

停止<uuid> [-F]

停止虚拟机 默认停止将尝试优雅。 这确保了
虚拟机内的进程有机会关闭
正确尝试最小化数据丢失。

对于OS VM,shutdown命令将在该区域内运行
cmdline'/ usr / sbin / shutdown -y -g 0 -i 5'将导致VM
关闭所有进程后,进入“关闭”状态。

对于KVM虚拟机,vmadmd将作为一个帮手在这里。 我们发送掉电
消息通过vmadmd到运行的qemu进程。 Qemu然后发送
ACPI信号给客户内核告诉它关闭。 万一
客户端内核忽略这一点,或者由于某种原因不接受这一点
请求我们使用转移属性标记VM,表示我们
试图关闭它。 此转换标记还包括到期。
如果vmadmd看到有一个转换但到达到期的VM
实际上关闭,它使用-F选项重新发送停止命令。

如果由于某种原因你不能或不想做一个优雅的停止
您也可以通过“-F”参数添加强制停止。 这个停止
将会更快(特别是对于KVM),但不一定会给出
VM随时关闭其进程。

sysrq <uuid> <nmi | screenshot>

此命令仅适用于KVM虚拟机。 对于那些暴露的
发送客户端操作系统内核的能力不可屏蔽中断(NMI)或
拍摄虚拟控制台的屏幕快照。

要发送NMI,可以运行:vmadm sysrq <uuid> nmi

要截图:vmadm sysrq <uuid>截图

截图将结束于VM的目录zonepath,在:
<zonepath> /root/tmp/vm.ppm从全局区域。

更新<uuid> [-f <filename>]
更新<uuid> property = value [property = value ...]

此命令允许您更新现有VM的属性。
属性可以更新的属性如下所示
具有'updatable:yes'属性的部分。

要更新属性,可以传递包含JSON的文件
对象作为cmdline上-f选项的参数,发送一个JSON
对象在stdin(虽然它会拒绝工作,如果stdin是一个tty),或
在cmdline上传递property = value参数。

如果您传递一个JSON对象,该对象应该被格式化在
与创建有效载荷相同。 唯一的例外是字段
它们本身就是对象:VM NIC,KVM VM磁盘,customer_metadata,
internal_metadata,标签和路由。 在“简单”的情况下
属性'标签','customer_metadata','internal_metadata'和
“路线”是键值对,有2个特殊的有效载荷成员:

set_tags || set_customer_metadata
|| set_internal_metadata || set_routes

remove_tags || remove_customer_metadata ||
remove_internal_metadata || remove_routes

它可以从键/值集添加/更新或删除条目。 添加一个
条目,将其包含在一个简单的字符串值的set_X对象中。
从这些词典中删除一个对象,将其名称包含在列表中
作为remove_X的值。 例如,要添加一个带有“hello”的标签
'world',你的JSON将如下所示:

{“set_tags”:{“hello”:“world”}}

然后更改您要执行的此密钥的值:

{“set_tags”:{“hello”:“universe”}}

最后删除你要做的这个密钥:

{“remove_tags”:[“hello”]}

相同的模式用于customer_metadata,internal_metadata和
路线。

在nics和磁盘的情况下,有3个特殊对象:

add_disks || add_nics
remove_disks || remove_nics
update_disks || update_nics

对于NIC,例如,您可以包括一个NIC对象数组
参数add_nics在您的输入。 那些NIC将被添加到虚拟机。
对于更新,您还传递一个新的NIC对象,但只需要指定
“mac”参数(以确定要更新的NIC)和
要更改的属性。 如果需要更改MAC
地址本身,您需要添加具有相同属性的新NIC
和不同的MAC,并删除现有的MAC。 要删除NIC,
remove_nics属性应该只是一个MAC地址数组(不是NIC
对象)。

对于更新磁盘,您使用与上述NIC相同的格式
除了选项是add_disks,remove_disks和update_disks
而不是“mac”,这些将被键入“路径”。

在“属性”部分中标记的可更新和
修改为'(实时更新)'意味着当您更新属性
更改将在VM上立即生效,而不需要VM
重新启动 其他属性将需要重新启动才能使用
影响。

验证创建[-f <filename>]
验证更新<brand> [-f <filename>]

此命令允许您在调用之前验证您的JSON有效载荷
创建或更新。 您必须指定您的有效载荷的操作
意图(创建或更新),因为验证规则是不同的。
此外,当验证更新有效载荷时,您必须通过品牌
参数作为验证规则因品牌而异。

如果没有指定-f <filename>,则预期有效载荷将被传递
在stdin。 如果指定-f <filename>,则要验证的有效内容将会
从该名称的文件中读取。 从此命令输出
有效载荷有效的情况将是:

“VALID为快乐的品牌虚拟机创建有效载荷。”

退出代码将为0.当有效载荷无效时退出代码
将是1,你将得到一个至少将有一个json对象
以下成员之一:

'bad_brand'

您传递给验证的品牌参数无效。

'bad_properties'

这是一个有效负载属性的数组,对于该属性无效
指定的动作。

'bad_values'

这是一组有效载荷属性,具有不可接受的值。

'missing_properties'

这是一个数组的有效载荷属性是必需的
给定的动作,但从指定的有效载荷中丢失。

请参阅下面的“属性”部分,以帮助纠正错误
有效载荷

SNAPSHOTS


快照目前仅适用于操作系统虚拟机,仅适用于那些
不使用委托数据集或除其他数据集之外的其他数据集
zoneroot数据集。

使用create-snapshot创建快照时,将创建一个ZFS
该数据集的名称数据集@ vmsnap- <snapname>的快照
由vmadm get will返回的虚拟机对象的快照成员
只包括使用此模式创建的那些快照。

这允许vmadm区分已经采用的快照和
可能使用其他工具拍摄的快照。

要删除快照,可以使用delete-snapshot命令。 那会的
销毁ZFS中的快照,它将自动从中删除
机器的快照列表。 它将无法再回滚到它。

可以在先前快照时将虚拟机回滚到其状态
使用rollback-snapshot命令。 这将停止虚拟机回滚
zoneroot数据集到指定的快照并再次启动VM。
重要信息:rollback-snapshot将自动删除所有快照
比你回来的那个。 这不能被撤消。

属性


每个VM都有一些属性。 可以列出虚拟机的属性
使用'vmadm get <uuid>'命令。 其中一些属性可以
包含在创建有效载荷中,一些可以包含在输出中或被使用
为“vmadm list”命令排序输出。 不是所有的领域都会
包括所有虚拟机。 字段下方标记为:

type - 属性值的类型。

vmtype - 适用于此属性的VM(KVM,LX,OS)类型。

可列表 - 如果它们可以包含在-o或-s列表中
'vmadm list'命令。

创建 - 如果该字段可以包含在创建有效载荷中。

更新 - 如果可以使用'vmadm update'命令更新该字段。
某些字段也被标记(实时更新),在这种情况下,
更新会影响正在运行的机器的行为。 其他
可更新的字段不会影响VM操作
需要重新启动虚拟机才能这样做。

默认 - 如果该字段具有默认值,这将解释什么
那个价值是。


别名:

虚拟机的别名仅用于显示/查找。
要求是独一无二的。

键入:string
vmtype:OS,KVM
可列:是的
创建:是的
更新:是的

archive_on_delete:

当archive_on_delete设置为“true”并且VM被删除时
区域/归档数据集存在并挂载在/ zones / archive上,我们将会
在破坏该区域之前从该区域提取调试信息。
保存的信息包括核心,JSON由“vmadm get”输出,
来自/ etc / zones的区域的XML文件,SMF日志,qemu日志(对于KVM),
startvm脚本(用于KVM),所有区域的属性
数据集,元数据,标签和/ var / adm / messages。 在未来的名单
可能会改变。 指定的文件将被写入目录
/ zones / archives / <uuid>。

类型:布尔值
vmtype:OS,KVM
清单:不
创建:是的
更新:是的
默认值:false

自动启动:

控制系统重新引导时是否引导VM。
该属性可以通过初始创建进行设置,但可以在VM的任何时间设置
开始这个也将设置为真,当VM停止它将会
得到设置为false。 这是为了确保计算节点永远
重新启动进入预期状态。

类型:布尔值
vmtype:OS,KVM
可列:是的
创建:是的
更新:是的

billing_id:

一个标识符,旨在帮助确定哪个计费类别这个虚拟机
应该落入

键入:string(UUID)
vmtype:OS,KVM
可列:是的
创建:是的
更新:是的
默认值:00000000-0000-0000-0000-000000000000

启动:

此选项允许您设置KVM虚拟机的引导顺序。 格式是
与上述对于“开始”的顺序参数相同
命令。

键入:string
vmtype:KVM
清单:不
创建:是的
更新:是的
默认:'order = cd'

boot_timestamp:

这是一个只读属性,仅存在于运行虚拟机。 什么时候
可用,它将指示VM上次引导的时间。

type:string(ISO 8601 timestamp)
vmtype:OS,KVM
可列:是的
创建:不
更新:否

牌:

对于操作系统来说,这将是“欢乐”,“快乐最小”或“sngl”之一
虚拟化和“完全硬件虚拟化”的“kvm”。 这是一个
虚拟机创建所需的值。

类型:string(joyent | joyent-minimal | kvm | sngl)
vmtype:OS,KVM
可列:是的
创建:是的
更新:否

cpu_cap:

设置VM可以使用的CPU时间量的限制。
使用的单位是VM可以使用的单个CPU的百分比。
例如。 值为300表示最多3个完整的CPU。

类型:整数(单个CPU的百分比,为无盖设置为0)
vmtype:OS,KVM
可列:是的
创建:是的
更新:是(实时更新)

cpu_shares:

对公平共享调度程序(FSS)CPU份额的数量设置限制
一个虚拟机 该值与系统上的所有其他VM相关,因此是一个值
仅与其他VM有关。 如果你有一个虚拟机
值为10,另一个值为50,VM为50将获得5x
与调度器一样多的时间,当有10个时候
争论

类型:整数(股数)
vmtype:OS,KVM
可列:是的
创建:是的
更新:是(实时更新)
默认值:100

cpu_type:

对于KVM虚拟机,这将控制暴露于该虚拟机的虚拟CPU的类型
客人。 如果值为“host”,则guest将看到相同的CPU类型
在主机上看到的标志。

type:string(qemu64 | host)
可列:是的
vmtype:KVM
创建:是的
更新:是的
默认值:qemu64

create_timestamp:

虚拟机以ISO 8601格式创建的时间。

type:string(format:'2011-12-31T06:38:42.457Z')
vmtype:OS,KVM
可列:是的
创建:否(自动添加)
更新:否
默认值:始终设置为VM.create()的当前时间。

server_uuid:

这是VM当前存在的计算节点的UUID。
当从GZ外部的来源被拉出时,它是最有用的(无论是
在VM中,或从另一个节点)。

type:string(计算节点的UUID)
vmtype:OS,KVM
清单:不
创建:不
更新:否
默认值:当对象被加载时,这总是被拉。

customer_metadata:

此字段允许设置元数据并与此虚拟机关联。
值应该是只有顶级key = value对的对象。

注1:出于历史原因,不要把钥匙放在这里
模式* _pw。 那些密钥应该放在internal_metadata中。

注2:前缀为其中一个前缀的键
internal_metadata_namespaces将不会从customer_metadata读取,但是
而是来自internal_metadata。 这些也将是内部只读的
该区域。

键入:JSON对象(键:值)
vmtype:OS,KVM
清单:不
创建:是的
更新:是(但请参阅更新命令的特别说明)
默认值:{}

数据集:

如果VM具有可用的额外数据集(例如,如果您指定了
delegate_dataset选项创建时)列表并获取输出
在此密钥下包含有关该数据集的信息。

type:string(dataset name)
vmtype:OS
清单:不
create:no(使用delegate_dataset包含一个)
更新:否

delegate_dataset:

此属性指示是否应将ZFS数据集委派给
OS VM。 如果为true,则VM将获取数据集<zoneroot dataset> / data(by
默认值:zones / <uuid> / data)。 此数据集也将是
安装在/ <zoneroot数据集> /区域内的数据(再次默认情况下:
/ zones / <uuid> / data),但您可以通过设置mountpoint来更改此值
zfs(1M)区域内的数据集上的选项。 使用时
此选项可以创建子数据集,可以拍摄快照
可以从该数据集中执行许多其他选项
虚拟机

类型:布尔值
vmtype:OS
清单:不
创建:是的
更新:否
默认值:false

磁盘:

在创建KVM VM或获取KVM VM的JSON时,您将使用此功能
属性。 这是一个“磁盘”对象的数组。 可用的属性
列在下面的磁盘下。*。<property>选项。 如果你想
更新磁盘,请参阅上一节中的特殊说明
'升级'命令。

添加或删除磁盘时,磁盘将可用于虚拟机
磁盘包含在磁盘或add_disks数组中的顺序。

要在列表输出或查找中使用这些属性,请使用以下格式:

磁盘。*。大小#用于查找匹配任何磁盘
disk.0.size#用于列表输出或查找特定磁盘

磁盘。*。block_size:

指定磁盘的块大小。 此属性只能设置在
磁盘创建时间,无法更改,而不会破坏磁盘
并创建一个新的。

重要提示:无法在具有image_uuid的磁盘上设置此属性
参数作为被克隆的图像已经有ZFS
volblocksize属性集。

类型:integer(块大小,字节数,512到131072,必须是2的幂)
vmtype:KVM
清单:不
创建:是的
更新:否(添加新磁盘时除外)
默认值:8192

磁盘*。启动:

指定此磁盘是否可引导(只有一个磁盘应该)。

类型:布尔值
vmtype:KVM
清单:是(见上文)
创建:是的
更新:是(特殊情况,请参阅上面'更新'部分的说明)
默认值:否

磁盘*。压缩:

指定用于此磁盘的压缩算法。 这也是一样的
详细信息,警告和注意事项作为全局zfs_root_compression选项
但仅影响VM上的单个磁盘。

有关详细信息,请参阅下面的zfs_root_compression部分。

type:string其中之一:“on,off,gzip,gzip-N,lz4,lzjb,zle”
vmtype:KVM
清单:不
创建:是的
更新:是(请参阅下面的zfs_root_compression部分中的注意事项)
默认:关

磁盘*。nocreate:

此参数指示是否应创建磁盘。
只对具有媒体类型“磁盘”的磁盘有意义。 对于媒体类型
'cdrom'不会创建设备。 它也只能在何时设置
创建磁盘。

类型:布尔值
vmtype:KVM
清单:不
创建:是的
更新:否(添加新磁盘时除外)
default:false(当媒体类型为“disk”)时,创建新的zvol)

磁盘。*。image_name:

要从中克隆此虚拟机磁盘的数据集的名称。 你应该指定
这个和'image_size'和'image_uuid',或者是一个磁盘的'size'。

键入:string
vmtype:KVM
清单:是(见上文)
创建:是的
更新:是(特殊情况,请参阅上面'更新'部分的说明)
默认值:否

磁盘。*。image_size:

我们将从中创建此磁盘的图像大小。 当没有
size或im​​age_size被传递给一个磁盘,但是image_uuid是,而且
图像可通过imgadm获得,image_size值来自
manifest将被设置为image_size。

重要提示:image_size是必需的(除非你依靠imgadm)
包含一个磁盘的image_uuid,如果没有,则不允许。

类型:integer(size in MiB)
vmtype:KVM
清单:是(见上文)
创建:是的
更新:是(特殊情况,请参阅上面'更新'部分的说明)
默认值:no(如果可能,从imgadm加载)

磁盘。*。image_uuid:

用于克隆此虚拟机磁盘的数据集的UUID。 注意:这张图片的
UUID必须出现在'imgadm list'输出才能生效。

键入:string(UUID)
vmtype:KVM
清单:是(见上文)
创建:是的
更新:是(特殊情况,请参阅上面'更新'部分的说明)
默认值:否

磁盘*。刷新:

指定此磁盘的刷新。 该属性控制
给定磁盘预留的最小空间量。 另见zfs(1)
手册页的刷新说明。

类型:MiB的整数
vmtype:KVM
清单:不
创建:是的
更新:是(特殊情况,请参阅上面'更新'部分的说明)
默认值:磁盘大小

磁盘*。大小:

MiB中的磁盘大小 你应该只指定这个参数
不包括image_ *参数。 它将显示在get请求中
对于所有磁盘,无论您是否指定了作为确定的方法
zvol的大小。

重要提示:当您不为磁盘包含image_uuid时,需要大小
当你做的时候不允许

类型:integer(size in MiB)
vmtype:KVM
清单:是(见上文)
创建:是的
更新:是(特殊情况,请参阅上面'更新'部分的说明)
默认值:否

磁盘*。媒体:

指定此磁盘是“磁盘”还是“cdrom”。

type:string(['disk','cdrom'])
vmtype:KVM
清单:是(见上文)
创建:是的
更新:是(特殊情况,请参阅上面'更新'部分的说明)
默认:磁盘

磁盘*型号:

指定此磁盘的驱动程序。 如果你的图像支持它,你应该
使用virtio。 如果没有,请使用ide或scsi,具体取决于您的驱动程序
客人。

类型:string(['virtio','ide','scsi']之一)
vmtype:KVM
清单:是(见上文)
创建:是的
更新:是(特殊情况,请参阅上面'更新'部分的说明)
default:此虚拟机的disk_driver参数的值

磁盘*。zpool:

在其中创建zvol的zpool。

键入:string(zpool name)
vmtype:KVM
清单:是(见上文)
创建:是的
更新:是(特殊情况,请参阅上面'更新'部分的说明)
默认值:区域

注意:SDC不支持除默认“区域”之外的任何池名称。

disk_driver:

这指定了磁盘的默认值。*。附加磁盘的型号
到这个VM。

类型:string(['virtio','ide','scsi']之一)
vmtype:KVM
清单:不
创建:是的
更新:是的

do_not_inventory:

这指定不应该计算或自动计算VM
导入外部管理工具。 主要用例是
测试区域被创建,但是你不想要它们的存在
传播到一个管理系统,因为它们将是短暂的。

注意:此属性将仅在设置时显示在“vmadm get”中
真正。 当设置为false时,属性将不会显示。

类型:布尔值
vmtype:OS,KVM
清单:不
创建:是的
更新:是的

dns_domain:

对于OS VM,它指定要设置的/ etc / hosts的域值
在创建时。 创建后更新将不起作用。

类型:字符串(域名)
vmtype:OS
可列:是
创建:是
更新:无
默认:本地

文件系统:

这个属性可以用来安装其他文件系统到OS
VM。它主要用于SDC特殊的虚拟机。该值是一个
对象的数组。可用的属性的下下面列出
的文件系统。*。<属性>选项。这些对象可以具有以下
属性:源,目标,生(可选),类型和选项。

文件系统*类型:。

对于OS的VM此指定文件系统的类型被安装英寸
实施例:LOFS

类型:字符串(FS类型)
vmtype:OS
可列:没有
创建:是
更新:无

。文件系统*来源:

对于OS虚拟机这一规定在全球区域的目录
文件系统被安装在例如:/游泳池/ somedirectory

类型:字符串(路径)
vmtype:OS
可列:无
创:是的
更新:没有

。文件系统*目标:

对于OS虚拟机这指定在此区内的目录
文件系统应安装。例如:/ somedirectory

类型:字符串(路径)
vmtype:OS
可列:没有
创建:是
更新:无

。文件系统*原料:

对于OS的VM此指定应附加的原始设备
与源文件系统相关联。实施例是:/ dev / rdsk / somedisk

类型:字符串(装置)
vmtype:OS
可列:没有
创建:是
更新:没有

文件系统*选项:

对于OS的VM这个指定的挂载选项此文件的阵列
,当它被安装系统进入园区。的选项包括:
“RO”和“nodevices选项”。

类型:字符串数组(每个字符串是一个选项)
vmtype:OS
可列:没有
创建:是
更新:无

firewall_enabled:

这使得防火墙为此VM,允许设置防火墙规则
fwadm(1M)来施加。

注:此属性将只在当它被设置“vmadm中获得”现身
真正。当设置为false将不会出现财产。

类型:布尔
vmtype:OS
可列:无
创:是
更新:是

fs_allowed:

这个选项允许你指定的文件系统类型这个区域是允许
安装。例如关于构建SmartOS一个区域,你可能想
将它设置为:“UFS,PCFS一样,tmpfs”。要取消这个属性,设置
数值为空字符串。

类型:字符串(以逗号分隔的文件系统类型的列表)
vmtype:OS
可列:无
创:是
更新:是的(需要带重启才能生效)

主机名:

对于KVM虚拟机,该值将被通过DHCP的主机名递出
的VM。对于OS的虚拟机,该值将在几个文件被设置
创建时间,但后来改变它不会做任何事情。

类型:字符串(主机名)
vmtype:OS,KVM
可列:是
创建:是
更新:是的(但没有为OS VM)的
默认:区域名的价值

image_uuid:

这应该是识别虚拟机,如果虚拟机的图像的UUID被
从图像创建。

注:如果这是通过了KVM虚拟机,它指定了*区域根*
数据集,则无法从虚拟机中可见。用户可见的
数据集将通过磁盘指定的一个。*。image_uuid。
通常你*不*要设置此为KVM。

类型:字符串(UUID)
vmtype:OS,KVM
可列:是
创建:是
更新:无

internal_metadata:

此字段允许元数据被设置,并与该VM相关联。
值应与仅顶级密钥=值对一个对象。
意图是,customer_metadata包含客户修改的键
而internal_metadata为操作者生成的键。

注:由于历史原因,在一个区域中的用户执行:

MDATA-得到name_pw

存储与“_pw”键结束,关键是在internal_metadata抬头
,而不是customer_metadata。

类型:JSON对象(键:值)
vmtype:OS,KVM
可列:无
创:是
更新:是的(但看到更新命令特殊说明)
默认:{}

internal_metadata_namespaces:

这样的命名空间的列表被设为internal_metadata-只有
前缀。如果一个命名空间“富”是在这份名单中,元数据键与
前缀“富:”将来自internal_metadata而不是
customer_metadata。他们还将只读在区域中。

类型:字符串列表
vmtype:OS,KVM
可列:没有
创建:是
更新:是
默认值:[]

indestructible_delegated:

当设置该属性添加一个@indestructible快照来委派
(<zfs_filesystem> /数据)的数据集,并设置一个ZFS保持在该快照。
虚拟机可以被删除启用此之前保持必须拆除
两个步骤的缺失。例如。删除这个地方已经设置一个虚拟机,你将
需要:

vmadm中更新<UUID> indestructible_delegated =假
vmadm中删除<UUID>

而不是能够做到对自己的删除。该属性将
设置为true时,仅在VM对象显示出来。

注意:如果在@indestructible数据集的保持被手动删除
从广州或从区域内,这也将删除该标志
,并允许虚拟机被删除。

类型:布尔
vmtype:KVM,LX,OS
可列:是
创建:是
更新:是
默认:假

indestructible_zoneroot:

当设置该属性增加了一个@indestructible快照到zoneroot
(zfs_filesystem)数据集并设置ZFS上的快照举行。这保持
之前的VM可以被删除*或另配*必须拆除。例如。
删除这个地方已经设置一个虚拟机,你将需要:

vmadm中更新<UUID> indestructible_zoneroot =假
vmadm中删除<UUID>

而不是能够做到对自己的删除。该属性将
设置为true时,仅在VM对象显示出来。

注意:如果在@indestructible数据集的保持被手动删除
从广州,这也将删除该标志,并允许虚拟机被
删除。

类型:布尔
vmtype:KVM,LX,OS
可列:是
创建:是
更新:是
默认:假

KERNEL_VERSION:

这台Linux版本效仿的LX虚拟机。

类型:字符串(内核版本2.6.31如)
vmtype:LX
可列:无
创:无
更新:是

limit_priv:

此设置权限,这些权限将提供给该区域的列表
包含此VM。请参见权限(5)关于可能的权限的详细信息。

类型:字符串(以逗号分隔区域权限列表)
vmtype:OS,KVM
可列:无
创:是
更新:是
操作系统默认: “默认”
KVM默认:“默认情况下,-file_link_any,-net_access,-proc_fork,-proc_info, - proc_session”

maintain_resolvers:

如果设置,在VM内/etc/resolv.conf中的解析器将被更新
时,解析器属性更新。

类型:布尔
vmtype:OS
可列:无
创:是
更新:是
默认值:false

max_locked_memory:

在主机相比,可以锁定的物理内存总量
此VM。此值不能超过max_physical_memory更高。

类型:整数(MIB数)
vmtype:OS,KVM
可列:是
创建:是
更新:是的(实时更新)
默认:max_physical_memory的价值

max_lwps:

这个VM允许有轻量级进程的最大数量
的主机上运行。

类型:整数(轻量级进程的数目)
vmtype:OS,KVM
可列:是
创建:是
更新:是的(实时更新)
默认:2000

max_physical_memory:

在主机上的虚拟机被允许使用的最大内存量。
对于KVM虚拟机,这个值不能超过“RAM”下,应该是
RAM + 1024

类型:整数(数MIB)的
vmtype:OS,KVM
可列:是
创建:是
更新:是的(实时更新)
默认值:256 OS的VM,(RAM大小+ 1024)为KVM虚拟机。

max_swap:

虚拟机被允许使用虚拟存储器的最大量。这个
不能比max_physical_memory低,也不能低于256

类型:整数(数MIB)的
vmtype:OS,KVM
可列:是
创建:是
更新:是的(实时更新)
默认:max_physical_memory或256的值,取其更高。

mdata_exec_timeout:

对于OS VM的该参数调整上的START方法超时
的SVC:/ smartdc / MDATA:执行服务的区域中运行。这是
它运行用户脚本,脚本的服务。

创建一个VM和被忽略时,此参数才有意义,
在其他情况下。

类型:整数(0表示无限制,> 0秒数)
vmtype:OS
可列:无
创:是的
更新:无
默认:300个

网卡:

当创建一个VM KVM或得到一个KVM虚拟机的JSON,你会使用这个
属性。这是“NIC”对象的数组。提供的属性
被的NIC下如下所列。*。<属性>选项。如果你想
更新网卡,看见上面有关的部分专用票据
“升级”命令。

添加或删除的NIC的情况下,NIC名称将在被创建
的接口是NIC或add_nics数组中的顺序。

要在列表输出或查找使用这些属性,使用以下格式:

网卡* IP#用于查找匹配任何接口。
nics.0.ip#用于列表输出或查找特定接口的

网卡* allow_dhcp_spoofing:。

有了这个属性设置为true,这个VM将能够为运行
在该接口上的DHCP服务器。没有这一点,一些包的
DHCP服务器的要求不会得到通过。

类型:布尔
vmtype:OS,KVM
可列:是(见上文)
创建:是
更新:是
默认值:false

。网卡* allow_ip_spoofing:

有了这个属性设置为true,则此虚拟机将能够发送和
在这个网卡接收数据包不匹配的IP地址
由IP属性指定。

类型:布尔
vmtype:OS,KVM
可列:是(见上文)
创建:是
更新:是
默认值:false

。网卡* allow_mac_spoofing:

有了这个属性设置为true,则此虚拟机将能够发送的数据包
从这个NIC与MAC不Mac的属性相匹配的地址。

类型:布尔
vmtype:OS,KVM
可列:是(见上文)
创建:是
更新:是
默认值:false

。网卡* allow_restricted_traffic:

有了这个属性设置为true,则此虚拟机将能够发送
限制的网络流量(数据包是不是的IPv4,IPv6或ARP)
从该网卡。

类型:布尔
vmtype:OS,KVM
可列:是(见上文)
创建:是
更新:是
默认值:false

。网卡* allow_unfiltered_promisc:

有了这个属性设置为true,该VM将可以有多个
MAC地址(例如。与VNIC的运行SmartOS)。如果没有这个选项
,这些数据包将不会回升,因为只有这些单播数据包
发往VNIC的MAC将打通。警告:不启用
,除非你完全了解安全含义此选项。

类型:布尔
vmtype:KVM
可列:是(见上文)
创建:是
更新:是
默认:假

的NIC * blocked_outgoing_ports:。

在其上从发送流量防止此NIC端口的阵列。

类型:数组
vmtype:OS,KVM
可列:是(见上文)
创建:是
更新:是

网卡* allowed_ips:。

这将作为此NIC允许其他IP地址
发送流量,除了IP地址在IP和vrrp_primary_ip
属性(如果设置)。值可以是单一的IPv4或IPv6地址
或IPv4和IPv6 CIDR范围。以下是所有有效
allowed_ips的例子:'10 .169.0.0 / 16' ,'10 .99.99.7' ,
'fe82 :: / 15', '2600:3c00 :: f03c:91ff:fe96:A267'。

类型:数组(的IP地址或CIDR范围)
vmtype:OS,KVM
可列:是(见上文)
创建:是
更新:是

网卡* dhcp_server:。

有了这个属性设置为true,该VM将可以为运营一个
在该接口上的DHCP服务器。没有这一点,一些包的
DHCP服务器的要求不会得到通过。

类型:布尔
vmtype:OS,KVM
可列:是(见上文)
创建:是
更新:是
默认值:false

。网卡*网关:

这个网络上的IPv4路由器(如果使用DHCP不需要)。这个
属性应该考虑废弃赞成使用的
网卡。*网关。

类型:字符串(IPv4地址)
vmtype:OS,KVM
可列:是(见上文)
创建:是
更新:是

网卡*网关:。

的IPv4的数组地址作为网络网关使用。如果有多个
指定地址,操作系统特定的行为将应用
(上SmartOS例如圆形robining)。此属性不是必需的,如果
使用的DHCPv4。

更新此字段的界面易于在改变
未来更容易地添加或删除地址。

类型:阵列(IPv4地址)
vmtype:OS,LX,KVM
可列:是(见上文)
创建:是
更新:是

。网卡*接口:

这是接口名称VM将针对该接口看到。
总是会在格式netX的,其中X是整数> = 0

类型:字符串(netX的)
vmtype:OS,KVM
可列:是(见上文)
创建:是
更新:无

。网卡* IP:

IPv4单播地址此NIC,或“DHCP”通过获得地址
的DHCPv4。此属性应考虑deprectated赞成使用的
网卡。*的IP。

类型:字符串(IPv4地址或'DHCP')
vmtype:OS,KVM
可列:是(见上文)
创建:是
更新:是

网卡* IPS:。

IPv4或IPv6的数组地址分配给该NIC。该地址
应指定CIDR标记它们的路由前缀。字符串
“DHCP”(DHCPv4的)和“ADDRCONF”(SLAAC或的DHCPv6)也可以用于
动态地获得地址。

由于KVM情况下通过接收来自QEMU的静态IP地址
的DHCPv4,他们只能接收一个IPv4地址。所以,唯一的
应使用值是“DHCP”或IPv4地址中的一个。
进一步分配IP地址给他们,使用网卡。*。allowed_ips并
从客户操作系统中配置它们。

更新此字段的界面易于在改变
未来更容易地添加或删除地址。

类型:阵列(IP与路由选择前缀, 'DHCP'或'ADDRCONF'地址)
OS,LX,KVM:vmtype
可列:是(见上文)
创建:是
更新:是

。网卡* MAC:

虚拟NIC的MAC地址。

类型:字符串(MAC地址)
vmtype:OS,KVM
可列:是(见上文)
创建:是的
更新:无(见“更新”命令的说明)
默认:我们会生成一个

。网卡*型号:

造成这种情况的驱动程序NIC [已将virtio | E1000 | RTL8139 | ...]

类型:String([ '为Virtio', 'E1000', 'RTL8139']之一)
vmtype:KVM
可列:是(见上文)
创建:是
更新:是
默认的:在nic_driver属性的虚拟机上的价值

。网卡* MTU:

设置MTU网络接口。一个设备的最大MTU是
根据它的NIC标签确定。如果没有设置这个属性,那么它
默认为数据的当前MTU链接,网卡标签
对应。的MTU的支持范围为从1500-9000为
虚拟机上的物理NIC创建,576-9000为VM上创建
etherstubs或重叠。此属性不会更新实时与vmadm中
更新。如果一个特定的MTU尚未请求,则该属性
不通过得到礼物。

类型:整数
vmtype:OS
可列:无
创:是
更新:是的

。网卡*网络掩码

网络掩码为这个NIC网络(不需要如使用DHCP)

类型:字符串(IPv4的网络掩码,如255.255.255.0)
vmtype:操作系统, KVM
可列:是(见上文)
创建:是
更新:是

。网卡* network_uuid

UUID,用于允许网卡来在外部系统中待跟踪

类型:字符串(UUID)
vmtype:OS,KVM
可列:是(见上文)
创建:是
更新:是的

。网卡* nic_tag

此选项的NIC确定哪些主机网卡的虚拟机网卡将被
附加到。该值可以是如在“NIC中列出的NIC标签
名称”字段在`sysinfo`或etherstub或设备名称。

类型:字符串(设备名称或NIC标签名称)
vmtype:OS,KVM
可列:是的
是:创建
更新是(需要带停止/启动)

的NIC *小学。

这网卡的默认网关和名称服务器值这个选项选择
将用于这个VM。如果一个虚拟机有任何网卡,必须始终有
恰好一个主。设置一个新的主会取消设置岁。
到两个NIC设置为主要是错误的。

类型:布尔(唯一真正有效)
vmtype:OS,KVM
可列:是(见上文)
创建:是
更新:是(设定主=真一个NIC将删除标志
当前的主,并设置在新的)

的NIC *。VLAN_ID:

与该VLAN标记该网卡的流量(0 =无)。

类型:整数(0-4095)
vmtype:OS,KVM
可列:是(见上文)
创建:是
更新:是
默认值:0

。网卡* vrrp_primary_ip:

源IP将被用于传输VRRP keepalive报文
这个网卡。该IP必须在其他非之一的IP地址
在此VM备份网卡。

类型:字符串(IPv4地址)
vmtype:OS
可列:是(见上文)
创建:是
更新:是的

。网卡* vrrp_vrid:

此网卡VRRP虚拟路由器ID。这台MAC地址,
这个网卡一家立足于VRID的。

类型:整数(0-255)
vmtype:OS
可列:是(见上文)
创建:是
更新:是

nic_driver:

这指定的NIC的默认值*模型连接到NIC的
这个VM。

类型:字符串([“为Virtio”,“E1000”,“RTL8139”]之一)
vmtype:KVM
可列:无
创:是
更新:是

NOWAIT:

供应操作系统的虚拟机时,此参数被接受,并认为
提供完整的当VM第一次启动,而不是等待
虚拟机重新启动。

类型:布尔
vmtype:OS
可列:无
创:是的
更新:无
默认:假

owner_uuid:

此参数可用于定义这样的一个“老板”的UUID
VM。它提供系统本身内部没有功能性用途,但也
可以使用这个系统配合别人。

类型:字符串(UUID)
vmtype:OS,KVM
可列:是
创建:是
更新:是
默认:00000000-0000-0000-0000-000000000000

程序包:

这是专供Joyent公司的SDC产品使用的私人领域。
其他用户可以忽略这个字段。

键入:string
vmtype:OS,KVM
可列:是
创建:是
更新:是

PACKAGE_VERSION:

这是适合使用的Joyent公司的SDC产品的私人领域。
其他用户可以忽略这个字段。

键入:string
vmtype:OS,KVM
可列:是
创建:是
更新:是

PID:

对于当前正在运行的虚拟机,该字段表示的PID
为区域`init`过程。

类型:整数(PID)
vmtype:OS,KVM
可列:是
创建:无
更新:无

qemu_opts:

该参数允许指定要传递额外的参数
,以管理程序。这主要是设计用于调试
,不应该超出使用。重要的是:它取代*的*所有
列出的选项,所以你需要包括那些从默认列表
,你想保留。注:此设置也覆盖任何SPICE
你可能已设置选项。

类型:字符串(QEMU的空间分隔的选项)
vmtype:KVM
可列:无
创:是
更新:是
默认:
如果vnc_password.length = 0!
'-vnc UNIX:/tmp/vm.vnc,password -parallel无-USB -usbdevice平板-k EN-US'
其他
“-vnc UNIX:/tmp/vm.vnc -parallel无-USB -usbdevice平板-k EN-US”

qemu_extra_opts:

这允许您指定其他QEMU CMDLINE参数,这个
字符串(如果设置)将被追加到年底QEMU的CMDLINE。它是
用于调试,而不是用于一般用途。

类型:字符串(QEMU的空间分隔的选项)
vmtype:KVM
可列:无
创:是
更新:是的

配额:

此设置上的区域文件系统上的配额。对于操作系统的虚拟机,这个值是
空间实际可见/来宾使用。对于KVM虚拟机,该值是
用于容纳VM,这是不直接在区配额
对用户可用。

设置配额为0禁用(即对于没有配额)。

类型:整数(GIB数)
vmtype:OS,KVM
可列:是
创建:是
更新:是的(实时更新)

内存:

对于KVM虚拟机,这是虚拟内存,将提供给量
来宾内核。对于OS的虚拟机,这将是一样的性质
max_physical_memory。

类型:整数(MIB数)
vmtype:KVM
可列:是
创建:KVM虚拟机仅
只有KVM虚拟机,为虚拟机OS更新max_physical_memory代替:更新。
默认值:256个

解析器:

对于操作系统的虚拟机,这个值设置其中获得投入解析器
在创建VM的/etc/resolv.conf。如果maintain_resolvers设置为
true,则更新此属性也将更新解析器
/etc/resolv.conf中。对于KVM虚拟机这些都将获得通过的解析器
使用DHCP响应。

类型:数组
vmtype:OS,KVM
可列:无
创:是
更新:是

路线:

这是一个键值对象映射目的地的网关。 这些
将被设置为在VM静态路由。该目的地可以是
在CIDR形式IP地址或子网。网关可以是IP地址,或
可以是这样的形式“的NIC [0]”,它规定了该链路本地路由
在该VM的NIC阵列编号NIC(第一NIC为0)。作为
例:

{
“10.2.2.0/24”: “10.2.1.1”,
“10.3.0.1”: “NIC的[1]”
}

此设置了两个静态路由到10.2.2.0/24子网的网关
为10.2.1.1,并在虚拟机的链路本地路由到主机10.3.0.1
第二块网卡。

类型:对象
vmtype:OS
可列:无
创:是
更新:是的

快照(实验):

对于操作系统的虚拟机,这将显示您可以从该快照的列表
为你的虚拟机恢复根数据集。当前仅支持
时,你的虚拟机没有任何委托数据集。

类型:数组
vmtype:OS
可列:无
创:无(但你可以使用创建快照)
更新:没有(但你可以使用回滚的快照和删除快照)

spice_opts(实验):

这个属性允许你添加额外的-当你选择香料
使用SPICE。注:SPICE支持,需要您的KVM区使用要
与image_uuid选项区域数据集和图像必须知道
与这些特殊的选择呢。

类型:字符串(-spice XXX选项)
vmtype:KVM
可列:无
创:是
更新:是的
默认值:<未设置>

spice_password(实验):

这个属性允许你设置时,会被要求输入密码
连接到SPICE端口时, SPICE启用。注:SPICE支持
,需要您的KVM区使用具有区域根数据集是
image_uuid选项,该数据集必须知道该怎么做这些
特殊的选项。重要说明:此密码将是从GZ可见
的CN和任何人访问串口的客人。
为空字符串(缺省),不需要在这个级别的密码。

类型:字符串(8个字符最大)
vmtype:KVM
可列:没有
创建:是
更新:是
默认:<未设置>

spice_port(实验):

这指定的TCP端口上侦听的SPICE服务器。通过
SPICE默认不启用。注:SPICE支持,需要您的KVM
区使用与image_uuid选项区域根数据集是和
该数据集必须知道如何处理这些特殊的选择呢。如果设置
为零,一个端口将随机选择。设置为-1以禁用TCP
监听SPICE。

类型:整数(0为随机的,-1禁用)
vmtype:KVM
可列:没有
创建:是
更新:是
默认:<未设置>

州:

此属性显示虚拟机的当前状态。

请参阅下面的“VM STATES”部分了解更多详情。

键入:string
vmtype:OS,KVM
可列:是
创建:无
更新时间:没有

的tmpfs:

该属性指定多少虚拟机的内存将可
用于在/ tmp文件系统。这仅适用于操作系统的虚拟机,并且不会
做出KVM虚拟机任何意义。

如果设置为0,这表明你想不拥有/ tmp中安装
的所有tmpfs的。当从“0”值改变为/,该VM必须
为了重新启动,以使更改生效。

vmtype:OS
可列:是
创建:是
更新:是
默认:max_physical_memory

transition_expire:

当KVM虚拟机是在过渡运行要么“关闭”(在
停止的情况下)或者“开始”(在重启的情况下),该transition_expire
字段将被设置。该值将指示在该时间
当前事务将超时。当事务超时,
vmadmd将迫使VM进入正确状态,并取出
过渡。

类型:整数(Unix纪元时间戳)
vmtype:KVM
可列:没有
创建:无(将自动显示)
更新:无

transition_to:

当KVM VM是在过渡运行要么“关闭”(在
停止的情况下)或“开始”(在重新启动的情况下),transition_to
字段将被设置为指示该状态下VM正在转换到。
此外,当虚拟机是供应可能会看到带值
“运行”的。

类型:字符串值,之一:“停止”,“开始”,“运行”]
vmtype:OS,KVM
可列:无
创:无
更新时间:无

类型:

这是一个虚拟的领域,不能被更新。这将是'OS'当
(品牌== '的Joyent *' ||品牌== 'SNGL')和'KVM'当品牌== 'KVM'。

类型:字符串值,之一: '操作系统', 'KVM']
vmtype:OS,KVM
可列:是
建立:没有,通过'品牌'属性设置。
更新:没有

UUID:

这是虚拟机的独特IDENTIFER。如果一个人没有与传递
创建请求,新的UUID会被生成。它不能改变
在创建虚拟机后。

类型:字符串(UUID)
vmtype:OS,KVM
可列:是
创建:是
更新:无
默认:产生一个新

的vCPU:

对于KVM虚拟机这个参数定义虚拟CPU来宾数量
将看到。通常推荐为2的倍数

类型:整数(CPU数)
vmtype:KVM
可列:是
创建:KVM仅
更新:只KVM(需要重启VM生效)
默认值:1

VGA:

这个属性允许指定的VGA模拟通过使用
KVM虚拟机。默认值是“性病”。注:使用QEMU的捆绑SmartOS
QXL和xenfb不起作用。

类型:字符串(之一: '卷云', '性病', 'VMware的', 'QXL', 'xenfb')
vmtype:KVM
可列:无
创:是
更新:是
默认: 'STD'

virtio_txburst:

这控制了多少数据包可以在TX的单个齐平被发送
队列。这适用于使用连接到该虚拟机的所有的VNIC
为Virtio模型。

类型:整数
vmtype:KVM
可列:无
创:是
更新:是
默认值:128

virtio_txtimer:

这将设置定时器TX超时。它适用于所有的VNIC
使用模型的Virtio连接到该虚拟机。

类型:整数(纳秒)
vmtype:KVM
可列:无
创:是
更新:是
默认的200000

vnc_password:

这个属性允许你设置时,会被要求输入密码
连接到VNC端口。重要说明:此密码将是可见的
从CN的GZ和任何人访问串口的
客人。设置为空字符串(缺省),不需要在输入密码
这个水平。

类型:字符串(8个字符最大)
vmtype:KVM
可列:没有
创建:是
更新:是
默认:<未设置>

vnc_port:

这指定的TCP端口上侦听VNC服务器,所述
默认值是零,这意味着一个端口将是随意选择。设置为-1
以禁用TCP监听。

类型:整数(0为随机的,-1禁用)
vmtype:KVM
可列:没有
创建:是
更新:是
默认值:0

zfs_data_compression:

指定用于此虚拟机的数据集压缩算法。这个
选项只影响委托数据,因此只能让
当虚拟机已与delegate_dataset选项创建的意义。

在zfs_root_compression节中的注意事项和警告下面也
适用于这个选项。

类型:字符串之一: “开,关,gzip的,用gzip N,LZ4,LZJB,ZLE”
vmtype:OS
可列:无
创:是
更新:是的(见警告在zfs_root_compression节)
默认:关

zfs_data_recsize:

这指定的建议的块大小在授权文件
集的文件系统。当你的区有一个数据它只能设置
由delegate_dataset选项添加数据集。

对于zfs_root_recsize的警告和注意事项也适用于本
选项。你应该阅读并使用此之前了解这些。

类型:整数(以字节为单位记录的大小,512〜131072,必须是2的幂)
vmtype:OS(只与一个委托数据集)
可列:没有
创建:是
更新:是(见警告下面下zfs_root_recsize)
默认:131072( 128K)

zfs_filesystem_limit:

这指定的文件系统上一个VM可以具有的数量的限制。它是
最有用的当与delegate_dataset选项作为组合的
机制来限制可以从被创建的文件系统的数量
的区域内。在广州root用户不受此限制。

类型:整数(0+,设置为''或未定义到解除警戒)
vmtype:OS,LX
可列:没有
创建:是
更新:是
默认值:无(没有限制)

参见ZFS(1M) `filesystem_limit`的更多细节。

zfs_io_priority:

这设置IO抑制优先级相对于其它VM的值。如果一个
虚拟机有一个值X和其他VM具有值2倍,与本机
的X值将有它的一些IO节流时都尝试使用所有
可用的IO。

类型:整数(相对值)
vmtype:OS,KVM
可列:是
创建:是
更新:是的(实时更新)
默认:100

zfs_root_compression:

指定用于此虚拟机的根数据集压缩算法。这个
选项只影响zoneroot数据集。设置为“开”是等同
于设置为“LZJB”。如果您想了解具体的详细信息
的压缩类型,请参阅手册页ZFS(1M)

警告:如果您对现有的虚拟机更改此值,仅*新*数据
将被压缩。它不会重写现有的数据压缩。

注:更改此属性为KVM,查看磁盘* zfs_compression。
以上。

类型:字符串之一: “开,关,gzip的,gzip的-N,LZ4,LZJB,ZLE”
vmtype:OS
可列:没有
创建:是
更新:是(见上面的警告)
默认值:关闭

zfs_root_recsize:

指定建议的块大小在根文件系统的文件。
此属性仅仅是为了与数据库工作负载而设计的
访问固定大小的记录文件。ZFS自动调谐块大小
根据用于典型的访问模式优化的内部算法。
如果你有一个委托数据集(与delegate_dataset选项),你
应该考虑离开这个未设置和设置zfs_data_recsize
代替。

警告:只有当你知道自己在做什么使用该属性
,因为它很可能有不利影响的表现时,
设置此错误。此外,做一个更新时,请记住,
改变文件系统的recordsize仅影响创建的文件
设置被改变后; 现有文件不会受到影响。

注:更改此属性为KVM,查看磁盘* zfs_recsize以上。

类型:整数(以字节为单位记录的大小,512〜131072,必须是2的幂)
vmtype:OS
可列:没有
创建:是
更新:是(见警告上文)
默认:131072(128K)

zfs_snapshot_limit:

这规定了一个限制快照的数量虚拟机可以有。它是
最有用的当与delegate_dataset选项作为组合的
机制来限制可以从内采取的快照数
的区域。在广州root用户不受此限制。

类型:整数(0+,设置为''或未定义到解除警戒)
vmtype:OS,LX
可列:没有
创建:是
更新:是
默认值:无(没有限制)

参见ZFS(1M) `snapshot_limit`的更多细节。

zone_state:

获取一个虚拟机JSON时,此属性会显示出来。这示出了
在其中该虚拟机被包含的区域的状态。例如。 “跑步”。
可以在几个案件的“状态”值不同。

请参阅下面的“VM STATES”部分了解更多详情。

键入:string
vmtype:KVM
可列:是
创建:无
更新时间:无

区域路径:

此属性将在JSON显示代表VM。它描述了
在文件系统中,你会发现虚拟机区域数据集的路径。对于OS
虚拟机VM的所有数据将被此路径下,对KVM的虚拟机,这是在那里
你会找到的东西,如日志和插座的VM。

类型:字符串(路径)
vmtype:OS,KVM
可列:没有
创建:无(自动)
更新:无

区域名称:

此属性指示VM的区域名称。该区域名称是私有
财产,不打算直接使用。对于OS的虚拟机,你可以设置
该属性与创建的有效载荷,但这种不鼓励使用。

键入:string
vmtype:OS,KVM
可列:是
创建:是(OS虚拟机只)
更新:无
默认:UUID的值

了zoneid:

此属性将在JSON有效载荷显示出来,并可以包含在
列表输出。但它是在内部使用的一个值
的系统和存在主要是为了帮助调试。该值将改变
每当VM停止或启动。不要依赖此值。

类型:整数
vmtype:OS,KVM
可列:是
创建:无
更新时间:没有

的zpool:

这定义了ZFS池VM的区域数据集将被创建在
对于操作系统的虚拟机,这个数据集,其中区域中的所有数据将生活。
对于KVM虚拟机,这种仅由该虚拟机运行在该区域的外壳。

类型:字符串(的zpool名称)
vmtype:OS,KVM
可列:是
创建:是
更新:无
默认:区

注:SDC不支持任何池名字不是默认的“区”等。

VM STATES


该“zone_state”字段代表包含该区域的状态
的VM。区域(5)手册页有关于这些区域的一些详细信息
状态。

的“状态”字段默认为zone_state的值,但在某些情况下,
所述状态表示不被直接反映虚拟机的细节
的区域。例如,区域没有“配置”的概念,所以当
一个虚拟机置备它会经过几个zone_states但仍保留在
供应“国家”,直到它去“失败”,“停止”或
“跑步”。

通常对于zone_state你应该看到的转换是这样的:


配置

^ |
卸载| | 安装
| v

+ ------>安装<------- +
| |
| ^ | |
| 暂停| |准备|
| | v |
| |
| 准备---------- +
|
| |
| | 开机
| v
|
| 跑步
|
| |
| | 关机/重启
| v
|
| SHUTTING_DOWN
|
| |
| |
| v
|
+ ---------下来


的状态字段将具有除类似的过渡:

+ O“安装”的zone_state将是国家“停止”。

+ o如果第一预备的VM中,“配置”的状态威尔·希德
的zone_states“配置” - >“安装” - >“就绪” - >“运行”,
以及所发生作为内部的脚本的一部分的任何重新启动
该区域。

+ O从“供应”虚拟机可以进入状态“失败”从中
将无法恢复。

+ O这是可能的一个VM是在状态“接收”,而zone_state
跃迁通过几种状态。

+ O KVM虚拟机可显示状态“停止” zone_state正在运行,但在
客户机操作系统已被通知应当执行有序
关机。


本节的其余部分描述了“状态”的可能值
和用于VM对象“zone_state”字段。每个状态之后,将一个
关于是否有可能为国家,zone_state或两者,和记
简要说明这是什么意思,一个虚拟机有一个状态。

配置

可能:状态+ zone_state

这表明配置已为区域创建
一个包含虚拟机,但它没有数据。当VM首次
创建,你会看到简要本作zone_state但见状态
“配置”。虽然被销毁的VM它也转换
通过配置在这种情况下,你可能会看到它州和
zone_state。



可能:状态+ zone_state

虚拟机已关闭,但仍有一些抱着它
被完全释放入“装”状态。通常
虚拟机只能通过这种状态下简单介绍。如果虚拟机保持在状态
“下”的时间长一段时间它通常需要操作员
的干预来弥补作为该区域的某些部分是不能被
拆除。

失败了

可能适用于:状态

当规定失败(通常由于超时)虚拟机将被
作为失败,状态将是“失败”无论的标记
zone_state。这通常是通过在文件图像的错误引起的
脚本或由系统过载。当一个虚拟机有没有
规定它应该通常由运营商进行调查,以
确定原因是已知的,之前执行任何补救措施可能
破坏失效的VM,并再次供应了。

也可以对虚拟机去“失败”时,在脚本中
的图像另配时都失败了。在这种情况下,最好
的行动路线通常是有一个操作员确认的原因是
已知的,固定的故障根源后再次另配。

不完全

可能的:状态+ zone_state

如果VM是在这种状态下,则表示该区域是在
被安装或卸载过程。通常,虚拟机的过渡
,通过这种状态很快,但如果一个虚拟机停留在这种状态下的
较长一段时间内,应该由运营商进行调查。

安装

zone_state:可能

已创建VM已经和数据集已经安装完毕。
这真的表示VM似乎是健康的,但只是
没有运行,我们把这种zone_state国家“停止”,以
清楚表明它已准备好开始。

供应

可能:状态

当第一次创建一个虚拟机和自动引导是真实的,虚拟机将
有状态配置即使在zone_state提出了一些
转变。非KVM虚拟机将保持在状态“供应”,直到
在区域内的脚本已完成了他们在那里点
删除了插入之前在/ var / SVC /设置文件
首次启动区。KVM虚拟机将保持在状态“供应”
,直到“查询状态”结果从Qemu中包括“硬件设置”用
的真正价值。

准备

可能:状态+ zone_state

这表明虚拟机有安装的文件系统和设备
创建的,但它不是当前运行的进程。这种状态
通常只看到简单而过渡到运行。

接收

可能:状态

这类似于“供应”在一个VM将停留在状态
“接收”,而“vmadm中的recv”命令运行,并且
zone_state将它下面变化。A接收VM同样会
停留在状态“接收”,直到所有需要的数据集已
收到了

跑步

可能:状态+ zone_state

虚拟机具有所有必要的资源,正在执行过程中。

SHUTTING_DOWN

可能:状态+ zone_state

虚拟机被关闭。通常虚拟机只能通过这种状态下
简单介绍。如果虚拟机停留在状态“SHUTTING_DOWN”在延长
的时间内它一般需要操作者干预来补救
的区域的某些部分无法被拆除。

停止

状态:可能

当一个虚拟机有zone_state“装”,它总是有状态
“停止”。这仅仅是一个直改名。请参阅
了什么这实际上意味着细节“安装”状态。

停止

可能:状态

这是唯一的存在KVM虚拟机的状态。当我们已经发出了
通过QMP system_powerdown消息Qemu中,我们将迎来虚拟机作为
在状态“停止”,直到关机的时间了,我们
停止该区域,或VM达到zone_state“安装”。

例子


实施例1:清单KVM虚拟机的RAM 128M,由RAM下降和排序
与定制的场顺序。

vmadm中列表-o UUID,类型,RAM,配额,cpu_shares,zfs_io_priority \
-s -RAM,cpu_shares键入= KVM冲压= 128

实施例2:创建OS VM。

vmadm中创建<< EOF
{
“品牌”: “Joyent公司”,
“zfs_io_priority”:30,
配额”:20,
“image_uuid”: “47e6af92-daf0-11e0-ac11-473ca1173ab0”,
“max_physical_memory”:256,
别名”: “zone70”,
“网卡”:
{
“nic_tag”: “外部”,
“IP”: “10.2.121.70”,
子网掩码”: “255.255.0.0”,
网关”: “10.2.121.1”,
主”:真
}
]
}
EOF

实施例3:创建一个KVM VM。

vmadm中创建<< EOF
{
“品牌”: “KVM”,
的vCPU”:1,
“RAM”:256,
磁盘”:[
{
“新兵”:真实的,
“模式”: “为Virtio”,
“image_uuid”: “e173ecd7-4809-4429-af12-5d11bcc29fd8”,
“IMAGE_NAME”: “Ubuntu的10.04.2.7”,
“IMAGE_SIZE”:5120
}
],
“网卡”:
{
“nic_tag”: “外部”,
模型”: “为Virtio”,
“IP”: “10.88.88.51”,
子网掩码”: “255.255.255.0”,
网关”: “10.88.88.2”,
主”:真正
}
]
}
EOF

实施例4:获取JSON用于VM 54f1cc77-68f1-42ab-ACAC-5c4f64f5d6e0。

vmadm中获取54f1cc77-68f1-42ab-ACAC-5c4f64f5d6e0

实施例5:找到与IP 10.2.121.70的VM(第二个使用JSON
输出)

。vmadm中查找的NIC * IP = 10.2.121.70
。vmadm中查找-j的NIC * IP = 10.2.121.70

实施例6:寻找的所有虚拟机128M用与“一”或开始一个别名
“b”,然后再使用JSON输出。

vmadm中查找冲压= 128别名=〜^ [AB]
vmadm中查找-j冲压= 128别名=〜^ [AB]

实施例7:设置配额到40G为VM 54f1cc77-68f1-42ab-ACAC-5c4f64f5d6e0

vmadm中更新54f1cc77-68f1 -42ab-ACAC-5c4f64f5d6e0限额= 40

实施例8:将cpu_shares至100 VM 54f1cc77-68f1-42ab-ACAC-5c4f64f5d6e0

回声'{ “cpu_shares”:100}' | \
vmadm中更新54f1cc77-68f1-42ab-ACAC-5c4f64f5d6e0

实施例9:一个NIC添加到VM 54f1cc77-68f1-42ab-ACAC-5c4f64f5d6e0

vmadm中更新54f1cc77-68f1-42ab-ACAC-5c4f64f5d6e0 << EOF
{
“add_nics”:
{
“接口”: “NET1”,
“nic_tag”: “外部”,
“MAC”: “B2:1E:BA:A5:6E:71”,
“IP”: “10.2.121.71”,
子网掩码”:“255.255 .0.0" ,
“网关”: “10.2.121.1”
}
]
}
EOF

实施例10:改变NIC的IP与MAC B2:1E:BA:A5:6E:71为VM
与UUID 54f1cc77-68f1-42ab-ACAC-5c4f64f5d6e0。

vmadm中更新54f1cc77-68f1-42ab-ACAC-5c4f64f5d6e0 << EOF
{
“update_nics”:
{
“陆委会”: “B2:1E:BA:A5:6E:71”,
“IP”: “10.2.121.72”
}
]
}
EOF

实施例11:从VM与UUID 71:用MAC B2卸下NIC:1E:BA:A5:6E
54f1cc77-68f1-42ab-ACAC-5c4f64f5d6e0。

回声'{ “remove_nics”:[ “B2:1E:BA:A5:6E:71”]}' | \
vmadm中更新54f1cc77-68f1-42ab-ACAC-5c4f64f5d6e0

实施例12:停止VM 54f1cc77-68f1-42ab-ACAC-5c4f64f5d6e0

vmadm中停止54f1cc77-68f1-42ab-ACAC-5c4f64f5d6e0

实施例13:启动VM 54f1cc77-68f1-42ab-ACAC-5c4f64f5d6e0

vmadm中开始54f1cc77-68f1-42ab-ACAC-5c4f64f5d6e0

实施例14:重启VM 54f1cc77-68f1-42ab-ACAC-5c4f64f5d6e0

vmadm中重启54f1cc77-68f1-42ab-ACAC-5c4f64f5d6e0

实施例15:删除VM 54f1cc77-68f1-42ab-ACAC-5c4f64f5d6e0

vmadm中删除54f1cc77-68f1-42ab-ACAC-5c4f64f5d6e0

退出状态


以下退出值被返回:


0
成功完成。

1
发生错误

2
无效使用。


也可以看看


vmadmd(1M) zonecfg挂载(1M) 使用zoneadm(1M) 区域(5)

笔记


一些vmadm中的命令取决于vmadmd(1M)服务:


SVC /系统/ smartdc / vmadmd:默认


如果vmadmd服务被停止,而vmadm中实用程序正在运行,则
vmadm命令弹的行为将是不确定的。此外,如果该服务
没有运行,某些命令将不可用。


2015年12月vmadm中(1M)
 

create