vRO 添加已有磁盘到VM
在vRO实现将已有虚拟机磁盘添加到另外的虚拟机上,以为vRA发布Oracle/SQL集群做准备:
// 脚本需要两个输入 vm_obj和diskPath
System.log("Attempting to attach " + diskPath + " to " + vcVM.name);
// Max number of vmdks attached to a single scsi controller
var MAX_NUMBER_ATTACHED_VMDKS = ; var devices = vcVm.config.hardware.device;
var diskFilePath = diskPath; // sample: [sharedata]abc/abc_1.vmdk
var controllerKey;
var unitNumber;
var usedUnitNumbers = [];
for each (controller in devices) {
var isScsi = controller instanceof VcVirtualBusLogicController || controller instanceof VcVirtualLsiLogicController
|| controller instanceof VcParaVirtualSCSIController || controller instanceof VcVirtualLsiLogicSASController;
if (!isScsi) {
continue;
} System.log("SCSI controller found: " + controller.deviceInfo.label);
for each (device in devices) {
if (device.controllerKey == controller.key) {
System.log("Device found: '" + device.deviceInfo.label + "' 'SCSI (" + controller.busNumber + ":" + device.unitNumber + ")'");
controllerKey = controller.key;
usedUnitNumbers.push(device.unitNumber);
}
}
break;
} if (usedUnitNumbers.length >= MAX_NUMBER_ATTACHED_VMDKS) {
throw "SCSI controller is full, the VMDK can not be attached!";
} var backing = new VcVirtualDiskFlatVer2BackingInfo();
backing.fileName = diskFilePath;
backing.diskMode = VcVirtualDiskMode.persistent; var connectable = new VcVirtualDeviceConnectInfo();
connectable.startConnected = true;
connectable.allowGuestControl = false;
connectable.connected = true; // Find the first available SCSI id
for (i = ; i < MAX_NUMBER_ATTACHED_VMDKS; i++) {
if (usedUnitNumbers.indexOf(i) == -) {
unitNumber = i;
System.log("Found available SCSI unit numebr '" + unitNumber + "'");
break;
}
} var device = new VcVirtualDisk();
device.backing = backing;
device.connectable = connectable;
device.controllerKey = controllerKey;
device.unitNumber = unitNumber; var deviceChange = new VcVirtualDeviceConfigSpec();
deviceChange.operation = VcVirtualDeviceConfigSpecOperation.add;
deviceChange.device = device;
var deviceChangeArray = [deviceChange]; var spec = new VcVirtualMachineConfigSpec();
spec.deviceChange = deviceChangeArray; var task = vcVm.reconfigVM_Task(spec);
System.log("Initiating reconfigure...");
System.getModule("com.vmware.library.vc.basic").vim3WaitTaskEnd(task,true,);
System.log("Reconfigure of VM '" + vcVm.name + "' successful.");
vRO 添加已有磁盘到VM的更多相关文章
- 分布式监控系统Zabbix3.2添加自动发现磁盘IO并注册监控
zabbix并没有给我们提供这么一个模板来完成在Linux中磁盘IO的监控,所以我们需要自己来创建一个,在此还是在Linux OS中添加. 由于一台服务器中磁盘众多,如果只一两台可以手动添加,但服务 ...
- Azure上采用Json Template从已有的VHD创建VM
从已有的VHD创建VM是使用Azure中经常要操作的内容. 本文将介绍如何采用Json Template从已经有的VHD创建VM. 一.准备VHD 在我的Azure账户中选择一台VM,如下图: 查看其 ...
- IIS:错误: 无法提交配置更改,因为文件已在磁盘上更改
文件名: \\?\C:\Windows\system32\inetsrv\config\applicationHost.config 错误: 无法提交配置更改,因为文件已在磁盘上更改 通过 Micro ...
- (转)淘淘商城系列——VMware添加已配置好的虚拟机
http://blog.csdn.net/yerenyuan_pku/article/details/72802323 我们有时候会碰到虚拟机环境搭建特别麻烦,很容易出错的问题,而这时我们又刚好有别人 ...
- 图解微信小程序---添加tabBar底部菜单,添加已做好轮播图操作
图解微信小程序---添加tabBar底部菜单,添加已做好轮播图操作 什么是tabBar? 顶部或者底部tab栏如果小程序是一个多 tab 应用(客户端窗口的底部或顶部有 tab 栏可以切换页面),可以 ...
- 自定义配置文件读取产生的“无法添加已属于该配置的 ConfigurationSection”异常解决办法
最近在编写一个读写自定义配置文件的功能时遇到一个问题,在初始化的时候读入配置显示出来,修改后把配置回存到配置文件,在回存的时候,先移除配置节,再添加,在添加的时候遇到如下的异常: {"无法添 ...
- 给KVM添加新的磁盘
给KVM添加新的磁盘 两种方案 1 添加虚拟磁盘文件 2 添加物理磁盘 硬件配置: 物理主机(宿主机):foundation 物理主机磁盘情况: 我们有三块物理磁盘,sda.sdb和sdc(这里都是S ...
- oracle 11gR2 ASM添加和删除磁盘
一.环境 oracle 11gR2 RAC + Oracle Linux Server release 5.9 二.实施 备注:安全起见,操作之前停数据库实例.ASM实例 1.节点1.2磁盘信息 -- ...
- Android 调用系统联系人界面的添加联系人,添加已有联系人,编辑和修改。
一.添加联系人 Intent addIntent = new Intent(Intent.ACTION_INSERT,Uri.withAppendedPath(Uri.parse("cont ...
随机推荐
- WCF服务寄宿IIS与Windows服务
WCF是Windows平台下程序间通讯的应用程序框架.整合和 .net Remoting,WebService,Socket的机制,是用来开发windows平台上分布式开发的最佳选择.wcf程序的 ...
- C++11写算法之选择排序
选择排序,顾名思义,指从数组后面将最小的值找出来,然后与最前面(指当前位置)值进行交换. 时间复杂度:O(n^2) 空间复杂度:O(1) 此处应用了C++11的auto , lambda , stat ...
- Python简单的线程池
class ThreadPool(object): def __init__(self, max_num=20): # 创建一个队列,队列里最多只能有10个数据 self.queue = queue. ...
- 【BZOJ3526】[Poi2014]Card 线段树
[BZOJ3526][Poi2014]Card Description 有n张卡片在桌上一字排开,每张卡片上有两个数,第i张卡片上,正面的数为a[i],反面的数为b[i].现在,有m个熊孩子来破坏你的 ...
- 【BZOJ3122】[Sdoi2013]随机数生成器 BSGS+exgcd+特判
[BZOJ3122][Sdoi2013]随机数生成器 Description Input 输入含有多组数据,第一行一个正整数T,表示这个测试点内的数据组数. 接下来T行,每行有五个整数p,a,b, ...
- 《从零开始学Swift》学习笔记(Day 45)——重写方法
原创文章,欢迎转载.转载请注明:关东升的博客 重写实例方法 在子类中重写从父类继承来的实例方法和静态方法.先介绍实例方法的重写. 下面看一个示例: class Person { var name: S ...
- Xamarin.Forms学习之Platform-specific API和文件操作
这篇文章的分享原由是由于上篇关于Properties的保存不了,调用SavePropertiesAsync()方法也不行,所以我希望通过操作文件的方式保存我的需要的数据,然后我看了一下电子书中的第二十 ...
- 巨蟒python全栈开发django3:url&&视图
1.url正则匹配分组和命名分组 2.路由分发 3.url别名和反向解析 4.httprequest和httpresponse的使用 内容回顾: .jinja2(flask框架,没有内置模板对象,需要 ...
- <2013 08 13> TeX and LaTeX, some introduction
1. TeX是Donald E. Knuth教授的精心杰作,它是个功能非常强大的幕后排版系统,含有弹性很大,而且很低阶的排版语言.含有九百多条指令,用Pascal语言(的一个子集)写成. 2. T ...
- log日志框架和LocationAwareLogger问题
遇到了同样的问题, 我的解决办法是在pom.xml中增加如下配置,去除对于jcl-over-slf4j.jar的依赖. <exclusions> <ex ...