This topic describes how to create LifeKeeper resources for protected services and applications.

Note: Be sure to create a communication path first (refer to LKCLI Communication Path Creation and Deletion).

Creating File System Resources

The steps for creating file system resources are described below. File system resources provide the capability to switch file systems on shared storage between cluster nodes.

System Configuration

The environment created in this guide is a two-node configuration as shown below.

To create file system resources, the following conditions must be satisfied:

  • Shared storage (e.g., iSCSI, Fibre Channel) is physically connected to each node
  • A file system has been created using a utility such as mkfs
  • The file system can be mounted/unmounted on each node

Perform the following steps on target1

  1. Mounting a file system
    Mount a file system for which you want to create a file system resource.
    In the example, /dev/sdb1 is mounted on /mnt/fs. The mount point is /mnt/fs.
[target1]# df
Filesystem              1K-blocks    Used Available Use% Mounted on
/dev/mapper/centos-root  14034944 6904924   7130020  50% /
devtmpfs                   929204       0    929204   0% /dev
tmpfs                      941312       0    941312   0% /dev/shm
tmpfs                      941312   25948    915364   3% /run
tmpfs                      941312       0    941312   0% /sys/fs/cgroup
/dev/sda1                  1038336 148528    889808  15% /boot
tmpfs                      188264       0    188264   0% /run/user/0
/dev/sdb1                  1044132  32992   1011140   4% /mnt/fs
  1. Creating a resource
    Run the following command.
[target1]# lkcli resource create fs --tag fs-tag --mountpoint /mnt/fs

Resource Settings

Item Input Value
--tag Tag name
--mountpoint Mount point
  1. Extending a resource
    Run the following command.
[target1]# lkcli resource extend fs --tag fs-tag --dest target2

Resource Settings

*Item Input Value
--tag Tag name of the created resource
--dest Backup node name
  1. Checking the resource
    After creating and extending the resource, run the following command.
    The resource information is displayed.
[target1]# lkcli status -q
 
LOCAL   TAG           ID                                   STATE     PRIO  PRIMARY
target1 fs-tag        /mnt/fs                              ISP          1  target1
target1  device28856  36000c292eb0c693b2efb44ed56556636-1  ISP          1  target1
target1   disk28786   36000c292eb0c693b2efb44ed56556636    ISP          1  target1

When you create a file system resource, multiple resources are automatically created with dependencies as shown above.


Creating IP Resources

This section describes how to create an IP resource.
The IP resource creates and protects a virtual IP address that can be switched between cluster nodes.

System Configuration

The environment created in this guide is a two-node configuration as shown below.

Prepare a virtual IP address that can be pinged (10.1.6.100 in the above figure).
Also prepare a system that can be pinged (10.1.6.90 in the above).

Check for a ping response using the following command:

# ip -4 addr add 10.1.6.100/24 dev ens192
 
# ping -c3 -I 10.1.6.100 10.1.6.90

There should be a ping response.

Once the ping response is verified, remove the IP address from the interface.

# ip -4 addr delete 10.1.6.100/24 dev ens192

Restrictions:

  • Make sure that the virtual IP address you are trying to create is unique.
  • Make sure that there is a system (other than the cluster nodes) that can respond to pings on the same network as the virtual IP address.

Note: IP resources use ping to validate the health of the network. Therefore, you need a system outside the cluster that can respond to pings.

Perform the following steps on target1

  1. Creating a resource
    Execute the following command:
[target1]# lkcli resource create ip --tag ip-tag --ipaddr 10.1.6.100 

Resource Settings

Item Input Value
--tag Tag name
--ipaddr Virtual IP address
  1. Configuring a ping list
    Run the following command to configure a ping list.
[target1]# lkcli resource config ip --tag ip-tag --pinglist 10.1.6.90

Then bring the resource in service.

[target1]# lkcli resource restore --tag ip-tag
  1. Extending a resource
    Execute the following command:
[target1]# lkcli resource extend ip --tag ip-tag --dest target2

Resource Settings

Item Input Value
--tag Tag name of the created resource
--dest Backup node name
  1. Setting up a ping list for the extended resource
    Run the following command to set up a ping list for the extended resource as well.
[target1]# lkcli resource config ip --tag ip-tag --pinglist 10.1.6.90 --remote target2
  1. Checking the resource
    After creating and extending the resource, run the following command.
    The resource information is displayed.
[target1]# lkcli status -q
LOCAL    TAG     ID             STATE     PRIO  PRIMARY
target1  ip-tag  IP-10.1.6.100  ISP          1  target1

 

Creating a PostgreSQL Resource

This section describes how to create a PostgreSQL resource. The PostgreSQL resource provides the functionality to protect PostgreSQL database instances on LifeKeeper nodes.

System Configuration

The environment created in this guide is a two-node configuration as shown below.

Install PostgreSQL ARK in advance.

The environment in this guide is PostgreSQL

  • PostgreSQL 9.2.24 is used in this guide.
  • Create a PostgreSQL data directory in the file system on the shared storage.
  • The PostgreSQL database admin user should use the “postgres” created when the database is initialized.
  • Protect a PostgreSQL resource instance with an active/standby configuration.

*Make sure that your system does not fall under any of file system restrictions. See (LifeKeeper Core – Known Issues / Restrictions) for details.

Perform the following steps on target1 and target2

  1. Installing PostgreSQL
    After installing, disable the autostart of the PostgreSQL service as follows:
# systemctl disable postgresql.service

Perform the following steps on target1

  1. Mounting the file system
    Mount the file system in which the data directory will be created, refer to Step 1 in Creating file system resources.
  1. Creating a data directory
    Create a PostgreSQL data directory on the shared disk.
