Compression Function Testing

For compression function testing:

  • Compression is available per volume.
  • Lightbits can support a compression ratio of up to 4:1. Our TCO models target a 2:1 compression ratio.
  • Lightbits uses LZ4 and we compress every 4KB block independently. LZ4 is a well known algorithm, which has a good balance between compression ratio and performance (compression speed/decompression speed).

Test Case

  1. Create two new volumes: one with compression=true and one with compression=false.
  2. Use FIO to perform random write operations on the two new volumes on the client server.
  3. From the Lightbits cluster, check the ratio of capacity and physical use of the newly created volume, and calculate the compression ratio.
  4. Record the performance data of the client server performing IO on two different disks, and compare the performance differences.

To do this, first run a quick cleanup process to delete previously used volumes (to start fresh):

  1. From the client server, disconnect previously used NVMe devices. Note that this is not mandatory; it’s only to see a clean and fresh process.
Bash
Copy

After the NVMe disconnection, no old NVMe devices will be attached.

Bash
Copy
  1. Delete volumes from the Lightbits cluster, until you have no volumes:
Bash
Copy

Example

lbcli delete volume --name=1vol --project-name=default

Repeat this command until you have no volumes retrieved on the Lightbits cluster.

Create two new volumes: 1 with compression=true and 1 with compression=false.

No compression:

Bash
Copy

With compression:

Bash
Copy

Check that the volumes are created:

Bash
Copy

Sample Output

Bash
Copy

From the client server, connect to the newly-created volumes and check that the new 30 Gib NVMe (compressed) and 50 Gib NVMe (not compressed) are attached, with lsblk:

Get and copy cluster NQN:

Bash
Copy

Sample Output

Bash
Copy

Connect to the volume to attach the NVMe device to the client (this can be executed with a simple ‘for’ loop as well.)

Bash
Copy

Check that the volumes are mapped:

Bash
Copy

Sample Output

Bash
Copy

Use FIO to perform random write operations on the two new volumes on the client server.

Create a file named job-file:

Bash
Copy

Paste the contents of the following code snippet into the file:

Bash
Copy

Run FIO Jobs:

Bash
Copy

Check the size of the volumes on the Lightbits node:

Bash
Copy

You should see that the volume with compression has less physical space used than the volume without compression.

Type to search, ESC to discard
Type to search, ESC to discard
Type to search, ESC to discard