FR EN

TUTORIAL: Extend SERVERware Mirror/Cluster storage

Estimated reading: 7 minutes

Adding storage capacity is an essential step to meet the growing needs of your data and ensure business continuity. In this guide, we will explore the process of expanding storage by adding two identical disks, while preserving redundancy to ensure system reliability. 

Carefully follow each step to optimize and maintain the performance of your SERVERware infrastructure.

Let's begin with the hardware side. You need to insert "2" identical storage devices into the empty bay of the storage host (1 in each server). To maintain storage redundancy, adding 2 identical devices is always preferred, thereby extending the storage as a redundant network.

Let's now move on to the software part:
Use the following command to view the current configuration of the storage pool: zpool status.

zpool status pool: NETSTOR state: ONLINE scan: resilvered 728M in 0h0m with 0 errors on Tue Dec 6 16:13:09 2016 config: NAME STATE READ WRITE CKSUM NETSTOR ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 SW3-NETSTOR-SRV1-1 ONLINE 0 0 0 SW3-NETSTOR-SRV2-1 ONLINE 0 0 0 errors: No known data errors

In the system example, we currently have "2" storage units in the NETSTOR pool, configured as a mirror under the name mirror-0.

Once we have gathered information about the existing storage devices, we can proceed with formatting and partitioning the new disks.

It is essential to create a partition table on these new storage devices, which will then be combined into mirror-1 within the same NETSTOR pool…

In order to find out the block name assigned by the system to the new storage device, please use the following command ls.

Notice line 11; in our example, this is the name of the new block:

ls -lah /dev/disk/by-id drwxr-xr-x 2 root root 400 Srp 24 13:42 . drwxr-xr-x 8 root root 160 Srp 24 13:28 .. lrwxrwxrwx 1 root root 9 Srp 24 13:30 ata-INTEL_SSDSC2BB080G4_BTWL3405084Y080KGN -> ../../sda lrwxrwxrwx 1 root root 10 Srp 24 13:30 ata-INTEL_SSDSC2BB080G4_BTWL3405084Y080KGN-part1 -> ../../sda1 lrwxrwxrwx 1 root root 10 Srp 24 13:30 ata-INTEL_SSDSC2BB080G4_BTWL3405084Y080KGN-part2 -> ../../sda2 lrwxrwxrwx 1 root root 10 Srp 24 13:30 ata-INTEL_SSDSC2BB080G4_BTWL3405084Y080KGN-part9 -> ../../sda9 lrwxrwxrwx 1 root root 9 Srp 24 13:30 ata-ST31000520AS_5VX0BZPV -> ../../sdb lrwxrwxrwx 1 root root 10 Srp 24 13:30 ata-ST31000520AS_5VX0BZPV-part1 -> ../../sdb1 lrwxrwxrwx 1 root root 9 Srp 24 13:42 ata-WDC_WD10JFCX-68N6GN0_WD-WXK1E6458WKX -> ../../sdd lrwxrwxrwx 1 root root 9 Srp 24 13:30 scsi-360000000000000000e00000000010001 -> ../../sdc lrwxrwxrwx 1 root root 10 Srp 24 13:30 scsi-360000000000000000e00000000010001-part1 -> ../../sdc1 lrwxrwxrwx 1 root root 9 Srp 24 13:42 wwn-0x11769037186453098497x -> ../../sdd lrwxrwxrwx 1 root root 9 Srp 24 13:30 wwn-0x3623791645033518541x -> ../../sda lrwxrwxrwx 1 root root 10 Srp 24 13:30 wwn-0x3623791645033518541x-part1 -> ../../sda1 lrwxrwxrwx 1 root root 10 Srp 24 13:30 wwn-0x3623791645033518541x-part2 -> ../../sda2 lrwxrwxrwx 1 root root 10 Srp 24 13:30 wwn-0x3623791645033518541x-part9 -> ../../sda9 lrwxrwxrwx 1 root root 9 Srp 24 13:30 wwn-0x60000000000000000e00000000010001 -> ../../sdc lrwxrwxrwx 1 root root 10 Srp 24 13:30 wwn-0x60000000000000000e00000000010001-part1 -> ../../sdc1 lrwxrwxrwx 1 root root 9 Srp 24 13:30 wwn-0x9104338722358317056x -> ../../sdb lrwxrwxrwx 1 root root 10 Srp 24 13:30 wwn-0x9104338722358317056x-part1 -> ../../sdb1

