scvmm sdk之ddtkh(二)

ddtkh,dynamic datacenter toolkit for hosters,原先发布在codeplex开源社区,后来被微软归档到开发者社区中,从本质上来说它是一个企业级应用的套件,集成了微软的scvmm、scom、dpm和sms这几款windows平台应用,经过进一步的封装,通过wcf的方式提供这些应用的api接口。

现在社区提供了3.0和3.1两中版本,3.0之后各个应用的封装开发包独立出来了。比如有人需要2012的scvmm开发包,可以下载3.1的,不支持scvmm2008。

这里我们介绍3.0的scvmm2008的版本。首先我们看一下sample的解决方案。

我们看一下hosts目录下的寄宿服务

ConfigurationService为Systems Management Server服务,这款应用包含软件管理,资产管理和故障处理等工具包,它有一种wql查询语言,类似sql,可以通过这种语言调用wmi来获取和监视计算机的运行状况,wmi叫windows管理规范,是windows操作系统的重要组件。

dpm为Microsoft Data Protection Manager提供服务,顾名思义,是用来管理存储的,可以提供基于磁盘备份解决方案。随着2012版本的发布,功能也不断完善,随着虚拟化技术的不断发展,对备份需求也不断提高,这款产品也值得研究一下。

monitor是Microsoft System Center Operations Manager,它可以为操作系统性能进行综合的分析,作为推广者可以根据监控数据进行多方位的评估,合理安排资源,而客户可以利用它来监控自己的系统环境运行状况,根据自身需要申请调整资源。

virtualmachinemanagement就是scvmm了,是基于微软基于hyperv的界面化管理应用。

我们主要介绍scvmm的部分,部分工程已unload。

在services目录下面,我们需要这几个上图几个已加载的工程即可。

FaultContracts:错误异常的代理类。

Management:调用wmi组件的封装包。

DataContract:scvmm的代理类。

ServiceContracts:wcf接口定义。

ServiceImplementation:接口实现,关键工程,这下面是powershell的封装包。

在VirtualMachineManagementService.cs连接scvmm的一段代码,原先配置信息是放在宿主服务的config文件里,我这里已有改动,具体请看sample。(我这里强制使用了session模式,保持了登录状态,避免每次调用wcf重新连接。)

 1 public bool Connect(string serverName, int serverPort, string userName, string password)
 2 {
 3     this.serverName = serverName;
 4     this.serverPort = serverPort;
 5     this.userName = userName;
 6     this.password = password;
 7
 8     try
 9     {
10         SecureCredential auditUserCredentialObject = new SecureCredential(userName, GetSecurePassword(password));
11         NTAccount account = new NTAccount(auditUserCredentialObject.Account);
12         SecurityIdentifier identifier = (SecurityIdentifier)account.Translate(typeof(SecurityIdentifier));
13         UserOrGroup key = UserOrGroup.CreateFromSid(identifier.Value);
14
15         conn = new ServerConnection(serverName, serverPort, Profile.Administrator, auditUserCredentialObject, ServerConnection.InitializationStrategy.LazyInitialization, true, true);
16         if (conn.IsConnected)
17         {
18             return true;
19         }
20         else
21         {
22             return false;
23         }
24     }
25     catch (Exception ex)
26     {
27         return false;
28         throw new HostingManagementException("Cannot connect to SCVMM server." + ex.Message);
29     }
30 }

介绍下config文件配置。server名填scvmm server地址,端口号默认是8100,登录名密码是域帐号,这里还有一个DomainSecurityGroup,这个在sample貌似没有用到,应该是用它来限制客户端使用身份,在Microsoft.Hosting.Management工程有一段。这些配置信息完全可以像套件配置一样放在数据库里。

1 <appSettings>
2     <add key="DomainSecurityGroup" value="domain"/>
3     <add key="SCVMMServerName" value="localhost"/>
4     <add key="SCVMMServerPort" value="8100"/>
5     <add key="SCVMMUserName" value="domain\administrator"/>
6     <add key="SCVMMPassword" value="password"/>
7 </appSettings>

另外,在wcf定义的接口中,功能也是不完全的,开发者可以根据自己的需要更改。

比如获取共享库信息、刷新共享库,暴露接口就是没有的,但在sample中powershell都基本上已经封装好了,我们只需要写一些逻辑代码。建议在调用这些接口之前,用powershell命令试试。

 1 public static LibraryShare GetLibraryShareByName(ServerConnection conn, string name)
 2 {
 3     try
 4     {
 5         using (PSWrapper.CmdletProcessor cp = GetCmdletProcessor())
 6         {
 7             var list = PSWrapper.LibraryShare.Get(cp);
 8             if (list.Length > 0)
 9             {
10                 return list.Where(x => x.Name.Equals(name)).FirstOrDefault();
11             }
12             return null;
13         }
14     }
15     catch (Exception ex)
16     {
17         throw new HostingManagementException("Failed to get Library Share:" + ex.Message, ex);
18     }
19 }

另外在学习sample的过程中可能会遇到以下两个错误。

The Windows PowerShell snap-in ‘Microsoft.SystemCenter.VirtualMachineManager‘ is not installed on this computer.

这是本地没有安装scvmm服务,sample不要直接在本地运行,如果有需要可以安装一个scvmm,或者将wcf部署到scvmm所在系统的iis上。

No snap-ins have been registered for windows powershell version 2.

意思是说没有注册scvmm组件的管理单元。Microsoft.SystemCenter.VirtualMachineManager的powershell工具集只支持x64的平台,需要把vs项目的目标平台设置成64位的。

