产品发布

RELEASE
ZStack v0.9 发布

Yongkang_You | 2022-10-15 17:30

ZStack 0.9 版本今天发布,欢迎大家测试试用。在这个版本里,ZStack新加了两大重量级的功能:

支持分布式存储Ceph

从0.9版本开始,ZStack正式支持Ceph作为主存储和备份存储的设备。为了较大化的利用Ceph存储的高级能力, 在一个Zone内,用户需要使用一个Ceph Cluster同时作为主存储和备份存储。这样做的好处是, 避免了用户在创建新的云主机、备份Volume等操作时,主存储和备份存储之间不必要的数据拷贝, 所有的数据操作都是通过COW(copy on write)来实现的。



ZStack和Ceph之间的交互是通过部署在Ceph Mon服务器上的Agent来完成的。用户可以动态的添加或删除Ceph的Mon服务器。


Ceph 备份存储

Ceph 备份存储只能和Ceph主存储配合使用

使用Ceph的一个主要的好处是因为Ceph支持COW,所以在ZStack中,如果使用了Ceph的备份存储,那么主存储也必须是同一个Ceph。 由于Ceph备份存储和主存储都使用相同的Ceph cluster,所以用户不能把一个Ceph的备份存储挂载到多个ZStack的Zones上。 较好的使用方法是每一个Zone使用独立的Ceph cluster作为同一套主存储和备份存储。 换句话说,当ZStack的Zone仅仅挂载了Ceph作为备份存储的时候,你不能再使用NFS、本地存储以及ISCSI作为该Zone的主存储。 当一个Zone同时挂载Ceph备份存储和SFTP备份存储的时候,可以混用多种主存储类型。但是需要特别注意的是, 如果云主机的镜像文件只存在于Ceph备份存储的时候,该云主机只能在Ceph主存储上创建成功。 假设创建云主机时选择的L3网络所在的Cluster上没有挂载Ceph主存储,但是该云主机的镜像文件只存在在Ceph备份存储 上,那么创建云主机将会发生找不到合适主存储的失败。

从UI添加Ceph备份存储



1.选择类型 'Ceph'

2.输入Ceph mon server的 IP/hostname

3.输入Ceph mon server的 SSH 用户名

4.输入Ceph mon server的 SSH 密码

5.点击 'Add'

6.重复步骤 3 ~ 5 来添加其他的Ceph Mon服务器

7.点击 'Next'

通过CLI添加Ceph备份存储

你可以使用 AddCephBackupStorage 来添加 Ceph 备份存储. 例如:

>>>AddCephBackupStorage name=ceph monUrls=root:密码@192.168.0.123,root:password@192.168.0.124,root:password@192.168.0.125

monUrls 是一个字符串列表,每一个Mon服务器的信息通过逗号来分割,每一个Mon服务器的信息遵从如下的格式:

ssh_用户名:ssh_密码@mon_server_ip:[ssh_port][/?monPort=ceph_mon_port]

ssh_用户名, ssh_密码, mon_server_ip 是必须的内容,而ssh_port 和 ceph_mon_port是选填的。 ceph_mon_port 是Ceph Mon服务器的端口,默认值为6789. 一个完整的monUrl的例子是:

root:password@192.168.0.123:22/?monPort=6789.

指定 pool

AddCephBackupStorage 有一个特别的参数poolName。通过它,用户可以指定一个存在的Ceph Pool。 当用户指定一个pool的名字的时候,ZStack会使用这个pool。当这个pool不存在的时候,ZStack将会报告一个添加失败的错误。 当用户不指定特别的pool名字的时候,ZStack会自动创建一个新的pool。 你可以利用这个功能预先创建一个合适的pool。

动态添加Mon服务器

在添加了Ceph备份存储后,用户还可以给该备份存储添加新的Ceph Mon服务器:

>>>AddMonToCephBackupStorage uuid=d914841733fa499c9dc6d63ea339469d monUrls=root:password@192.168.0.123,root:password@192.168.0.124,root:password@192.168.0.125

动态删除Mon服务器

你还可以使用 RemoveMonFromCephBackupStorage 来删除一个Ceph Mon服务器。