[target1]# mkdir -p /mnt/fs/pgsql/data
[target1]# chown -R postgres:postgres /mnt/fs/pgsql

Change the following path described in the /usr/lib/systemd/system/postgresql.service file to the data directory on the shared disk.

Environment=PGDATA=/mnt/fs/pgsql/data

  1. Database initialization
    Execute the following command to initialize the database.
    The database is created under the data directory.
[target1]# postgresql-setup initdb
  1. Starting the PostgreSQL service
    Execute the following command to start the PostgreSQL service.
[target1]# systemctl start postgresql.service
  1. Creating a resource
    Execute the following command:
[target1]# lkcli resource create pgsql --tag pgsql-tag --datadir /mnt/fs/pgsql/data --port 5432 --socket /tmp/.s.PGSQL.5432 --dbuser postgres --logfile /tmp/pgsql-5432.lk.log

Resource Settings

Item Input Value
--tag Tag name
--datadir Absolute path of the directory that contains the PostgreSQL database data
--port Port number used by PostgreSQL
--socket Path of the socket used by PostgreSQL
--dbuser PostgreSQL database administrator user name
--logfile Absolute path to the pg_ctl log file used to start and stop PostgreSQL
  1. Extending the resource
    Execute the following command:
[target1]# lkcli resource extend pgsql --tag pgsql-tag --dest target2

Resource Settings

Item Input Value
--tag Tag name of the created resource
--dest Backup node name
  1. Checking the resource
    After creating and extending the resource, run the following command.
    The resource information is displayed.
[target1]# lkcli status -q
LOCAL    TAG            ID                                   STATE     PRIO  PRIMARY
target1  pgsql-tag      target1.pgsql-5432                   ISP          1  target1
target1   /mnt/fs       /mnt/fs                              ISP          1  target1
target1    device17885  36000c292eb0c693b2efb44ed56556636-1  ISP          1  target1
target1     disk17816   36000c292eb0c693b2efb44ed56556636    ISP          1  target1

When a PostgreSQL resource is created, a file system resource is automatically created as shown above.

Creating a DataKeeper Resource

This section describes how to create a DataKeeper resource. DataKeeper resources provide the ability to build highly available clusters without the use of shared storage.

System Configuration

The environment created in this guide has the following two-node configuration. Create a mirror on your new file system and protect it with LifeKeeper.

Make sure that your configuration satisfies the following DataKeeper requirements.
Hardware and Software Requirements

Perform the following steps on “target1” and “target2”

  1. Checking the device
# parted /dev/sdb print
Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 1074MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
 
Number  Start  End  Size  File system  Name  Flags
  1. Creating a partition
    Create a partition in /dev/sdb of the device.
# parted -s /dev/sdb mklabel gpt
# parted /dev/sdb mkpart primary 0% 100%
# parted /dev/sdb print
Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 1074MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
 
Number  Start   End     Size    File system  Name     Flags
 1      1049kB  1073MB  1072MB  ext4         primary

Perform the following steps on the “target1”

  1. Creating a resource
    Execute the following command:
[target1]# lkcli resource create dk --tag dk-tag --mode synchronous --hierarchy new --device /dev/sdb1 --fstype xfs --mount_point /mnt/dk --fstag fs-tag

Resource settings

Item Input Value
--tag DataKeeper resource tag name
--mode Replication type
--hierarchy Type of data replication to create
--device Source disk or partition
--fstype File system type
--mount_point Mount point
--fstag File system resource tag name
  1. Extending a DataKeeper resource
    Execute the following command:
[target1]# lkcli resource extend dk --tag dk-tag --dest target2 --mode synchronous --laddr 10.1.6.88 --raddr 10.1.6.89

Resource settings

Item Input Value
--tag Tag name of the created DataKeeper resource
--dest The hostname of the target server where the resource hierarchy is extended
--mode Replication type
--laddr IP address on the local machine to be set for the communication path
--raddr IP address on the remote machine to be set for the communication path
  1. Extending a file system resource
    Execute the following command:
[target1]# lkcli resource extend fs --tag fs-tag --dest target2

Resource settings

Item Input Value
--tag Tag name of the created file system resource
--dest The hostname of the target server where the resource hierarchy is extended
  1. Checking the resource
    After creating and expanding the resource, run the following command.
    The resource information is returned.
[target1]# lkcli status -q
 
LOCAL   TAG           ID                                   STATE     PRIO  PRIMARY
target1 fs-tag        /mnt/dk                              ISP          1  target1
target1  dk-tag       36000c292eb0c693b2efb44ed56556636-1  ISP          1  target1

A DataKeeper resource is automatically created with the file system resource dependent on the upper level as shown above.

  1. Check the mirroring
    Once the DataKeeper resource has been created, a full resync will be performed.
    When the status is Fully Operational, the full resync is completed.
[target1]# lkcli mirror status --tag dk-tag

Resource settings

Item Input Value
--tag Tag name of the created DataKeeper resource

Export/Import a DataKeeper Resource

Refer to Replicate the Existing Cluster Settings to replicate the DataKeeper resource and the file system resource. Execute import with the file system unmounted on each node.

Feedback

Was this helpful?

Yes No
You indicated this topic was not helpful to you ...
Could you please leave a comment telling us why? Thank you!
Thanks for your feedback.

Post your comment on this topic.

Post Comment

Cassius Rhue wrote: Apr 20, 2021

Should we have sub headings for each resource type for easier navigation? If someone wants to look for a specific type of resource they will have to scroll through the list or use search, which might turn up more inaccurate hits.