时间: 2024-11-10 17:41:41

scvmm sdk之ddtkh(二)的相关文章

【Android类型SDK测试(二)】环境基础

(一)语言 Android使用的Java语言,所以要测试Android类型的SDK,Java的基础知识还是需要的. 另外,Android中有NDK类型的编程,需要知道C相关的知识. (二)环境准备 Android开发环境的搭建网上一搜就一大堆,看看就懂.这里我只是列举一下,请读者按需查找. 申明一点,作为Android类型SDK的测试,我们不能仅停留在设备上点击按钮,看看功能和展示,更多的时候,我们需要代码,需要日志,所以 Android开发环境对于我们来说,就是测试环境,必不可少. http:

Autodesk FBX SDK Program 中文 (二)

这是Autodesk FBX SDK学习笔记第二篇,以下部分汉字翻译自Autodesk FBX SDK Program,翻译人:有道翻译. 上一篇讲了一些FBX SDK的基本操作,创建FbxManager这些,也写了我们第一个FBX SDK 的例子. 今天是FBX SDK指南的第二篇,创建一个FBX文件转换器,有什么用? 把FBX转换成DAE.Obj这些格式啦!把FBX 二进制转换成文本格式啦! 这一篇的知识点: 1.FbxManager的创建与销毁 2.FbxImporter的创建与使用 3.

scvmm sdk之powershell(一)

shell表示计算机操作系统中的壳层,与之相对的是内核,内核不能与用户直接交互,而是通过shell为用户提供操作界面,shell分为两类,一种提供命令行界面,一种提供图形界面.windows powershell第一个版本是在2006年,提供类似unix系统的命令行壳程程序.powershell是建立在.net framework基础之上的,它内置一百多种cmdlet工具,它不仅可以像传统cmd命令一样管理操作系统,还可以管理针对.net架构下开发的程序,比如system center virt

HyperLeger Fabric SDK开发(二)——Fabric SDK配置

HyperLeger Fabric SDK开发(二)--Fabric SDK配置 一.Fabric SDK配置 Fabric区块链网络应用程序需要大量的参数,用于连接Fabric区块链网络.通常将Fabric区块链网络应用程序所需的参数放到一个配置文件进行管理,配置文件定义Fabric SDK Go的配置和用户自定义参数,指定了连接Fabric区块链网络所需的全部信息,例如Fabric区块链网络组件的主机名和端口等.Fabric SDK GO为应用程序提供的配置文件通常使用yaml文件格式编写,

iOS开发——iOS7(及以后版本) SDK自带二维码(含条形码)扫码、二维码生成

本文转载至 http://www.cnblogs.com/leotangcn/p/4357907.html 现在很多APP都涉及了二维码扫码功能,这个功能简单实用,很多情况下用户乐于使用,现在本文带来iOS7自带二维码扫码的教程,也包括扫条形码,足以满足简单的扫码要求,而且避免使用第三方的繁琐. 后期项目中需要生成二维码,我在git上找到一个很方便使用的轻量级开源库,推荐给有需要的朋友:https://github.com/moqod/ios-qr-code-encoder 下面介绍如何使用iO

GVR SDK for Unity(二)

前言 关于google vr sdk的具体使用,传送门 [Gvr]Google VR SDK for Unity(一) Google Daydream平台已经整合进Google VR SDK 本文环境:Unity5.3.1 x64 , Gvr SDK 0.8 , VS2013 单词翻译 stereo:立体的: pose:姿势: gaze:凝视,注视:Reticle:十字线,准星 :Responder:应答者: provider:提供者:ProviderFactory:工厂类: Emulator:

ArcSDE SDK For Java二次开发介绍、演示样例

在一个工作中,遇到了须要java后台来查询ArcGIS 中用到的Oracle数据库空间数据,因为对ArcGIS空间数据首次接触,仅仅知道Oracle能够使用ST_GEOMETRY字段存储,例如以下图 可是查询时会发现这个ST_GEOMETRY字段会在结果中出现个多个子的字段,对于arcgis地理知识了解甚少,不知道单独查询一个坐标怎么弄了,有些朋友说须要配置监听文件. 无论怎么说,至少參考了一个大牛的文章,http://blog.csdn.net/linghe301/article/detail

ArcSDE SDK For Java二次开发介绍、示例

在一个工作中,遇到了需要java后台来查询ArcGIS 中用到的Oracle数据库空间数据,由于对ArcGIS空间数据首次接触,只知道Oracle可以使用ST_GEOMETRY字段存储,如下图 但是查询时会发现这个ST_GEOMETRY字段会在结果中出现个多个子的字段,对于arcgis地理知识了解甚少,不知道单独查询一个坐标怎么弄了,有些朋友说需要配置监听文件. 不管怎么说,至少参考了一个大牛的文章,http://blog.csdn.net/linghe301/article/details/8

音视频SDK解决方案对比

目前音视频开发市场琳琅满目,市场占有率最大的当属于RTX,视高等大公司.但是随着科技的日新月异,一些新型的公司逐渐崭露头角,市场上用户群体的多样化,,也将使用户的选择变得多样性,同时带来的是音视频厂商之间进一步的激烈竞争. 音视频的开发区域涵盖了多个领域,如可以开发具有企业特色的即时通讯系统.视频游戏系统.视频会议系统.网络教学系统.语音视频聊天系统.专家咨询平台以及政府应急指挥平台等.进入2010年以来,音视频开发商面对着更加严格的要求,而往往的像AnyChat.华途及视高等一系列有科技实力的