>>>RemoveMonFromCephBackupStorage uuid=d914841733fa499c9dc6d63ea339469d monHostnames=192.168.0.123,192.168.0.124

monHostnames 是一个通过逗号分割的字符串列表,里面是Mon的IP地址。

查询Ceph备份存储

使用QueryCephBackupStorage可以查询所有Ceph备份存储的详情:




Ceph主存储

Ceph主存储既可以和Ceph备份存储协同工作,也可以使用SFTP备份存储。

通过UI添加



1.选择类型 'Ceph'

2.输入Ceph mon server的IP/hostname

3.输入Ceph mon server的SSH 用户名

4.输入Ceph mon server的SSH 密码

5.点击 'Add'

6.重复步骤 3 ~ 5 来添加其他的Ceph Mon服务器

7.点击 'Next'

Add through CLI

你可以使用 AddCephPrimaryStorage 来添加一个 Ceph 主存储。 例如::

>>>AddCephPrimaryStorage name=ceph zoneUuid=d914841733fa499c9dc6d63ea339469d monUrls=root:password@192.168.0.123,root:password@192.168.0.124,root:password@192.168.0.125

monUrls 是一个字符串列表,每一个Mon服务器的信息通过逗号来分割,每一个Mon服务器的信息遵从如下的格式:

ssh_用户名:ssh_密码@mon_server_ip:[ssh_port][/?monPort=ceph_mon_port]

ssh_用户名, ssh_密码, mon_server_ip 是必须的内容,而ssh_port 和 ceph_mon_port是选填的。 ceph_mon_port 是Ceph Mon服务器的端口,默认值为6789. 一个完整的monUrl的例子是:

root:password@192.168.0.123:22/?monPort=6789.

指定 pool

AddCephPrimaryStorage 有三个个特别的参数imageCachePoolName, rootVolumePoolName, dataVolumePoolName。 通过它们,用户可以指定存在的Ceph Pool作为主存储的Pool。 当用户指定pool的名字的时候,ZStack会使用这个pool。当pool不存在的时候,ZStack将会报告一个添加失败的错误。 当用户不指定特别的pool名字的时候,ZStack会自动创建三个新的pool。

你可以利用这个功能预先创建合适的pool。在指定Pool的时候,你可以只指定其中的一个或者两个,然后由ZStack来创建其余的Pool。

动态添加Mon服务器

在添加了Ceph主存储后,用户还可以给该主存储添加新的Ceph Mon服务器:

>>>AddMonToCephBackupStorage uuid=d914841733fa499c9dc6d63ea339469d monUrls=root:password@192.168.0.123,root:password@192.168.0.124,root:password@192.168.0.125

动态删除Mon服务器

你还可以使用 RemoveMonFromCephPrimaryStorage 来删除一个Ceph Mon服务器。

>>>RemoveMonFromCephPrimaryStorage uuid=d914841733fa499c9dc6d63ea339469d monHostnames=192.168.0.123,192.168.0.124

The monHostnames is a list of IPs of mon servers that you want to remove.

查询Ceph主存储

你可以使用QueryCephPrimaryStorage来查询所有的Ceph主存储的详细信息:




动态负载均衡

从0.9开始,ZStack支持全新的动态负载均衡网络服务。详细的负载均衡介绍请访问负载均衡用户手册


安装 0.9

单节点一键安装

mkdir -p zstack-0.9
cd zstack-0.9
wget http://download.zstack.org/releases/0.9/0.9.0/zstack-install.sh
bash zstack-install.sh -a

多节点安装

ZStack 0.9 多节点安装的步骤可以参考多节点安装手册。


无缝升级

请格外留意在文章最后的虚拟路由器的升级指令

由于ZStack0.9在制裁动态路由功能的时候,添加了新的虚拟路由功能。所以不论是否使用虚拟路由功能,用户都应该升级 虚拟路由。详细的升级办法,会写在升级这章的最后。

备份数据库

虽然ZStack升级程序会进行备份,不过在升级数据库前,强烈建议用户手动备份数据库! 您可以使用以下的命令来备份当前zstack的数据库,以防之后的误操作:

mysqldump -u root -proot_password --host mysql_ip --port mysql_port zstack > path_to_db_dump.sql

