如何创建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将文件导入相应的目录
zfs list
cd /zones/b8ab5fc1-8576-45ef-bb51-9826b52a4651/root/
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 查询操作
[root@headnode (bh1-kvm1:0) ~]# vmadm list -o uuid,type,ram,quota,cpu_shares,zfs_io_priority -s -ram
[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
[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
[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搜索所有128开头的别名M实例 [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
[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
[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