设为首页 收藏本站
查看: 2455|回复: 0

[经验分享] How to create a Virtual Machine in SmartOS

[复制链接]

尚未签到

发表于 2017-6-26 07:32:16 | 显示全部楼层 |阅读模式
  在SmartOS中,使用vmadm创建工具创建虚拟机。 此工具需要一个JSON有效负载,并使用输入JSON中指定的属性创建“kvm”或“joyent” brand zone。 正常输出是一系列单行JSON对象,其类型设置为以下之一:
  成功
   失败
  更新
   注意
  每个对象至少具有“类型”和“消息”字段。 “成功”或“失败”类型的消息将跟随退出状态0表示成功的进程,所有其他退出指示失败。
  vmadm create -f <filename.json>
Getting Started

  你会需要
     SmartOS的最新版本,可从http://download.joyent.com(此处的发布详情)
     您的操作系统的ISO选择
     VNC客户端
The Machine JSON Description
  将下面的代码片段保存到一个名为“vmspec.json”的文件中。 您可以根据需要更改网络和其他变量。 这并不是所有选项的详尽列表。 对于所有选项,请参阅vmadm(1m)。 (size列在MiB中)


{
  "brand": "kvm",
  "vcpus": 1,
  "autoboot": false,
  "ram": 1024,
  "resolvers": ["208.67.222.222", "208.67.220.220"],
  "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
    }
  ]
}
对于2011年12月15日之前的版本,您需要在根目录中添加default_gateway属性:


"default_gateway": "10.88.88.1",
这必须与nics之一的网关相匹配,以便默认网关和解析器将通过VM中的DHCP进行设置。
当安装不支持virtio支持的操作系统,而不是在磁盘上使用virtio使用ide和e1000作为网络模型。
Create the Empty Virtual Machine
  使用创建机器工具创建空虚拟机。 请注意,虚拟机将不会运行。
  $ vmadm create
  注意UUID在最后一步。 该UUID是虚拟机的ID,将用于在其生命周期的其余部分引用它。


$ vmadm create < vmspec.json

{"percent":1,"type":"update","message":"checking and applying defaults to payload"}
{"percent":2,"type":"update","message":"checking required datasets"}
{"percent":28,"type":"update","message":"we have all necessary datasets"}
{"percent":29,"type":"update","message":"creating volumes"}
{"percent":51,"type":"update","message":"creating zone container"}
{"percent":94,"type":"update","message":"storing zone metadata"}
{"uuid":"b8ab5fc1-8576-45ef-bb51-9826b52a4651","type":"success","message":"created VM"}
Copy your OS ISO to the zone


$ cd /zones/b8ab5fc1-8576-45ef-bb51-9826b52a4651/root/
$ wget http://mirrors.debian.com/path_to_an_iso/debian.iso
Ensure permissions are correct on the ISO


$ chown root debian.iso
$ chmod u+r debian.iso
Boot the VM from the ISO Image(从ISO映像启动虚拟机)
  vmadm是虚拟机管理工具。 它用于在虚拟机已存在之后管理虚拟机的生命周期。 我们将引导我们刚刚创建的虚拟机,但是在第一次出现之时,请告诉它启动ISO映像。


vmadm boot b8ab5fc1-8576-45ef-bb51-9826b52a4651 order=cd,once=d cdrom=/debian.iso,ide
请注意,ISO映像的路径将是ISO到您所在zone的相对路径,这就是为什么以“/”开头
Use VNC to Connect to the VM
  vmadm工具可以打印出VM上的信息。 您还可以附加一个部分进行特定打印。


$ vmadm info b8ab5fc1-8576-45ef-bb51-9826b52a4651 vnc

{
  "vnc": {
    "display": 39565,
    "port": 45465,
    "host": "10.99.99.7"
  }
}
您的虚拟机正在运行。 您可以关闭虚拟机,它仍然保留在磁盘上。 要了解有关管理虚拟机生命周期的更多信息,请运行vmadm --help。
Troubleshooting(故障排除)
Zone Networking Issues
  如果您将SmartOS作为guest虚拟机运行,则可能会与您的zone有联网问题。 为了解决这个问题,我们需要创建一个桥梁。
如果您查看https://github.com/joyent/smartos-overlay/blob/master/lib/svc/method/net-physical#L179您可以看到该脚本将为vmare产品创建桥梁,但如果您是 使用VirtualBox或Parallells,那么您需要手动执行。


$ ifconfig -a
e1000g0: flags=1100943<UP,BROADCAST,RUNNING,PROMISC,MULTICAST,ROUTER,IPv4> mtu 1500 index 2
        inet 10.216.214.7 netmask ffffff00 broadcast 10.216.214.255
        ether 8:0:27:e1:35:cb

$ dladm create-bridge -l e1000g0 vboxbr
您的区域现在应该能够访问网络。 您不需要更改任何zone的nic_tag,将它们保留为“admin”或“external”。

有一种方法可以在启动时将其添加到/ opt / custom / smf中的smf脚本。 这是一个很好的写作,告诉你它是如何做的。 http://www.psychicfriends.net/blog/archives/2012/03/21/smartosorg_run_things_at_boot.html#003979
Further Reading
  Those versed in JavaScript can learn a lot more by reading the vmadm.js source.

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-388127-1-1.html 上篇帖子: 利用主机端口转发实现对QEMU虚拟机的访问 下篇帖子: OpenStack 通用设计思路
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表