由于jira布置为单点,为了高可用现扩展为集群模式,除了需要注意数据备份迁移之外,还要注意数据恢复、集群搭建、前端代理的负载均衡。
主机 |
安装方式 |
容器ip |
容器jira安装目录 |
容器jira主目录(数据目录) |
172.17.0.166 |
docker |
172.18.0.2 |
/opt/atlassian/jira |
/var/atlassian/application-data/jira |
jira版本:8.7.1
容器数据目录挂载/var/atlassian/application-data/jira 挂载到本地目录/opt/atlassian/application-data/jira/
数据库:172.17.0.166:3306
官方推荐安装目录和主目录区分开。
主机 |
角色 |
应用 |
jira安装目录 |
jira主目录(数据目录) |
jira共享数据目录 |
172.17.210.14 |
数据中心 |
nginx,nfs,mysql |
/opt/case/jirasoftware-sharedhome |
||
172.17.210.17 |
node1 |
jira,mysql |
/opt/app/jira |
/opt/data/jirasoftware-home |
/opt/case/jirasoftware-sharedhome |
172.17.210.18 |
node2 |
jira |
/opt/app/jira |
/opt/data/jirasoftware-home |
/opt/case/jirasoftware-sharedhome |
官方推荐使用专业的DB工具进行备份,而不使用jira自带的xml数据导出导入,原因如下:
使用本机数据库备份工具
所有重要的数据库都附带有用于备份和还原数据库的工具(RDBMS中的“ MS”)。我们强烈建议您优先使用以下这些工具来代替下面描述的XML备份选项,因为它们:
有关如何设置定期备份的信息,请参见数据库的文档。这通常涉及cron作业或Windows计划的任务,这些任务调用诸如mysqldump或pg_dump之类的命令行工具。
因此,这里使用物理备份,既对数据进行mysqldump逻辑备份*(数据量大可考虑其他方式),对jira安装目录和主目录进行物理拷贝。
在升级过程中,您将从现有的JIRA安装中导出JIRA的数据库(通过XML备份),然后将该备份还原到新的JIRA安装中。为了确保XML备份中的数据与系统中的最新数据一致,您必须临时限制对JIRA的访问,以便用户无法更新数据。 有关更多信息,请参考在备份期间阻止用户访问JIRA应用程序。
(警告) 注意!不一致的XML备份无法恢复!
对现有JIRA安装的外部数据库执行XML备份。对于大型JIRA安装,此过程可能需要几个小时才能完成。
我们用mysqldump!
如果附件和索引目录位于JIRA主目录之外,则必须单独备份它们。这些页面描述了如何查找这些目录在实现中的位置:
您的附件目录- 有关您的JIRA版本,请参阅文档中的“ 配置文件附件”页面。
您的索引目录- 有关您的JIRA版本,请参阅文档中的“ 搜索索引”页面。
另请参阅备份数据 ,以获取有关在JIRA中备份附件的更多信息。默认是在jira-home data \data\attachments
“ JIRA安装目录”是安装JIRA时将JIRA应用程序文件和库提取到的目录。
将数据库备份还原到新建的mysql中。
将安装目录和数据目录rsync传送到node1,node2并放置到规划好的位置。
4.1 jdk
推荐1.8以上
略
4.2 tengine
略
4.3 mysql
版本5.7
略
1、mysql配置
以下参数为关键参数,其他参数可以根据实际情况进行优化
4.3 nfs
分别解压主目录和安装目录的压缩包,放置到规定位置/opt/data/jirasoftware-home(主目录),/opt/app/jira(安装目录)。
如果使用Crowd进行用户管理,则将以下文件从现有安装目录的修改重新应用到新文件。不要复制文件,因为它们在新版本的Jira中可能会有所不同。
新节点使用Jira时,如果想对Jira文件进行了一些自定义修改。这些可能包括连接详细信息,与内存分配有关的设置或其他JVM参数。
我们通常会修改的一些文件:
server.xml
dbconfig.xml
Jira-config.properties
setenv.sh / setenv.bat (内存分配和其他JVM参数)
有关更多信息,请参阅 Jira中的重要文件。
观察是否监听8080端口,如果端口需要更改就自行编辑server.xml。
在集群中安装数据中心
略(上一个步骤已经实现),关闭开启的实例,并同步相应目录到node2
您需要创建一个集群中所有节点都可读写的远程目录。有多种方法可以执行此操作,但最简单的方法是使用NFS共享。
设置node1和node2的/etc/hosts文件
172.17.210.17 test-210-17.com
172.17.210.18 test-210-18.com
有关更多信息和一些其他参数,请参阅Cluster.properties文件参数。
ulimit -n 65535
*群集无效的许可证:我们发现您的JIRA许可证有问题
JIRA被设置为作为数据中心实例运行,但是它没有有效的数据中心许可证。您可以从my.atlassian.com获得有效的数据中心许可证,并在此处替换当前许可证。
有关许可错误的更多信息,请参见我们的文档。
了解更多
申请完成后点相应链接,完成许可证
负载平衡器在节点之间分配流量。如果某个节点停止工作,其余节点将接管其工作负载,而您的用户甚至不会注意到它。
将第一个节点添加到负载均衡器。
重新启动该节点,然后尝试在Jira中打开其他页面。如果负载均衡器正常工作,则访问Jira应该没有问题。
官方文档说 We do not officially support any specific Load Balancers, but most commonly see customers using Apache or F5. 感觉是在装逼!
官方文档提到的负载均衡器有:Apache、Haproxy
官方负载均衡参考链接 本测试使用tengine,配置文件如下(*还未测试)
在将节点添加到集群时,可以通过转到> System> System info来检查其状态 。您的节点将在“ 群集节点” 部分列出 。
现在您已启动并运行了数据中心,我们建议您从一开始就一直监视其运行状况。这将帮助您避免出现任何问题,避免问题变大和使工作混乱,并且您将始终了解集群中正在发生的事情。
JIRA数据中心配备了一组运行状况检查工具,可让您分别监视整个集群和每个节点,包括所有重要设置。要访问运行状况检查工具,请转到>系统>支持工具。所有运行状况检查均在“ 实例运行状况” 选项卡中列出 。
参考:
https://confluence.atlassian.com/adminjiraserver087/migrating-jira-applications-to-another-server-998871666.html
https://developer.atlassian.com/server/jira/platform/configuring-a-jira-cluster/#each-node-on-a-separate-machine
https://confluence.atlassian.com/adminjiraserver087/backing-up-data-998872458.html
https://confluence.atlassian.com/enterprise/jira-data-center-load-balancer-examples-781200827.html