ZStack 1.6 版本今天正式发布,欢迎大家下载安装。在该版中新增了如下功能:定时任务,支持更新NFS主存储URL,设置云主机SSH key,设置云主机控制台密码,新增获取ZStack用于DHCP服务IP地址的API。由于支持云主机的在线快照功能,自1.3版本开始,ZStack已经不再支持CentOS 6系列的操作系统。用户可以使用CentOS 7.2官方ISO或者CentOS 7.2 ZStack 20160827 社区版ISO (pan.baidu.com/s/1cn62ya) 安装系统。具体细节参考以下章节。
新增功能
1.定时任务
2.更新NFS主存储的URL
3.获取ZStack用于DHCP服务的IP地址
安装升级
1.一键安装
2.一键升级
3.多节点升级
详细信息
1. 定时任务
ZStack scheduler 是一种周期性执行任务的方式,目前我们可以通过Scheduler执行四种类型的周期性任务:
1.启动云主机 (CreateStartVmInstanceScheduler)
2.停止云主机 (CreateStopVmInstanceScheduler)
3.重启云主机 (CreateRebootVmInstanceScheduler)
4.创建云盘快照 (CreateVolumeSnapshotScheduler)
创建定时任务
ZStack scheduler有两种类型的定时方式:简单定时任务和Cron定时任务
1.1 简单定时任务
简单定时任务可以帮助用户在某个特定时刻执行某个特定任务;或者从某个特定时刻开始,根据用户设置的间隔时间,循环执行某个特定任务多次或者永远循环执行下去。
例如,你想在每天早上八点钟启动云主机,每天晚上十二点关闭云主机,只需要执行以下两个命令:
>>>CreateStartVmInstanceScheduler schedulerName="start vm" type=simple startTime=1472428800 interval=86400 vmUuid=c1954bcf582148bfbb5a0aab04a831d9
>>>CreateStopVmInstanceScheduler schedulerName="stop vm" type=simple startTime=1472486400 interval=86400 vmUuid=c1954bcf582148bfbb5a0aab04a831d9
其中,startTime需要填写标准的epoch unix time; repeatCount是可选参数,告诉scheduler这个任务需要重复执行多少次,默认scheduler将永远重复下去,直到用户手动删除该scheduler
1.2 Cron定时任务
Cron定时任务提供了类似Linux的crontab,帮助用户进行更灵活的任务定时设置。
时间格式如下:
+---- 周中的某一天 | ||||
+---------- 月 | ||||
+---------------- 月中的某一天 | ||||
+---------------------- 小时 | ||||
+---------------------------- 分 | ||||
+---------------------------------- 秒 |
例如,用户希望每周一到周五晚上十一点,重启云主机;同时希望每个月的1号晚上10点,对该云主机的根云盘做一个快照。那么,用户只需要执行以下两个命令:
>>>CreateRebootVmInstanceScheduler schedulerName="reboot vm" type=cron cron='* * 23 ? * MON-FRI' vmUuid=c1954bcf582148bfbb5a0aab04a831d9
>>>CreateVolumeSnapshotScheduler schedulerName='create snapshot' type=cron cron='0 0 10pm 1 * ?' volumeUuid=925c3a849475478da38a6c89e978fc01 snapShotName='backup my vm'
查询定时任务
QueryScheduler
删除定时任务
DeleteScheduler uuid="9c526669e93748038993022e0a6c2e3e"
更新定时任务
>>>UpdateScheduler uuid=6f67d7bf064e42aabe0a0f5657841345 schedulerName='new name' schedulerDescription='new description'
2. 更新NFS主存储的URL
用户在使用NFS主存储的时候,可能会由于容量、性能等问题需要切换NFS服务的场景。那么用户就可以使用ZStack 1.6 新提供的UpdatePrimaryStorage的API来做到该项功能。
假设用户希望把NFS主存储从192.168.0.1:/zstack_primary_storage 换成192.168.0.2:/zstack_ssd_primary_storage,那么就可以使用如下的方法:
1.首先从UI或者使用zstack-cli来Stop所有使用该存储的VmIntance
2.然后使用rsync命令,把192.168.0.1:/zstack_primary_storage目录下的内容全部sync到192.168.0.2:/zstack_ssd_primary_storage目录下。使用其他拷贝命令的话,需要确保文件权限和所有者属性没有发生改变。
3.登录管理节点,使用zstack-cli 来切换主存储的url,例如(这里的76307f1c5a404fc9b4b9b4210be57dbf为需要更新的NFS主存储UUID):
>>>UpdatePrimaryStorage uuid=76307f1c5a404fc9b4b9b4210be57dbf url=192.168.0.2:/zstack_ssd_primary_storage
3. 获取DHCP服务的IP地址
当用户使用非虚拟路由的扁平网络(FlatNetwork)模式的时候,ZStack会从对应L3网络的IP地址空间中选择一个IP地址作为DHCP 服务的IP地址。该地址用于给之后创建的云主机分配动态IP地址。有时候用户可能没有意识到该IP地址已经被占用。ZStack 1.6 支持一个新的API:GetL3NetworkDhcpIpAddress。通过执行这个API,用户可以获取当前L3网络的DHCP IP地址。例如(下面这个API可以获取UUID为4c0d4225e5b64a5bbce300d989508f32的L3网络的DHCP IP地址。):
>>>GetL3NetworkDhcpIpAddress l3NetworkUuid=4c0d4225e5b64a5bbce300d989508f32
{
"ip": "172.20.12.186",
"success": true
}
4.设置云主机SSH key
在云主机启动后,用户可以用对应的SSH私钥进行SSH无密码登录,注入SSH公钥可以给云主机的root用户设置SSH公钥。ZStack 1.6为用户提供了三个API:
用法:
SetVmSshKey SshKey=ssh-rsa ... uuid= 云主机uuid
GetVmSshKey,查询云主机已注入的SSH key,用法:
GetVmSshKey uuid=云主机uuid
DeleteVmSshKey,删除云主机的SSH key,用法:
GetVmSshKey uuid=云主机uuid
注意:该功能只有admin用户可以使用。
5.设置云主机控制台密码
用户可以为自己的云主机设置控制台密码,ZStack 1.6新支持了两个API:SetVmConsolePassworde和DeleteVmConsolePassword,分别为云主机创建控制台密码和删除控制台密码。例如:
SetVmConsolePassword consolePassword=password uuid=970d4648ef7141f488e3cf53d52ad5b9
DeleteVmConsolePassword uuid=970d4648ef7141f488e3cf53d52ad5b9
6. 安装
你可以通过下面方式完成ZStack的一键安装:
wget http://download.zstack.org/releases/1.6/1.6.2/zstack-installer-1.6.2.bin
bash zstack-installer-1.6.2.bin -R aliyun
这里-R aliyun参数指定使用阿里云的源进行安装,你也可以使用-R 163使用网易的源。我们推荐使用阿里云的源。
7. 离线安装
针对内网用户,以及访问Internet速度较慢的用户。 ZStack 1.6 提供了离线安装方式. 用户若需要离线安装ZStack,需要在目标管理节点和计算节点上安装CentOS 7.2 ZStack社区版.
然后在下载了第4步中的 zstack-installer 之后,你可以通过下面方式快速完成离线安装:
bash zstack-installer-1.6.0.bin -o
具体的离线安装教程和CentOS 7.2 ZStack社区版请阅读: ZStack离线安装教程
8. 升级
一如既往的,我们支持一键无缝升级。如果用户使用一键安装的安装方式安装的,可以使用下面的命令完成升级:
wget http://download.zstack.org/releases/1.6/1.6.0/zstack-installer-1.6.0.bin
bash zstack-installer-1.6.0.bin -u
如果用户升级前使用了ZStack 1.5或更早的ZStack版本进行的离线安装,并且使用的CentOS 7.2 ZStack 社区版ISO安装的物理机系统,因为在1.6版本中增加了新的系统依赖包,那么还需要首先下载新的CentOS 7.2 ZStack 社区版ISO更新对应的yum源。
更新本地yum源的方法如下(在管理节点更新即可):
cd /opt/
wget http://download.zstack.org/ISO/ZStack-Community-x86_64-DVD-160827.iso
wget http://www.mevoco.com/downloads/scripts/zstack-repo-upgrade.sh
bash /opt/zstack-repo-upgrade.sh
更新社区版ISO的方法还可以从这里获得:
www.zstack.io/support/blog/2017/0223/1014.html
9. 多节点升级
一)停止所有管理节点
登录所有管理节点执行:
zstack-ctl stop
二)升级离线安装包
如果使用CentOS 7.2 ZStack社区版安装的系统,那么还需要升级
三)升级第一个节点:
wget http://download.zstack.org/releases/1.6/1.6.0/zstack.war
zstack-ctl upgrade_management_node --war-file zstack.war
四)升级数据库(需要在有数据库的节点运行):
zstack-ctl upgrade_db
五)升级其他管理节点:
zstack-ctl upgrade_management_node --war-file path_to_the_war --host remote_host_ip
六)升级zstack-dashboard:
zstack-ctl install_ui
七)启动管理节点和UI:
登录所有管理节点并执行:
zstack-ctl start