快速升级

如果你仅仅只有一个管理节点,数据库和Dashboard也装在相同的节点上,那么你就可以用下面的方法快速升级:

zstack-ctl stop_node
mkdir -p zstack-0.9
cd zstack-0.9
wget http://download.zstack.org/releases/0.9/0.9.0/zstack-install.sh
wget http://download.zstack.org/releases/1.3/1.3.1/zstack-installer-1.3.1.bin
bash zstack-install.sh -u -f zstack-all-in-one-0.9.0.tgz

正常情况,你大概只需要等待2分钟,zstack就会帮你升级完成。

使用zstack-ctl升级多节点

1. 升级第一个节点

mkdir -p zstack-0.9
cd zstack-0.9

请重新安装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.9/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

4. 升级UI

停止UI服务

如果还在使用0.6版本,请使用命令:

/etc/init.d/zstack-dashboard stop; 

对于0.6以后的版本,请使用命令:

zstack-ctl stop_ui

升级本地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`

7. 升级虚拟路由

升级正在运行的虚拟路由器(Virtual Router VMs)



1.选择 虚拟路由器 VM

2.点击 "Action"

3.点击 "Reconnect"

待重连之后,虚拟路由器会更新到新的版本。

更新虚拟路由器镜像以及虚拟路由器模板

添加新的虚拟路由器镜像

http://download.zstack.org/releases/0.9/rc2/zstack-virtualrouter-0.9.0-rc.qcow2:



通过CLI更新虚拟路由器模板:

UpdateVirtualRouterOffering uuid=vr_offering_uuid imageUuid=new_image_uuid

你将不能在0.9版本的ZStack中成功使用0.8版本的虚拟路由器镜像创建一个虚拟路由器!

如果你不更新现有的虚拟路由器模板和镜像,当你添加一个新的具有虚拟路由器的L3网络,并用其创建一个新的云主机的时候, 你将会遇到虚拟路由器连接失败,新的云主机无法创建等错误。所以在正常使用0.9版本之前,务必要更新虚拟路由器镜像。


修复的Bugs

Delete VIP hang, when using separated VR to do Load Balancer #123

New created volume doesn't exist, if original volume is deleted in ceph #122

Parallel VM creation might fail #121

ceph mon url doesn't support password of @ #119

cannot use eth0:1 as L2 interface #118

ZStack 0.9 doesn't have Load Balancer if upgrading from 0.8 #117

Delete VR pub L3 IP range when VR is starting, will block user vm creation #116

VIP can't be deleted, when load balancer creation failed #115

VIP's IP won't be cleaned up in VR, when delete VIP for LB #114

Add Nic to listener might be failed #113

attach volume might fail #112

Ceph mon is not cleaned up, when ceph pool is added failed #111

GetFreeIp won't return next available ip, if previous ip is used #110

Delete Ceph PS failed: FutureCompletion timeout after 1 seconds #109

Delete VIP failed, due to used by load balancer #108

Update System Tags won't work if using RebootVM

Update systemTags for static IP won't effect #106

Delete Ceph PS won't cleanup pools #104

The same ceph primary storage can't be added to 2 Zones #103

new added DNS won't be added to VR, until call Reconnect VR #101

DNS is not removed after Delete L3 DNS #100

VM migration failed if using ceph ps #99

Query API with multiple conditions might return wrong result #98

Header sub-project build from source code : bad version number found in aspectj. #97

Can NOT acquire the lock again before unlock, GLock is non reentrant #96

iso duplicate primary key issue when downloading iso to local storage #95

BackupVolumeSnapshot doesn't support with Ceph PS and BS #94

Delete Image won't cleanup rbd in Ceph BS pool #93

vm reboot fail when using ceph bs and ps #92

vm creation failed with both ceph ps and ceph bs #91

create vm fail with ceph ps and sftp bs #90

AddCephPrimaryStorage fail #89

UpdateImage with platform=Paravirtualization failed #88


报告bug

如果你在使用中发现任何问题或者有任何建议,请你到我们的GitHub上告诉我们,谢谢!

Enjoy~ ZStack 开发团队

最近文章

咨询

021-61733682

400-962-2212