Now that we have the block name, we can create a table, a partition, and prepare the disk for use.

  • The other option is to read the serial number from the server's KVM console, which also contains information about the bay used for the device.
  • Assuming you know the SERIAL of the new storage device, you can use this command to obtain the serial numbers of the block devices and compare them, from the console: udevadm info –query=all –name=/dev/sdx | grep ID_SERIAL
  • The SERVERware installation wizard has information about the matrix that includes the serial numbers of the storage devices already used in the pool.

We are now going to create a partition table and a label:

Use parted to create a partition table for a new logical drive:

parted /dev/ --script -- mktable gpt

Now create a new label.

Thus, in our example (SW3-NETSTOR-SRV1-2):

  • SW3-NETSTOR-SRV1 – this is the virtual disk on SERVER 1
  • -2 is the disk number (disk 2)

Now add a label to the new disk.

In our example:

parted /dev/ --script -- mkpart "SW3-NETSTOR-SRV1-2" 1 -1 

Now update the SERVERware configuration file to determine which block device to use.

Edit the configuration file to add the location of the secondary disk:

nano /etc/sysmonit/mirror.cfg 

Add a new storage name separated by commas after the existing storage name.

In our example, this will be:

"SW3-NETSTOR-SRV1-1", "SW3-NETSTOR-SRV1-2"

In our example, the file then looks like this (lines 23 & 33):

{ "name": "ComaA", "timeout": 15, "virtaul_ifaces": [ { "name": "br0", "address": "192.168.200.22" }, { "name": "bondSAN", "address": "192.168.20.22" } ], "storage": { "pool_name": "NETSTOR", "nodes": [ { "id": "9b41c9b2ee1cb5eb47917f4d301cf9aa", "address": "2.2.2.20", "port": 4420, "nvme_targets": [ "SW3-NETSTOR-SRV1-1", "SW3-NETSTOR-SRV1-2" ], "subsystem": "sw-mirror" }, { "id": "13da151e3e1e486959db9c08dcb76458", "address": "2.2.2.21", "port": 4420, "nvme_targets": [ "SW3-NETSTOR-SRV2-1", "SW3-NETSTOR-SRV2-2" ], "subsystem": "sw-mirror" } ] } 

Edit the file and apply the change (CTRL+O & CTRL+X).

We now need to export this new storage over the network so that the primary server can see the new device.

In our example:

sw-nvme expand-pool --path /dev/disk/by-id/ata-WDC_WD10JFCX-68N6GN0_WD-WXK1E6458WKX

When the same steps are performed on the primary storage server, we continue to add new storage spaces to the NETSTOR pool.

We can see the state of the zpool:

zpool status pool: NETSTOR state: ONLINE scan: scrub in progress since Wed Dec 9 16:08:22 2020 1,72G scanned at 587M/s, 28,5K issued at 9,50K/s, 114G total 0B repaired, 0,00% done, no estimated completion time config: NAME STATE READ WRITE CKSUM NETSTOR ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 SW3-NETSTOR-SRV1-1 ONLINE 0 0 0 SW3-NETSTOR-SRV2-1 ONLINE 0 0 0 errors: No known data errors

We now need to add new logical drives to our pool.


You must be careful with this command. Verify the logical drive names to make sure you have the correct name.

zpool add NETSTOR mirror /dev/disk/by-partlabel/SW3-NETSTOR-SRV1-2 /dev/disk/by-partlabel/SW3-NETSTOR-SRV2-2 -f
Now, in the zpool, we should see the newly added logical volume:
zpool status pool: NETSTOR state: ONLINE scan: resilvered 728M in 0h0m with 0 errors on Tue Dec 6 16:13:09 2016 config: NAME STATE READ WRITE CKSUM NETSTOR ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 SW3-NETSTOR-SRV1-1 ONLINE 0 0 0 SW3-NETSTOR-SRV2-1 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 SW3-NETSTOR-SRV1-2 ONLINE 0 0 0 SW3-NETSTOR-SRV2-2 ONLINE 0 0 0 errors: No known data errors

You must wait until the zpool has finished its resilvering.

You have now expanded the storage of your SERVERware disk pool.

Share

TUTORIAL: Extend SERVERware Mirror/Cluster storage

Or copy the link below

CONTENT