文档首页> > 开发指南> Java> EVS Java SDK示例

EVS Java SDK示例

更新时间: 2018-11-26 14:28

云硬盘(EVS)是基于分布式架构而设计的可扩展虚拟块存储设备。可以在线创建云硬盘并将其挂载到ECS上。云硬盘的使用方式与物理服务器上硬盘的使用方式一样。与传统硬盘相比,云硬盘具有更高的数据可靠性和I/O吞吐能力,并且使用起来更加方便。云硬盘适用于文件系统、数据库以及需要块存储设备的系统软件和应用。

创建卷

您可以根据以下代码,使用OpenStack4j创建一个卷。只有在该卷处于available状态时,才可以将其挂载到ECS上。

Volume volume = os.blockStorage().volumes() 
.create(Builders.volume().size(120).name("openstack4j-volume").build()); 
// wait until volume status available 
int createVolumeCount = 1; 
boolean createVolumeFlag = false; 
while (createVolumeCount < 120) { 
if (os.blockStorage().volumes().get(volume.getId()).getStatus().toString().equals("available")) { 
System.out.println("volume Created successfully"); 
createVolumeFlag = true; 
break; 
} 
Thread.sleep(1000); 
createVolumeCount++; 
} 
if (!createVolumeFlag) { 
System.out.println("Volume created failure"); 
}

向ECS挂载卷

您可以根据以下代码,使用OpenStack4j向ECS挂载卷。当卷处于in-use状态时,说明挂载成功。

//after volume is available, attach to server 
VolumeAttachment attachResult = os.compute().servers().attachVolume(server.getId(), volume.getId(), 
"/dev/xvdb"); 
//adjust if attached successfully 
int i = 1; 
boolean attachStatus = false; 
while (i < 10) { 
if (os.blockStorage().volumes().get(volume.getId()).getStatus().toString().equals("in-use")) { 
attachStatus = true; 
System.out.println("volume attached successfully to " + os.compute().servers().get(server.getId()).getName()); 
break; 
} 
Thread.sleep(1000); 
i++; 
} 
if (!attachStatus) { 
System.out.println("attach failed"); 
}

从ECS卸载卷

您可以根据以下代码,将卷从ECS上卸载。卸载操作需要一定的时间,并且只有当卷被卸载后,才可以将其删除。

ActionResponse detachResult = os.compute().servers().detachVolume(server.getId(), attachResult.getId()); 
System.out.println(detachResult); 
assertTrue(detachResult.isSuccess()); 
int detachCount = 1; 
boolean detachStatus = false; 
while (detachCount < 60) { 
if (os.blockStorage().volumes().get(volume.getId()).getStatus().toString().equals("available")) { 
detachStatus = true; 
System.out.println("volume detached successfully to " ); 
break; 
} 
Thread.sleep(1000); 
detachCount++; 
} 
if (!detachStatus) { 
System.out.println("detach failed"); 
}

删除卷

您可以根据以下代码,使用OpenStack4j删除卷。

//after detached. delete the volume 
ActionResponse deletVolumeResult = os.blockStorage().volumes().delete(volume.getId()); 
System.out.println("Delete volume result" + deletVolumeResult);

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

在文档使用中是否遇到以下问题







请至少选择或填写一项反馈信息

字符长度不能超过100

反馈内容不能为空!

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区
点我,12·12惊喜等着你哦~