使用最新版本?
JFrog平台用户指南
JFrog Artifactoryx文档
要获取最新版本,请访问JFrog统一平台
配置迁移
在将数据从NFS迁移出去之前,请确保HA集群中的所有节点都已启动并运行。然后,要为上述用例配置数据迁移,请遵循以下过程:
验证版本
在继续传输数据之前,需要验证所有集群节点都安装了完全相同的版本(必须是5.0或更高版本)。要验证HA集群中每个节点上运行的版本,请在管理模块下配置|高可用性检查版本表中显示HA节点的列。
验证配置文件是否同步
从版本4升级HA集群时。X到版本5。X,自动转换过程将同步集群所有节点的配置文件。这取代了对$ CLUSTER_HOME / ha-etc
在版本4.x中使用的文件夹。一旦您验证了所有节点都在运行相同的版本,您应该验证节点之间的所有配置文件都是同步的。对于每个节点,导航到其$ ARTIFACTORY_HOME /等
文件夹和验证以下内容:
ha-node.properties |
每个节点仍应按照中所述配置该文件创建ha-node.properties。 |
db.properties |
这个文件是在Artifactory 5.0中引入的,它定义了到数据库的连接。中的密钥对该文件中指定的密码加密master.key 文件。它在每个集群节点中应该是相同的。 |
binarystore.xml |
该文件打开了一整套选项,可以在没有NFS的情况下配置二进制存储。根据您希望如何存储二进制文件,它将包含二进制提供程序配置。对于上面描述的每个用例,您可以在下面找到相应的二进制提供程序配置配置binarystore.xml。 |
master.key |
此文件包含用于加密和解密用于同步集群节点的文件的密钥。 它在每个集群节点上应该是相同的。 |
从5.0版本开始,Artifactory HA将配置文件从主节点同步到所有辅助节点,对主节点上其中一个文件的更改将触发将更改同步到其他节点的机制。
同步仔细
由于在一个节点上的更改会自动同步到其他节点,因此请注意不要在两个不同节点上同时修改同一个文件,因为在一个节点上所做的更改可能会覆盖在另一个节点上所做的更改。
编辑ha-node。属性文件
定位ha节点。属性下的每个节点中的属性文件$ ARTIFACTORY_HOME /等
并注释掉或删除以下条目,否则Artifactory将根据您先前配置到共享文件系统的路径继续写入。
artifactory.ha.data。dir = / var / opt / jfrog / artifactory-ha artifactory.ha.backup.dir = / var / opt / jfrog / artifactory-backup
将数据复制到新位置
一旦验证了配置文件已正确同步,就可以开始迁移数据了。下面的小节描述了如何为三个用例迁移数据概述以上。
用例1:NFS→本地FS
对于这个用例,我们首先需要确保每个节点上有足够的可用存储来容纳my中的数据量/数据
文件夹和所需的冗余。一般情况下,您需要遵循以下公式:
最大存储*冗余度<所有节点可用的总空间
例如,
- 如果您希望环境中的最大存储空间为100年结核病
- 你的冗余是2
- 你有4个节点在你的集群中,
那么每个节点应该至少有50个结核病可用的存储空间。
对于N的冗余,将数据从NFS复制到集群中的N个节点。
例如,对于2的冗余,假设您有两个分别名为“Node1”和“Node2”的节点,复制$ CLUSTER_HOME / ha-data
文件夹到美元ARTIFACTORY_HOME /数据
文件夹,分别放在Node1和Node2上。
优化文件的分发
根据所需的冗余将文件存储复制到N个节点中的每个节点后,我们建议调用优化系统存储REST API端点,以便通过在集群中的所有节点之间平衡存储来优化存储。
用例2:NFS最终+ S3:→本地FS最终+ S3
这个用例指的是使用S3作为持久存储,但同样适用于其他云对象存储提供商,如GCS、CEPH、OpenStack和其他受支持的供应商。
在这个用例中,您只需要确保存在没有文件最终
NFS的文件夹。如果有文件仍然存在,应该将它们移动到云存储提供商的桶中,或者移动到其中一个节点的桶中。最终
文件夹中。
用例3:NFS→本地FS最终+ S3
将单个安装的文件存储库迁移到S3通常是一项艰巨的任务自动程序但是,在从NFS移动HA文件存储的情况下,由于文件夹结构发生了变化,因此自动过程不起作用。
在本例中,您需要复制下面的数据$ CLUSTER_HOME / ha-data从您的NFS存储到您的云存储提供商(这里也支持用例2中描述的其他提供商)上的存储桶,同时确保没有文件留在_queue
或_pre
节点本地文件系统上最终二进制提供程序的文件夹。
配置binarystore.xml
在此步骤中,您需要配置binarstore .xml以匹配您在用例中选择的设置。注意,上面的三个用例使用了两种最终配置中的一种:
所有数据都存储在集群节点的本地文件系统中(这里标记为当地FS)
集群节点使用集群节点的本地文件系统作为最终的二进制提供程序,数据持久地存储在S3上(这里标记为本地FS最终+ S3)
节点停机时间
要修改节点的binarstore .xml文件,首先需要优雅地关闭该节点,修改该文件,然后重新启动该节点,以便使新的配置生效
当地FS
在本例中,所有数据都存储在节点的文件系统中。对于这个例子,我们假设:
- 我们有3个节点
- 我们希望冗余= 1
要完成此设置,您需要:
中复制数据
$ CLUSTER_HOME / ha-data
将您的NFS文件共享到美元ARTIFACTORY_HOME /数据
文件夹在其中两个节点上。- 复制完所有数据后,需要将binarstore .xml放在
$ ARTIFACTORY_HOME /等
每个集群节点的。 - 最后,您需要优雅地重新启动每个节点,以使更改生效。
优化冗余存储
在重新启动系统之后,您可以使用REST API触发优化,以便所有三个节点都被用于冗余。详情请参阅优化系统存储。
例子
在这个用例中,如果您使用的是默认文件系统模板之一,那么迁移之前与NFS一起使用的binarstore .xml将如下所示。
迁移数据之后,将新的binarstore .xml放在每个集群节点上,您可以使用集群文件系统模板。
虽然您不需要配置其他任何东西,但这就是集群文件系统模板看起来像:
冗余宽大处理
的下面的配置中添加lenientLimit参数sharding-cluster提供者配置:
1 < lenientLimit > < / lenientLimit >
如果没有这个参数,当集群中的活动节点数量低于指定的冗余时,Artifactory将不接受工件部署。
local remote crossNetworkStrategy crossNetworkStrategy 2
本地FS最终+ S3
在本例中,数据使用一个最终二进制提供程序临时存储在每个节点的文件系统上,然后传递到S3对象存储以进行持久存储。
在这个用例中,binarstore .xml在迁移之前使用NFS作为缓存,并最终使用S3上的对象存储,如果您使用的是S3模板,将如下所示。
将文件存储库迁移到S3(并停止使用NFS)之后,您的binarystore.xml
应该使用cluster-s3
模板如下:
的cluster-s3
模板看起来像这样:
冗余宽大处理
的下面的配置中添加lenientLimit参数sharding-cluster提供者配置:
1 < lenientLimit > < / lenientLimit >
如果没有这个参数,当集群中的活动节点数量低于指定的冗余时,Artifactory将不接受工件部署。
crossNetworkStrategy crossNetworkStrategy 2remote local http://s3.amazonaws.com [在此输入identity] [输入CREDENTIALS . [在这里输入路径] [在这里输入桶名]
因为您必须使用特定于您的帐户的参数配置s3提供程序(但可以将所有其他提供程序保留推荐值),如果您选择使用此模板,那么您的s3提供程序binarystore.xml
配置文件应该是这样的:
http://s3.amazonaws.com [ENTER identity HERE] [ENTER CREDENTIALS HERE] [ENTER path HERE] [ENTER BUCKET NAME HERE]
测试您的配置
要测试您的配置,您可以简单地将工件部署到Artifactory,然后检查您的持久存储(是否在您的云提供商的节点文件系统上),并验证工件是否已正确存储。