跳到元数据的末尾
转到元数据的开始

概述

在版本5.0之前,人工HA安装将二进制文件和配置文件存储在NFS挂载上。这个坐骑是由CLUSTER_HOME美元文件夹,用于同步集群节点之间的配置和二进制文件。从5.0版本开始,您可以选择将二进制文件迁移到其他存储,这具有以下优点:

  • 文件存储可以分布在集群节点之间,也可以分布在云存储提供商(S3)上。
  • 网络限制(如文件大小限制)不再影响文件存储
  • 集群节点不需要访问一个中心位置
  • 从NFS中删除后,二进制文件将以冗余方式存储在集群分片配置中

此页是为从版本4升级了Artifactory HA安装的用户指定的。版本5.x。在升级过程中,所有配置文件都已迁移到数据库,并将在数据库中进行同步和管理,但是,这些安装中的数据仍然存储在NFS挂载中$ CLUSTER_HOME / ha-data文件夹,使您仍然依赖于NFS。虽然您可以继续在此模式下操作,但您还可以选择将数据迁移到替代存储并删除NFS挂载。

迁移数据是可选的。NFS仍然受支持。

虽然从NFS迁移数据具有上述优点,但这是可选的。Artifactory 5仍然支持HA集群将其数据存储在NFS上。

本页上的说明描述了如何将二进制数据从$ CLUSTER_HOME / ha-data文件夹,允许您完全删除该挂载。我们将介绍三个主要用例:

用例
初始状态
最终状态
1
NFS:
所有数据都存储在NFS上

当地FS:
所有数据都存储在每个节点的本地文件系统中

2
NFS final + S3:
NFS作为最终二进制提供程序之前复制数据转移到S3进行持久对象存储
本地FS终端+ S3:
每个节点的本地文件系统用作最终二进制提供程序然后将数据复制到S3用于持久对象存储
3.
NFS:
所有数据都存储在NFS上
本地FS终端+ S3:
每个节点的本地文件系统用作
最终二进制提供程序之前复制数据转移到S3进行持久对象存储

对于所有这些用例,一旦迁移完数据,就可以完全删除NFS挂载。

页面内容


配置迁移

在将数据从NFS迁移出去之前,请确保HA集群中的所有节点都已启动并运行。然后,要为上述用例配置数据迁移,请遵循以下过程:

  1. 验证版本
  2. 验证配置文件是否同步
  3. 编辑ha-node.properties文件
  4. 将数据复制到新位置
  5. 配置binarystore.xml来匹配你的设置
  6. 测试配置

验证版本

在继续传输数据之前,需要验证所有集群节点都安装了完全相同的版本(必须是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
此文件包含用于加密和解密用于同步集群节点的文件的密钥它在每个集群节点上应该是相同的。

ha-node.properties
每个节点仍应按照中所述配置该文件创建ha-node.properties
db.properties
这个文件是在Artifactory 5.0中引入的,它定义了到数据库的连接。中的密钥对该文件中指定的密码加密communication.key文件。它在每个集群节点中应该是相同的。
binarystore.xml
该文件打开了一整套选项,可以在没有NFS的情况下配置二进制存储。根据您希望如何存储二进制文件,它将包含二进制提供程序配置。对于上面描述的每个用例,您可以在下面找到相应的二进制提供程序配置配置binarystore.xml
communication.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  2    remote  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,然后检查您的持久存储(是否在您的云提供商的节点文件系统上),并验证工件是否已正确存储。

  • 没有标签