vRO Extend VirtualDisk Workflow

博客链接指向vRealize Orchestrator扩展虚拟磁盘工作流相关内容,涉及信息技术领域,可能与服务器操作等有关。

https://vbombarded.wordpress.com/2015/02/20/vrealize-orchestrator-extend-virtual-disk-workflow/

var devices = vm.config.hardware.device;
System.log(devices)

for (i in devices){
    if (devices[i].deviceInfo.label == diskString){
        var disk = devices[i]
        System.log("Disk = " + disk.deviceInfo.label)
    }
}

var newSizeKB = disk.capacityInKB + (increaseSizeGB * 1024 * 1024)
System.log("New Size KB = " + newSizeKB)

var spec = new VcVirtualMachineConfigSpec();
spec.changeVersion = vm.config.changeVersion;
spec.deviceChange = System.getModule("com.vmware.onyx").array(VcVirtualDeviceConfigSpec, 1);
spec.deviceChange[0] = new VcVirtualDeviceConfigSpec();
spec.deviceChange[0].operation = VcVirtualDeviceConfigSpecOperation.edit;
spec.deviceChange[0].device = new VcVirtualDisk();
spec.deviceChange[0].device.key = disk.key;
spec.deviceChange[0].device.deviceInfo = new VcDescription();
spec.deviceChange[0].device.deviceInfo.label = disk.deviceInfo.label;
spec.deviceChange[0].device.deviceInfo.summary = disk.deviceInfo.summary;
spec.deviceChange[0].device.backing = new VcVirtualDiskFlatVer2BackingInfo();
spec.deviceChange[0].device.backing.fileName = disk.backing.fileName;
spec.deviceChange[0].device.backing.diskMode = disk.backing.diskMode;
spec.deviceChange[0].device.backing.split = disk.backing.split;
spec.deviceChange[0].device.backing.writeThrough = disk.backing.writeThrough;
spec.deviceChange[0].device.backing.thinProvisioned = disk.backing.thinProvisioned;
spec.deviceChange[0].device.backing.uuid = disk.backing.uuid;
spec.deviceChange[0].device.backing.contentId = disk.backing.contentId;
spec.deviceChange[0].device.backing.digestEnabled = disk.backing.digestEnabled;
spec.deviceChange[0].device.controllerKey = disk.controllerKey;
spec.deviceChange[0].device.unitNumber = disk.unitNumber;
spec.deviceChange[0].device.capacityInKB = newSizeKB;
spec.deviceChange[0].device.shares = new VcSharesInfo();
spec.deviceChange[0].device.shares.shares = disk.shares.shares;
spec.deviceChange[0].device.shares.level = disk.shares.level;
spec.deviceChange[0].device.storageIOAllocation = new VcStorageIOAllocationInfo();
spec.deviceChange[0].device.storageIOAllocation.limit = disk.storageIOAllocation.limit;
spec.deviceChange[0].device.storageIOAllocation.shares = new VcSharesInfo();
spec.deviceChange[0].device.storageIOAllocation.shares.shares = disk.storageIOAllocation.shares.shares;
spec.deviceChange[0].device.storageIOAllocation.shares.level = disk.storageIOAllocation.shares.level;

return vm.reconfigVM_Task(spec);
06-29
Avro 是一种用于数据序列化的开源框架,广泛应用于大数据生态系统中。它由 Apache 开发,旨在提供紧凑、快速且支持模式演化的数据格式。Avro 的核心特性是其使用 JSON 格式定义数据结构(即 Schema),并在实际数据存储或传输时采用二进制编码方式,从而在保证数据可读性的同时提升效率[^1]。 Avro 的一个显著特点是其强类型和模式驱动的设计。每个 Avro 文件都必须关联一个 Schema,该 Schema 定义了数据的结构和字段类型。例如,以下是一个表示用户信息的 Avro Schema: ```json { "namespace": "me.adnansiddiqi", "type": "record", "name": "User", "fields": [ {"name": "name", "type": "string"}, {"name": "age", "type": ["int", "null"]}, {"name": "gender", "type": ["string", "null"]} ] } ``` 上述 Schema 描述了一个名为 `User` 的记录类型,包含三个字段:`name`(字符串类型)、`age`(整数或空值)和 `gender`(字符串或空值)。这种设计确保了数据的一致性和兼容性,尤其适用于跨系统数据交换场景[^1]。 Avro 被广泛用于 Hadoop 生态系统中的多个组件,如 Kafka、Hive 和 Spark,以支持高效的数据持久化与通信。其紧凑的二进制格式减少了网络带宽和存储开销,同时其对模式演化(Schema Evolution)的支持使得新旧版本数据能够共存,增强了系统的灵活性和可维护性。 此外,Avro 还支持远程过程调用(RPC),可用于构建分布式系统之间的通信协议。其内置的元数据机制允许客户端和服务端在运行时动态解析数据结构,无需预先共享代码或配置文件。 ### 主要用途 - **数据存储与交换**:Avro 常用于大数据平台之间的数据交换,特别是在需要保留结构信息的场景中。 - **日志系统**:由于其高效的序列化性能和良好的压缩比,Avro 适合用于日志收集和处理系统。 - **流处理**:在 Kafka 等流式处理框架中,Avro 常作为消息格式使用,便于结合 Schema Registry 实现数据一致性管理。 - **ETL 工具集成**:许多 ETL 工具(如 Sqoop、Flume)支持 Avro 格式,用于结构化数据导入导出操作。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值