开源IaaS 软件ZStack 新版本特性解析及升级指导
ZStack 的新版本 v0.8 已于8月正式发布。v0.8 版本里包含了4个重要功能:本地硬盘主存储、动态添加删除云主机网卡、账号用户权限系统和修改云主机的硬件配置。让我们来一一看一下他们的功能:
本地硬盘主存储
用户可以不必预先创建任何的网络共享存储,而使用计算节点的本地存储作为主存储设备。本地存储具有方便、快捷、适中性能等特点。用户可以选择一个 Cluster同时支持网络共享存储和本地硬盘主存储。如果同时选择了这两种类型的存储,ZStack会指定本地硬盘主存储存放云主机的Root Volume(系统盘),网络共享存储存放云主机的Data Volume(数据盘)。这个是我们研究大部分私有云的实际使用方法后得出的较好的使用方式,用户需要格外注意!如果用户需要一部分计算节点的系统盘使用 本地硬盘主存储,而另外一部分计算节点的系统盘使用网络共享存储,那么请把这两类计算节点分入不同的Cluster。
更多关于本地硬盘主存储的介绍可以访问本地存储教程
动态添加、删除云主机网卡(三层网络)
用户可以对一个正在运行的或是停止的云主机动态的添加和删除三层网络。这对于需要改变云主机网络拓扑结构的用户来说非常重要。
关于如何添加和删除网卡的详细信息可以访问添加删除三层网络教程
用户账号权限管理系统
从 0.8版本开始,ZStack开放了完善的用户账号权限系统API。ZStack的账号用户系统和亚马逊的AWS采用相同的管理方式,同时提供了 Account和User。用户不仅可以创建,修改用户密码,还可以创建不同用户组并加以不同的权限限制。公有云也可以基于ZStack的账号系统对接自 身的billing系统。
详细用户权限介绍可以访问账号用户系统手册或者可以直接访问账号用户权限API手册
修改云主机配置模板
当用户选择某个模板(CPU/内存配置)创建云主机之后,如果需要增加CPU或者内存的数量,可以根据需求修改当前云主机的模板。更改模板后修改后,仅需要重启云主机即可。该功能支持通过UI和命令行界面来修改模板。
详细信息可以参阅修改云主机配置模板手册
从 0.7 版本无缝升级
升级数据库
虽然ZStack升级程序会进行备份,不过在升级数据库前,还是希望用户手动做好数据库的备份! 您可以使用以下的命令来备份当前zstack的数据库:
mysqldump -u root -proot_password --host mysql_ip --port mysql_port zstack > path_to_db_dump.sql
快速升级
如果你仅仅只有一个管理节点,数据库和Dashboard也装在相同的节点上,那么你就可以用下面的方法快速升级:
wget http://download.zstack.org/releases/0.8/0.8.0/zstack-install-0.8.0.sh wget http://download.zstack.org/releases/0.8/0.8.0/zstack-all-in-one-0.8.0.tgz bash zstack-install-0.8.0.sh -u -f zstack-all-in-one-0.8.0.tgz
正常情况,你大概只需要等待2分钟,zstack就会帮你升级完成。
使用 zstack-ctl 升级多节点
1. 升级第一个节点
mkdir zstack-0.8 cd zstack-0.8
请重新安装zstack-ctl,如果你还在使用zstack v0.6系列的产品
wget http://download.zstack.org/releases/0.7/rc2/zstackctl-0.7.tar.gz /var/lib/zstack/virtualenv/zstackctl/bin/pip install --ignore-installed zstackctl-0.7.tar.gz
wget http://download.zstack.org/releases/0.8/0.8.0/zstack.war zstack-ctl upgrade_management_node --war-file zstack.war
2. 升级数据库
备份数据库
zstack-ctl upgrade_db
如果只有一个管理节点,您可以立刻启动该节点
使用命令
zstack-ctl start_node
启动zstack管理节点。如果还有其他管理节点,请继续完成步骤三。
3. 升级其他管理节点
zstack-ctl upgrade_management_node --war-file path_to_the_war --host remote_host_ip
需要注意从 v0.8开始,zstack-ctl 统一了命令参数,所有原有--remote 指令都统一成了--host.
4. 升级UI
停止UI服务
/etc/init.d/zstack-dashboard stop;
升级本地UI服务:
zstack-ctl install_ui
或者升级远端UI服务:
zstack-ctl install_ui --host remote_machine_ip
5. 启动管理节点
启动本地管理节点:
`zstack-ctl start_node`
启动远程管理节点:
`zstack-ctl start_node --host remote_host_ip`
所有的Agent都会随着管理节点的启动而自动升级
当管理节点启动后,会重新连接并升级包括计算节点,备份存储,虚拟路由等等一系列的ZStack Agents。 用户在创建新的云主机之前,需要确保计算节点的状态已经变成Connected
6. 启动UI服务
启动本地UI:
`zstack-ctl start_ui`
启动远端UI:
`zstack-ctl start_ui --host remote_host_ip`
修复的Bugs
除了开发了4个新功能,v0.8还修复了超过23个之前的bugs:
-
VM is not able to be created, if VROffering is not set to isDefault=true
-
Need add UpdateVirtualRouterInstanceOffering API to update vr offering
-
Delete normal account will delete private L3 VR (L3 is shared by admin)
-
create volume template from snapshot failed when original volume is deleted in NFS ps
-
If attach Nic failed in libvirt attach stage, the allocated ip will not return to database
-
Change VM Instance list UI: replace Hypervisor column to VmNic0 IP address
-
Can't set fields=totalCapacity,availableCapacity,availablePhysicalCapacity for QueryPrimaryStorage
-
after iso installation, the root volume shows format 'raw' while the real format is qcow2
-
VM console connection will be timeout, if ManagementNode use iptables to reject port access
-
UpdateL3Network should be able to update "system" attribution
-
Qcow Volume image size is full size, when creating from volume offering
-
[API Request] APIUpdateHostMsg is required to update Host's information
-
URL format hint is wrong for IscsiFileSystemBackendPrimaryStorage
ZStack 是全新的开源 IaaS 软件,它的诞生是为了解决困绕 IaaS 软件的几大难题:复杂度、稳定性、可伸缩性和灵活性。作为这个领域的新项目,ZStack 从前辈身上学习到了很多经验,并且针对各种云的问题重头设计了整套架构。
在这个版本里,ZStack 已经提供了大部分IaaS的基本功能,包括:虚拟机管理,存储卷管理,存储卷快照,各种网络服务(DHCP、DNS、SNAT、EIP、 PortForward以及Security Group)。请访问官网网站以获取完整的功能列表:http://zstack.org/documentation/features- matrix.html
ZStack非常容易安装。在我们的快速安装说明(http://zstack.org/installation /)里,记录了如何通过两条命令,5分钟时间,完成在一台Linux机器上部署单机演示环境。或者阅读多控制节点安装手册(http: //zstack.org/installation/multi-node.html),在30分钟内搭建一个可以负责管理成百上千台服务器的服务集群。