smartOS如何创建HVM区

如何创建HVM区

SmartOS具有两个不同的虚拟机监视器:KVM和 Bhyve,统称为HVM

1.编写json文件,主要描述KVM虚机的配置!

创建json文件
cd /opt/
vim testvkm.json

{
  "brand": "kvm",   // 虚机类型   kvm,bhyve
  "vcpus": 1,       // cpu核数         
  "autoboot": false,      // 自动启动
  "ram": 1024,             // 分配内存
  "resolvers": ["208.67.222.222", "208.67.220.220"],   // DNS
  "disks": [        // 硬盘,存储
    {
      "boot": true,
      "model": "virtio",
      "size": 40960     // 硬盘大小
    }
  ],
  "nics": [             //网络
    {
      "nic_tag": "admin",  // 名称
      "model": "virtio",
      "ip": "10.88.88.51",
      "netmask": "255.255.255.0",
      "gateway": "10.88.88.1",
      "primary": 1
    }
  ]
}

2.创建Hvm

vmadm create -f testvkm.json

3. 查询所有的HVM列表

vmadm list

4.找到创建的HVM对应的文件目录,将IOS文件导入到对应目录

查找vm对应文件系统的位置

zfs list

进入zone内部

cd /zones/b8ab5fc1-8576-45ef-bb51-9826b52a4651/root/

设置boot启动对应ios文件

vmadm boot b8ab5fc1-8576-45ef-bb51-9826b52a4651 order=cd,once=d cdrom=/debian.iso,ide

5.使用VNC连接到创建的虚拟机

$ vmadm info b8ab5fc1-8576-45ef-bb51-9826b52a4651 vnc
{
  "vnc": {
    "display": 39565,
    "port": 45465,
    "host": "10.99.99.7"
  }
}

6.vmadm常用操作

1.vmadm 查询操作

使用-o改变输出字段或-s更改排序键(-s -ram表示降序,不加-代表升序)
[root@headnode (bh1-kvm1:0) ~]# vmadm list -o uuid,type,ram,quota,cpu_shares,zfs_io_priority -s -ram

过滤虚拟机(type=OS(类型为OS的) ram=~^1(过滤规则))
[root@headnode (bh1-kvm1:0) ~]# vmadm list -o uuid,type,ram,quota,cpu_shares,zfs_io_priority -s -ram,cpu_shares type=OS ram=~^1

使用-p分割字段(:),nics.0.ip表示获取第一个NIC的ip地址

[root@headnode (bh1-kvm1:0) ~]# vmadm list -p -o uuid,nics.0.ip
ad170576-3ad3-e201-cd89-ad4260c3a3ce:10.0.0.1

2.获取实例属性

vmadm get 54f1cc77-68f1-42ab-acac-5c4f64

使用lookup命令(查询别名为*zone7*的虚机)

[root@headnode (bh1-kvm1:0) ~]# vmadm lookup alias=~zone7
54f1cc77-68f1-42ab-acac-5c4f64f5d6e0

// 通过-j选项不需要知道ID直接查看json文件
[root@headnode (bh1-kvm1:0) ~]# vmadm lookup -j alias=~zone7

// 合并过滤器  以'a'或'b'开头的别名查找所有128M实例
[root@headnode (bh1-kvm1:0) ~]# vmadm lookup ram=128 alias=~^[ab]
5c12a3ef-e60c-479a-a6be-ba93712a3893
29bdabe1-ff9e-4387-9316-39961d5dbe5c
20de2bfc-56de-4cd9-8e25-80b017615788

3.修改实例

// 直接修改
[root@headnode (bh1-kvm1:0) ~]# vmadm update 54f1cc77-68f1-42ab-acac-5c4f64f5d6e0 quota=40

//使用JSON输入进行更新
[root@headnode (bh1-kvm1:0) ~]# echo '{"cpu_shares": 100}' | vmadm update 54f1cc77-68f1-42ab-acac-5c4f64f5d6e0

其他修改

某些字段(例如nics和磁盘)无法直接更新。数组字段通常是这种情况。他们需要指定一个操作。
修改网卡add_nics,remove_nics

添加网卡

[root@headnode (bh1-kvm1:0) ~]# cat add_nic.json
{
    "add_nics": [
        {
            "physical": "net1",
            "index": 1,
            "nic_tag": "external",
            "mac": "b2:1e:ba:a5:6e:71",
            "ip": "10.2.121.71",
            "netmask": "255.255.0.0",
            "gateway": "10.2.121.1"
        }
    ]
}
[root@headnode (bh1-kvm1:0) ~]# cat add_nic.json | vmadm update 54f1cc77-68f1-42ab-acac-5c4f64f5d6e0
Successfully updated 54f1cc77-68f1-42ab-acac-5c4f64f5d6e0

本示例用于update_nics修改nic的IP。NIC由标识mac

[root@headnode (bh1-kvm1:0) ~]# cat update_nic.json
{
    "update_nics": [
        {
            "mac": "b2:1e:ba:a5:6e:71",
            "ip": "10.2.121.72"
        }
    ]
}
[root@headnode (bh1-kvm1:0) ~]# cat update_nic.json | vmadm update 54f1cc77-68f1-42ab-acac-5c4f64f5d6e0
Successfully updated 54f1cc77-68f1-42ab-acac-5c4f64f5d6e0

删除vm的网络

[root@headnode (bh1-kvm1:0) ~]# echo '{"remove_nics": ["b2:1e:ba:a5:6e:71"]}' | vmadm update 54f1cc77-68f1-42ab-acac-5c4f64f5d6e0
Successfully updated 54f1cc77-68f1-42ab-acac-5c4f64f5d6e0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值