提供:ZStack云计算
介绍
熟悉OpenStack的同学应该知道OpenStack可以用devstack来搭建一个虚拟云环境, 使用CloudStack的同学也知道CloudStack也有一个虚拟云环境。 在虚拟云环境中,云主机不会在物理设备上真正创建出来,一切的云场景都是构建在一个虚无的世界中,唯有IaaS的数据库和消息总线还在真实的工作。 由于云模拟器的这种特性,我们可以用它来熟悉各种云操作和进行底层和虚拟机无关的集成测试,例如测试消息总线,测试数据库,测试IaaS的基本功能。 ZStack的模拟器是ZStack开发伊始就存在的,并随着ZStack功能的开发而不断增强。ZStack的数百个集成测试用例就是 跑在ZStack的模拟器之上的。ZStack首页上例举的很多大规模并发性能测试也是基于模拟器来进行的 (不过ZStack在用户的真实物理环境中已经拿到比在PC模拟器上还要好的数据了,平均云主机的创建时间可以低于0.08s)。在频繁的各种VM的操作之中, 我们可以稳定的获得ZStack仅仅用一个管理节点就可以高效的模拟管理数十万的计算节点和上百万的云主机的常规并发操作。 从而验证了Rabbitmq完全可以胜任大规模并发环境的IaaS操作(只要调度方法正确)。 ZStack模拟器是和ZStack天然集成的,用户不需要进行额外的配置。只要正常启动ZStack管理程序后,就可以部署虚拟云环境。
今天我们就要给大家展示一下ZStack的虚拟云环境如何创建。另外我们还要给大家展示一下如何一步部署ZStack模拟云环境。 ZStack模拟器和ZStack天然集成,最早的时候ZStack的Dashboard也是可以在UI界面上添加和部署虚拟云环境。但是后来为了避免用户的误操作, ZStack开发团队把UI界面上添加云环境的功能给禁止了。目前虚拟云环境需要通过zstack-cli来操作。 如果您只是想快速部署一个虚拟的云环境,而不在乎部署的过程,可以直接跳转到本文的最后,使用一键部署。 用户可以在半分钟内完成虚拟云环境的部署,并用其创建虚拟云主机。
前提
已经根据ZStack快速安装手册,完成ZStack的快速安装和启动。
登录zstack控制终端
- [zstack@localhost ~]$ sudo zstack-cli
- ZStack command line tool
- Type "help" for more information
- Type Tab key for auto-completion
- Type "quit" or "exit" or Ctrl-d to exit
- >>>LogInByAccount accountName=admin password=password
- {
- "inventory": {
- "accountUuid": "36c27e8ff05c4780bf6d2fa65700f22e",
- "createDate": "Aug 3, 2015 7:59:59 AM",
- "expiredDate": "Aug 3, 2015 9:59:59 AM",
- "userUuid": "36c27e8ff05c4780bf6d2fa65700f22e",
- "uuid": "d45bdd89b8984d65b35dd97f83387e4c"
- },
- "success": true
- }
创建Zone
- >>>CreateZone name=simulator-zone
- {
- "inventory": {
- "createDate": "Aug 3, 2015 8:00:25 AM",
- "lastOpDate": "Aug 3, 2015 8:00:25 AM",
- "name": "simulator-zone",
- "state": "Enabled",
- "type": "zstack",
- "uuid": "22331c109ef64f88a5826bcf96793941"
- },
- "success": true
- }
创建Cluster
需要大家把zoneUuid换成自己刚刚创建的Zone的UUID,并且把hypervisor的类型指定为“Simulator”:
- >>>CreateCluster name=simulator-cluster zoneUuid=22331c109ef64f88a5826bcf96793941 hypervisorType=Simulator
- {
- "inventory": {
- "createDate": "Aug 3, 2015 8:02:19 AM",
- "hypervisorType": "Simulator",
- "lastOpDate": "Aug 3, 2015 8:02:19 AM",
- "name": "simulator-cluster",
- "state": "Enabled",
- "type": "zstack",
- "uuid": "c237767682d947f58efaf5e485b713e7",
- "zoneUuid": "22331c109ef64f88a5826bcf96793941"
- },
- "success": true
- }
添加虚拟的计算节点
添加虚拟计算节点的时候,需要使用一个特别的API:AddSimulatorHost。(添加物理KVM计算节点的API是:AddKVMHost)。 由于是虚拟的计算节点,我们还需要给一个假设的CPU容量和内存容量(为了测试方便,该容量可以给的随意大):
- >>>AddSimulatorHost name=simulator-host clusterUuid=c237767682d947f58efaf5e485b713e7 cpuCapacity=200000 memoryCapacity=1000000000000 managementIp=10.10.10.10
- {
- "inventory": {
- "availableCpuCapacity": 200000,
- "availableMemoryCapacity": 1000000000000,
- "clusterUuid": "c237767682d947f58efaf5e485b713e7",
- "createDate": "Aug 3, 2015 8:05:08 AM",
- "hypervisorType": "Simulator",
- "lastOpDate": "Aug 3, 2015 8:05:08 AM",
- "managementIp": "10.10.10.10",
- "name": "simulator-host",
- "state": "Enabled",
- "status": "Connected",
- "totalCpuCapacity": 200000,
- "totalMemoryCapacity": 1000000000000,
- "uuid": "b879af2114794044a6ce2f8902da3e38",
- "zoneUuid": "22331c109ef64f88a5826bcf96793941"
- },
- "success": true
- }
添加虚拟主存储
同虚拟计算节点一样,我们需要使用一个特别的API(AddSimulatorPrimaryStorage)来添加虚拟主存储, 另外我们还需要给一个虚拟的可用空间以及设置类型为SimulatorPrimaryStorage:
- >>>AddSimulatorPrimaryStorage name=simulator-ps zoneUuid=22331c109ef64f88a5826bcf96793941 availableCapacity=10000000000000 totalCapacity=10000000000000 url=nfs://fake_url/fake_folder type=SimulatorPrimaryStorage
- {
- "inventory": {
- "attachedClusterUuids": [],
- "availableCapacity": 10000000000000,
- "availablePhysicalCapacity": 0,
- "createDate": "Aug 3, 2015 8:12:31 AM",
- "lastOpDate": "Aug 3, 2015 8:12:31 AM",