PowerVM:IBM Power体系下的虚拟机技术,主要使用微分区和共享处理器池技术实现Power机器/集群的利用率提高。与PowerVM对应的还有Z/VM,目前PowerVM只能提供AIX,i,RedHat Linux的虚拟化?不支持Windows。
IBM® Systems Director:IBM的一个系统管理软件,集成了很多系统管理工具,包括: 发现管理器 , 状态管理器, 配置管理器 , 自动化管理器 , 更新管理器 , 远程访问管理器 , 平台管理器 等等组件。 在Systems Director上层还有一个更强的管理平台Tivoli。严格来说,Systems Director与虚拟化没什么关系,但是IBM在它上面开发了一个Systems Director VMControl 组件,使它能够发现和管理虚拟机了。
IBM CFS(Cloud Foundation Stack): IBM 基础架构云计算平台,IBM 为了发展在云计算领域统一江湖的雄心(野心),开发的一套基于web的API接口,也有一些简单的管理界面。号称可以管理各种虚拟化技术,包括VMware,Xen,KVM,和IBM自身的虚拟化技术的统一管理平台。而且向上提供跟丰富的管理功能和界面,比如:计费,消息,审批流程等等。
不过目前的版本还是存在不少BUG,比如中文支持不好等
CFS开发风格为REST风格,调用函数都是一些WEB服务,返回类型大多数为json字符串。
打开esclipse,将Session项目程序导入,就可以开发测试用例:
程序用例1 :
获得用户列表:
private String getUsers() {
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet("http://localhost:8080/api/users"); //$NON-NLS-1$
request.addHeader("Authorization", "Basic" + this.cfsAuthToken); //$NON-NLS-1$//$NON-NLS-2$
try {
HttpResponse resp = client.execute(request);
int rc = resp.getStatusLine().getStatusCode();
if (rc == 200) {
HttpEntity entity = resp.getEntity();
if (entity != null) {
return EntityUtils.toString(entity);
}
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
程序用例2:
// 增加用户
private boolean regUser(String username, String password) {
HttpClient client = new DefaultHttpClient();
HttpPost request = new HttpPost("http://localhost:8080/api/users"); //$NON-NLS-1$
request.addHeader("Content-Type", "application/json"); //$NON-NLS-1$//$NON-NLS-2$
//request.addHeader("Content-Type", "text/html");
request.addHeader("Authorization", "Basic" + this.cfsAuthToken); //$NON-NLS-1$//$NON-NLS-2$
request.setEntity(new EntityTemplate(
new MyContentProducer(
"{\"username\":\"" + username + "\",\"password\":\"" + password + "\",\"isAdmin\":true,\"email\":\"[email protected]\",\"name\":\"Englishname is Zhouxj\",\"timezone\": {\"id\":\"America/Chicago\"},\"locale\": {\"id\":\"en-US\"}}"))); //$NON-NLS-1$
try {
HttpResponse resp = client.execute(request);
int rc = resp.getStatusLine().getStatusCode();
if (rc == 200 || rc == 201) {
HttpEntity entity = resp.getEntity();
if (entity != null) {
System.out
.println("return:" + EntityUtils.toString(entity));
}
return true;
} else {
System.err.println("Errorcreate username ."); //$NON-NLS-1$
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return false;
}