9.4 KiB
title | description | aliases | menu | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Migrate InfluxDB OSS instances to InfluxDB Enterprise clusters | Migrate a running instance of InfluxDB open source (OSS) to an InfluxDB Enterprise cluster. |
|
|
Migrate a running instance of InfluxDB open source (OSS) to an InfluxDB Enterprise cluster.
Prerequisites
- An InfluxDB OSS instance running InfluxDB {{< latest-patch >}} or later.
- An InfluxDB Enterprise cluster running InfluxDB Enterprise {{< latest-patch >}} or later
- Network accessibility between the OSS instances and all data and meta nodes.
{{% warn %}} Migrating does the following:
- Deletes data in existing InfluxDB Enterprise data nodes
- Transfers all users from the OSS instance to the InfluxDB Enterprise cluster
- Requires downtime for the OSS instance {{% /warn %}}
To migrate to InfluxDB Enterprise
Complete the following tasks:
- Upgrade to InfluxDB {{< latest-patch >}} or later
- Set up InfluxDB Enterprise meta nodes
- Set up InfluxDB Enterprise data nodes
- Upgrade the InfluxDB binary on your OSS instance
- Add the upgraded OSS instance to the InfluxDB Enterprise cluster
- Add existing data nodes back to the cluster
- Rebalance the cluster
Upgrade to InfluxDB {{< latest-patch >}} or later
InfluxDB {{< latest-patch >}} (both OSS and Enterprise) fixed an issue that prevented upgrading an InfluxDB OSS instance to InfluxDB Enterprise successfully. Upgrade to InfluxDB {{< latest-patch >}} or later before proceeding.
- [Upgrade InfluxDB OSS](/{{< latest "influxdb" "v1" >}}/administration/upgrading/)
- Upgrade InfluxDB Enterprise
Set up InfluxDB Enterprise meta nodes
Set up all meta nodes in your InfluxDB Enterprise cluster. For information about installing and setting up meta nodes, see Install meta nodes.
{{% note %}}
Add the OSS instance to the meta /etc/hosts files
When modifying the /etc/hosts
file
on each meta node, include the IP and host name of your InfluxDB OSS instance so
meta nodes can communicate with the OSS instance.
{{% /note %}}
Set up InfluxDB Enterprise data nodes
If you don't have any existing data nodes in your InfluxDB Enterprise cluster, skip to the next step.
For each existing data node:
-
Remove the data node from the InfluxDB Enterprise cluster
From a meta node in your InfluxDB Enterprise cluster, run:
influxd-ctl remove-data <data_node_hostname>:8088
-
Delete existing data
On each data node dropped from the cluster, run:
sudo rm -rf /var/lib/influxdb/{meta,data,hh}
-
Recreate data directories
On each data node dropped from the cluster, run:
sudo mkdir /var/lib/influxdb/{data,hh,meta}
-
Ensure file permissions are correct
On each data node dropped from the cluster, run:
sudo chown -R influxdb:influxdb /var/lib/influxdb
-
Update the
/etc/hosts
fileOn each data node, add the IP and hostname of the OSS instance to the
/etc/hosts
file to allow the data node to communicate with the OSS instance.
Upgrade the InfluxDB OSS instance to InfluxDB Enterprise
-
Stop all writes to the InfluxDB OSS instance
-
Stop the
influxdb
service on the InfluxDB OSS instance{{< code-tabs-wrapper >}} {{% code-tabs %}} sysvinit systemd {{% /code-tabs %}} {{% code-tab-content %}}
sudo service influxdb stop
{{% /code-tab-content %}}
{{% code-tab-content %}}
sudo systemctl stop influxdb
{{% /code-tab-content %}}
{{< /code-tabs-wrapper >}}
Double check that the service is stopped. The following command should return nothing:
```bash
ps ax | grep influxd
```
-
Remove the InfluxDB OSS package
{{< code-tabs-wrapper >}} {{% code-tabs %}} Debian & Ubuntu RHEL & CentOS {{% /code-tabs %}} {{% code-tab-content %}}
sudo apt-get remove influxdb
{{% /code-tab-content %}}
{{% code-tab-content %}}
sudo yum remove influxdb
{{% /code-tab-content %}}
{{< /code-tabs-wrapper >}}
-
Back up your InfluxDB OSS configuration file
If you have custom configuration settings for InfluxDB OSS, back up and save your configuration file. Without a backup, you'll lose custom configuration settings when updating the InfluxDB binary.
-
Update the InfluxDB binary
Updating the InfluxDB binary overwrites the existing configuration file. To keep custom settings, back up your configuration file.
{{< code-tabs-wrapper >}} {{% code-tabs %}} Debian & Ubuntu RHEL & CentOS {{% /code-tabs %}} {{% code-tab-content %}}
wget https://dl.influxdata.com/enterprise/releases/influxdb-data_{{< latest-patch >}}-c{{< latest-patch >}}_amd64.deb
sudo dpkg -i influxdb-data_{{< latest-patch >}}-c{{< latest-patch >}}_amd64.deb
{{% /code-tab-content %}}
{{% code-tab-content %}}
wget https://dl.influxdata.com/enterprise/releases/influxdb-data-{{< latest-patch >}}_c{{< latest-patch >}}.x86_64.rpm
sudo yum localinstall influxdb-data-{{< latest-patch >}}_c{{< latest-patch >}}.x86_64.rpm
{{% /code-tab-content %}}
{{< /code-tabs-wrapper >}}
-
Update the configuration file
In
/etc/influxdb/influxdb.conf
, set:-
hostname
to the full hostname of the data node -
license-key
in the[enterprise]
section to the license key you received on InfluxPortal ORlicense-path
in the[enterprise]
section to the local path to the JSON license file you received from InfluxData.{{% warn %}} The
license-key
andlicense-path
settings are mutually exclusive and one must remain set to an empty string. {{% /warn %}}
# Hostname advertised by this host for remote addresses. # This must be accessible to all nodes in the cluster. hostname="<data-node-hostname>" [enterprise] # license-key and license-path are mutually exclusive, # use only one and leave the other blank license-key = "<your_license_key>" license-path = "/path/to/readable/JSON.license.file"
{{% note %}} Transfer any custom settings from the backup of your OSS configuration file to the new Enterprise configuration file. {{% /note %}}
-
-
Update the
/etc/hosts
fileAdd all meta and data nodes to the
/etc/hosts
file to allow the OSS instance to communicate with other nodes in the InfluxDB Enterprise cluster. -
Start the data node
{{< code-tabs-wrapper >}} {{% code-tabs %}} sysvinit systemd {{% /code-tabs %}} {{% code-tab-content %}}
sudo service influxdb start
{{% /code-tab-content %}}
{{% code-tab-content %}}
sudo systemctl start influxdb
{{% /code-tab-content %}}
{{< /code-tabs-wrapper >}}
Add the new data node to the cluster
After you upgrade your OSS instance to InfluxDB Enterprise, add the node to your Enterprise cluster.
From a meta node in the cluster, run:
influxd-ctl add-data <new-data-node-hostname>:8088
It should output:
Added data node y at new-data-node-hostname:8088
Add existing data nodes back to the cluster
If you removed any existing data nodes from your InfluxDB Enterprise cluster, add them back to the cluster.
From a meta node in the InfluxDB Enterprise cluster, run the following for each data node:
influxd-ctl add-data <the-hostname>:8088
It should output:
Added data node y at the-hostname:8088
Verify that all nodes are now members of the cluster as expected:
influxd-ctl show
Once added to the cluster, InfluxDB synchronizes data stored on the upgraded OSS node with other data nodes in the cluster. It may take a few minutes before the existing data is available.
Rebalance the cluster
- Use the ALTER RETENTION POLICY
statement to increase the replication factor
on all existing retention polices to the number of data nodes in your cluster.
Note: The number of data nodes in a cluster must be evenly divisible by the replication factor. For example, a replication factor of 2 works with 2, 4, 6, or 8 data nodes. A replication factor of 3 works with 3, 6, or 9 data nodes.
- Rebalance your cluster manually to meet the desired replication factor for existing shards.
- If you were using [Chronograf](/{{< latest "chronograf" >}}/), add your Enterprise instance as a new data source.