<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Juletip #1: Increasing I/O throughput by utilizing Logical Volume Manager in Linux in SAS Community Nordic</title>
    <link>https://communities.sas.com/t5/SAS-Community-Nordic/Juletip-1-Increasing-I-O-throughput-by-utilizing-Logical-Volume/m-p/847209#M388</link>
    <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In this Juletip I will show you how you can combine multiple storage volumes into a single logical volume that you can format an mount in Linux.&lt;/P&gt;
&lt;P&gt;Using this technique, I achieve a disk I/O throughput of more than 420-435 MB/s at the file system level using 4 disks compared to around 150-170 MB/s using a single disk.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In my examples, I will use Azure. However, this juletip works just as well on other cloud platforms such as AWS or GCP as well as on premises.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;First, we need to attach the disks.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In Azure Portal, navigate to the VM and then click Disks&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ThomasDamgaard_0-1669879492127.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/77893i34154542D771080C/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ThomasDamgaard_0-1669879492127.png" alt="ThomasDamgaard_0-1669879492127.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This will show the disks attached to your VM&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ThomasDamgaard_1-1669879492131.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/77894i4006712D36BF5E48/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ThomasDamgaard_1-1669879492131.png" alt="ThomasDamgaard_1-1669879492131.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In this case, I only have the OS disk attached.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We will now attach 5 new disks:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ThomasDamgaard_2-1669879492132.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/77895iD3DAB5AE4869784C/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ThomasDamgaard_2-1669879492132.png" alt="ThomasDamgaard_2-1669879492132.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As we can see here, the single 400 GB disk comes with max IOPS of 2300 and max throughput of 150 MB/s.&lt;/P&gt;
&lt;P&gt;So that is one way to add 400 GB storage.&lt;/P&gt;
&lt;P&gt;We also add 4 disks of 100 GB each. These come with max IOPS of 500 and max throughput of 100 MB/s &lt;U&gt;each&lt;/U&gt;.&lt;/P&gt;
&lt;P&gt;While the aggregate IOPS of the 100 GB disks is slightly less than that of the single big disk (2000 vs 2300), the max throughput is significantly bigger (400 MB/s vs 150 MB/s).&lt;/P&gt;
&lt;P&gt;This is exactly the tradeoff we are interested in when running a typical SAS workload because with SAS, raw throughput on sequential I/O is typically more important than IOPS.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now let’s connect to the VM via SSH and login as root.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The command ‘lsblk’ lets us see attached disks:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# lsblk
NAME&amp;nbsp;&amp;nbsp;&amp;nbsp; MAJ:MIN RM&amp;nbsp; SIZE RO TYPE MOUNTPOINT
sda&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 30G&amp;nbsp; 0 disk
├─sda1&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:1&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 29.9G&amp;nbsp; 0 part /
├─sda14&amp;nbsp;&amp;nbsp; 8:14&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 3M&amp;nbsp; 0 part
└─sda15&amp;nbsp;&amp;nbsp; 8:15&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 124M&amp;nbsp; 0 part /boot/efi
sdb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:16&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk
sdc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:32&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk
sdd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:48&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk
sde&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:64&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Notice the 4 disks of 100 GB.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;These are the ones that we will combine into a single logical volume.&lt;/P&gt;
&lt;P&gt;Before we can do that, we need to create a partition table on the disks.&lt;/P&gt;
&lt;P&gt;We do that using the cfdisk command:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&amp;nbsp;~# cfdisk /dev/sdb&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We will just create a single partition utilizing all the space on the disk:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Disk: /dev/sdb
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;Size: 100 GiB, 107374182400 bytes, 209715200 sectors
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Label: gpt, identifier: FBFC3E10-FC1A-8647-96BD-618BBC662E38

&amp;nbsp;&amp;nbsp;&amp;nbsp; Device&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Start&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sectors&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Size Type
&amp;gt;&amp;gt;&amp;nbsp; /dev/sdb1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2048&amp;nbsp;&amp;nbsp;&amp;nbsp; 209715166&amp;nbsp;&amp;nbsp;&amp;nbsp; 209713119&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 100G Linux filesystem



&amp;nbsp;┌─────────────────────────────────────────────────────────────────────────────┐
&amp;nbsp;│Partition UUID: 9C66A040-5826-3147-BDDF-1456609BB07D&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │
&amp;nbsp;│Partition type: Linux filesystem (0FC63DAF-8483-4772-8E79-3D69D8477DE4)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │
&amp;nbsp;└─────────────────────────────────────────────────────────────────────────────┘
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ Delete ]&amp;nbsp; [ Resize ]&amp;nbsp; [&amp;nbsp; Quit&amp;nbsp; ]&amp;nbsp; [&amp;nbsp; Type&amp;nbsp; ]&amp;nbsp; [&amp;nbsp; Help&amp;nbsp; ]&amp;nbsp; [&amp;nbsp; Write ]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&amp;nbsp; Dump&amp;nbsp; ]

&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The lsblk command will show us the partition is made:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# lsblk
NAME&amp;nbsp;&amp;nbsp;&amp;nbsp; MAJ:MIN RM&amp;nbsp; SIZE RO TYPE MOUNTPOINT
sda&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 30G&amp;nbsp; 0 disk
├─sda1&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:1&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 29.9G&amp;nbsp; 0 part /
├─sda14&amp;nbsp;&amp;nbsp; 8:14&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 3M&amp;nbsp; 0 part
└─sda15&amp;nbsp;&amp;nbsp; 8:15&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 124M&amp;nbsp; 0 part /boot/efi
sdb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:16&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk
└─sdb1&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:17&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 part
sdc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:32&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk
sdd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:48&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk
sde&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:64&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We will now use sfdisk to copy the partition table onto the remaining 3 disks:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# for disk in /dev/sd[c-e]; do sfdisk -d /dev/sdb | sfdisk --force $disk; done
Checking that no-one is using this disk right now ... OK

Disk /dev/sdc: 100 GiB, 107374182400 bytes, 209715200 sectors
Disk model: Virtual Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Created a new GPT disklabel (GUID: FBFC3E10-FC1A-8647-96BD-618BBC662E38).
/dev/sdc1: Created a new partition 1 of type 'Linux filesystem' and of size 100 GiB.
/dev/sdc2: Done.

New situation:
Disklabel type: gpt
Disk identifier: FBFC3E10-FC1A-8647-96BD-618BBC662E38

Device&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Start&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End&amp;nbsp;&amp;nbsp; Sectors&amp;nbsp; Size Type
/dev/sdc1&amp;nbsp;&amp;nbsp; 2048 209715166 209713119&amp;nbsp; 100G Linux filesystem

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
Checking that no-one is using this disk right now ... OK

Disk /dev/sdd: 100 GiB, 107374182400 bytes, 209715200 sectors
Disk model: Virtual Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Created a new GPT disklabel (GUID: FBFC3E10-FC1A-8647-96BD-618BBC662E38).
/dev/sdd1: Created a new partition 1 of type 'Linux filesystem' and of size 100 GiB.
/dev/sdd2: Done.

New situation:
Disklabel type: gpt
Disk identifier: FBFC3E10-FC1A-8647-96BD-618BBC662E38

Device&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Start&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End&amp;nbsp;&amp;nbsp; Sectors&amp;nbsp; Size Type
/dev/sdd1&amp;nbsp;&amp;nbsp; 2048 209715166 209713119&amp;nbsp; 100G Linux filesystem

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
Checking that no-one is using this disk right now ... OK

Disk /dev/sde: 100 GiB, 107374182400 bytes, 209715200 sectors
Disk model: Virtual Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Created a new GPT disklabel (GUID: FBFC3E10-FC1A-8647-96BD-618BBC662E38).
/dev/sde1: Created a new partition 1 of type 'Linux filesystem' and of size 100 GiB.
/dev/sde2: Done.

New situation:
Disklabel type: gpt
Disk identifier: FBFC3E10-FC1A-8647-96BD-618BBC662E38

Device&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Start&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End&amp;nbsp;&amp;nbsp; Sectors&amp;nbsp; Size Type
/dev/sde1&amp;nbsp;&amp;nbsp; 2048 209715166 209713119&amp;nbsp; 100G Linux filesystem

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We will verify using lsblk:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# lsblk
NAME&amp;nbsp;&amp;nbsp;&amp;nbsp; MAJ:MIN RM&amp;nbsp; SIZE RO TYPE MOUNTPOINT
sda&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 30G&amp;nbsp; 0 disk
├─sda1&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:1&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 29.9G&amp;nbsp; 0 part /
├─sda14&amp;nbsp;&amp;nbsp; 8:14&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 3M&amp;nbsp; 0 part
└─sda15&amp;nbsp;&amp;nbsp; 8:15&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 124M&amp;nbsp; 0 part /boot/efi
sdb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:16&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk
└─sdb1&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:17&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 part
sdc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:32&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk
└─sdc1&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:33&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 part
sdd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:48&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk
└─sdd1&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:49&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 part
sde&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:64&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk
└─sde1&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:65&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 part&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now we need to make these partitions available for LVM. We do that by adding them as physical volumes:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# pvcreate /dev/sd[b-e]1
&amp;nbsp; Physical volume "/dev/sdb1" successfully created.
&amp;nbsp; Physical volume "/dev/sdc1" successfully created.
&amp;nbsp; Physical volume "/dev/sdd1" successfully created.
&amp;nbsp; Physical volume "/dev/sde1" successfully created.&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We can list available physical volumes with the ‘pvs’ command:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# pvs
&amp;nbsp; PV&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VG Fmt&amp;nbsp; Attr PSize&amp;nbsp;&amp;nbsp;&amp;nbsp; PFree
&amp;nbsp; /dev/sdb1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lvm2 ---&amp;nbsp; &amp;lt;100.00g &amp;lt;100.00g
&amp;nbsp; /dev/sdc1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lvm2 ---&amp;nbsp; &amp;lt;100.00g &amp;lt;100.00g
&amp;nbsp; /dev/sdd1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lvm2 ---&amp;nbsp; &amp;lt;100.00g &amp;lt;100.00g
&amp;nbsp; /dev/sde1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lvm2 ---&amp;nbsp; &amp;lt;100.00g &amp;lt;100.00g
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Our logical volume must reside on a volume group. So we will now create a volume group containing the newly created physical volumes:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# vgcreate vg1 /dev/sd[b-e]1

&amp;nbsp; Volume group "vg1" successfully created&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We can list volume groups using the ‘vgs’ command:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# vgs

&amp;nbsp; VG&amp;nbsp; #PV #LV #SN Attr&amp;nbsp;&amp;nbsp; VSize&amp;nbsp;&amp;nbsp; VFree

&amp;nbsp; vg1&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 0 wz--n- 399.98g 399.98g&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We are now ready to create the actual volume group. We will create it using 4 stripes each with a stripe size of 256k:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# lvcreate -i 4 -I 256k -n lv1 -L 399G vg1

&amp;nbsp; Logical volume "lv1" created.

&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We can list logical volumes using the ‘lvs’ command:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# lvs
&amp;nbsp; LV&amp;nbsp;&amp;nbsp; VG&amp;nbsp; Attr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LSize&amp;nbsp;&amp;nbsp; Pool Origin Data%&amp;nbsp; Meta%&amp;nbsp; Move Log Cpy%Sync Convert
&amp;nbsp; lv1&amp;nbsp; vg1 -wi-a----- 399.00g&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Before we can mount and use the logical volume we need to format it with a file system. I am using the XFS filesystem:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# mkfs.xfs /dev/vg1/lv1

meta-data=/dev/vg1/lv1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; isize=512&amp;nbsp;&amp;nbsp;&amp;nbsp; agcount=16, agsize=6537152 blks
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sectsz=4096&amp;nbsp; attr=2, projid32bit=1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;crc=1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finobt=1, sparse=1, rmapbt=0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reflink=1&amp;nbsp;&amp;nbsp;&amp;nbsp; bigtime=0
data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bsize=4096&amp;nbsp;&amp;nbsp; blocks=104594432, imaxpct=25
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sunit=64&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; swidth=256 blks
naming&amp;nbsp;&amp;nbsp; =version 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bsize=4096&amp;nbsp;&amp;nbsp; ascii-ci=0, ftype=1
log&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =internal log&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bsize=4096&amp;nbsp;&amp;nbsp; blocks=51071, version=2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sectsz=4096&amp;nbsp; sunit=1 blks, lazy-count=1
realtime =none&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extsz=4096&amp;nbsp;&amp;nbsp; blocks=0, rtextents=0
Discarding blocks...Done.

&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We are now ready to mount and use the logical volume:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&amp;nbsp;~# mount /dev/vg1/lv1 /saswork/&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Test write speed:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# time head -c 200G /dev/zero | pv &amp;gt; /saswork/zero.dat
&amp;nbsp;200GiB 0:07:50 [ 435MiB/s] [&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;=&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ]

real&amp;nbsp;&amp;nbsp;&amp;nbsp; 7m50.776s
user&amp;nbsp;&amp;nbsp;&amp;nbsp; 0m13.978s
sys&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3m38.363s&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We just wrote 200 GB data with a throughput of &lt;STRONG&gt;435 MB/s.&lt;/STRONG&gt; Not bad.&lt;/P&gt;
&lt;P&gt;Let’s see how fast we can read the file.&lt;/P&gt;
&lt;P&gt;First we drop all cache to ensure that we actually read the file from the storage layer and not just from file system cache in RAM.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# sync ; echo 3 &amp;gt; /proc/sys/vm/drop_caches&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Then we measure read throughput:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# time pv /saswork/zero.dat &amp;gt; /dev/null
&amp;nbsp;200GiB 0:08:00 [ 426MiB/s] [=================================&amp;gt;] 100%


real&amp;nbsp;&amp;nbsp;&amp;nbsp; 8m0.308s
user&amp;nbsp;&amp;nbsp;&amp;nbsp; 0m0.861s
sys&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1m16.904s&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We read the 200 GB file at &lt;STRONG&gt;426 MB/s.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For comparison on a single storage volume, I was able to read and write at 153 MB/s and 167 MB/s respectively. (Data below)&lt;/P&gt;
&lt;P&gt;The table below summarizes the results:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="293"&gt;
&lt;P&gt;&lt;STRONG&gt;Throughput&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="198"&gt;
&lt;P&gt;&lt;STRONG&gt;Read&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="151"&gt;
&lt;P&gt;&lt;STRONG&gt;Write&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="293"&gt;
&lt;P&gt;&lt;STRONG&gt;Single volume&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="198"&gt;
&lt;P&gt;153 MB/s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="151"&gt;
&lt;P&gt;167 MB/s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="293"&gt;
&lt;P&gt;&lt;STRONG&gt;Logical volume striped over 4 volumes&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="198"&gt;
&lt;P&gt;426 MB/s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="151"&gt;
&lt;P&gt;435 MB/s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="293"&gt;
&lt;P&gt;&lt;STRONG&gt;Speed increase &lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="198"&gt;
&lt;P&gt;178 %&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="151"&gt;
&lt;P&gt;160 %&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Terminal log below:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;(root@vm04) (2022-11-22 14:50:39) [0]

~# lvremove vg1

Do you really want to remove active logical volume vg1/lv1? [y/n]: y

&amp;nbsp; Logical volume "lv1" successfully removed

(root@vm04) (2022-11-22 14:50:50) [0]

~# vgremove vg1

&amp;nbsp; Volume group "vg1" successfully removed

(root@vm04) (2022-11-22 14:50:55) [0]

~# pvremove /dev/sd[b-e]1

&amp;nbsp; Labels on physical volume "/dev/sdb1" successfully wiped.

&amp;nbsp; Labels on physical volume "/dev/sdc1" successfully wiped.

&amp;nbsp; Labels on physical volume "/dev/sdd1" successfully wiped.

&amp;nbsp; Labels on physical volume "/dev/sde1" successfully wiped.

(root@vm04) (2022-11-22 14:51:13) [0]

~# lsblk

NAME&amp;nbsp;&amp;nbsp;&amp;nbsp; MAJ:MIN RM&amp;nbsp; SIZE RO TYPE MOUNTPOINT

sda&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 30G&amp;nbsp; 0 disk

├─sda1&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:1&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 29.9G&amp;nbsp; 0 part /

├─sda14&amp;nbsp;&amp;nbsp; 8:14&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 3M&amp;nbsp; 0 part

└─sda15&amp;nbsp;&amp;nbsp; 8:15&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 124M&amp;nbsp; 0 part /boot/efi

sdb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:16&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk

└─sdb1&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:17&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 part

sdc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:32&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk

└─sdc1&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:33&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 part

sdd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:48&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk

└─sdd1&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:49&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 part

sde&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:64&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk

└─sde1&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:65&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 part

(root@vm04) (2022-11-22 14:51:19) [0]

~# mkfs.xfs /dev/sdc1

meta-data=/dev/sdc1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; isize=512&amp;nbsp;&amp;nbsp;&amp;nbsp; agcount=4, agsize=6553535 blks

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sectsz=4096&amp;nbsp; attr=2, projid32bit=1

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; crc=1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finobt=1, sparse=1, rmapbt=0

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reflink=1&amp;nbsp;&amp;nbsp;&amp;nbsp; bigtime=0

data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bsize=4096&amp;nbsp;&amp;nbsp; blocks=26214139, imaxpct=25

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sunit=0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; swidth=0 blks

naming&amp;nbsp;&amp;nbsp; =version 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bsize=4096&amp;nbsp;&amp;nbsp; ascii-ci=0, ftype=1

log&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =internal log&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bsize=4096&amp;nbsp;&amp;nbsp; blocks=12799, version=2

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sectsz=4096&amp;nbsp; sunit=1 blks, lazy-count=1

realtime =none&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extsz=4096&amp;nbsp;&amp;nbsp; blocks=0, rtextents=0

Discarding blocks...Done.

(root@vm04) (2022-11-22 14:51:31) [0]

~# mount /dev/sdc1 /saswork/

(root@vm04) (2022-11-22 14:51:38) [0]

~# time head -c 90G /dev/zero | pv &amp;gt; /saswork/zero.dat

90.0GiB 0:09:09 [ 167MiB/s] [&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;=&amp;gt;]



real&amp;nbsp;&amp;nbsp;&amp;nbsp; 9m9.727s

user&amp;nbsp;&amp;nbsp;&amp;nbsp; 0m7.200s

sys&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1m53.040s

(root@vm04) (2022-11-22 15:01:05) [0]

~# sync ; echo 3 &amp;gt; /proc/sys/vm/drop_caches

(root@vm04) (2022-11-22 15:01:23) [0]

~# time pv /saswork/zero.dat &amp;gt; /dev/null

90.0GiB 0:10:01 [ 153MiB/s] [================================================================================&amp;gt;] 100%



real&amp;nbsp;&amp;nbsp;&amp;nbsp; 10m1.976s

user&amp;nbsp;&amp;nbsp;&amp;nbsp; 0m0.522s

sys&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0m38.955s&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 03 Jan 2023 08:17:52 GMT</pubDate>
    <dc:creator>ThomasDamgaard</dc:creator>
    <dc:date>2023-01-03T08:17:52Z</dc:date>
    <item>
      <title>Juletip #1: Increasing I/O throughput by utilizing Logical Volume Manager in Linux</title>
      <link>https://communities.sas.com/t5/SAS-Community-Nordic/Juletip-1-Increasing-I-O-throughput-by-utilizing-Logical-Volume/m-p/847209#M388</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In this Juletip I will show you how you can combine multiple storage volumes into a single logical volume that you can format an mount in Linux.&lt;/P&gt;
&lt;P&gt;Using this technique, I achieve a disk I/O throughput of more than 420-435 MB/s at the file system level using 4 disks compared to around 150-170 MB/s using a single disk.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In my examples, I will use Azure. However, this juletip works just as well on other cloud platforms such as AWS or GCP as well as on premises.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;First, we need to attach the disks.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In Azure Portal, navigate to the VM and then click Disks&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ThomasDamgaard_0-1669879492127.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/77893i34154542D771080C/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ThomasDamgaard_0-1669879492127.png" alt="ThomasDamgaard_0-1669879492127.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This will show the disks attached to your VM&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ThomasDamgaard_1-1669879492131.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/77894i4006712D36BF5E48/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ThomasDamgaard_1-1669879492131.png" alt="ThomasDamgaard_1-1669879492131.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In this case, I only have the OS disk attached.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We will now attach 5 new disks:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ThomasDamgaard_2-1669879492132.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/77895iD3DAB5AE4869784C/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ThomasDamgaard_2-1669879492132.png" alt="ThomasDamgaard_2-1669879492132.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As we can see here, the single 400 GB disk comes with max IOPS of 2300 and max throughput of 150 MB/s.&lt;/P&gt;
&lt;P&gt;So that is one way to add 400 GB storage.&lt;/P&gt;
&lt;P&gt;We also add 4 disks of 100 GB each. These come with max IOPS of 500 and max throughput of 100 MB/s &lt;U&gt;each&lt;/U&gt;.&lt;/P&gt;
&lt;P&gt;While the aggregate IOPS of the 100 GB disks is slightly less than that of the single big disk (2000 vs 2300), the max throughput is significantly bigger (400 MB/s vs 150 MB/s).&lt;/P&gt;
&lt;P&gt;This is exactly the tradeoff we are interested in when running a typical SAS workload because with SAS, raw throughput on sequential I/O is typically more important than IOPS.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now let’s connect to the VM via SSH and login as root.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The command ‘lsblk’ lets us see attached disks:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# lsblk
NAME&amp;nbsp;&amp;nbsp;&amp;nbsp; MAJ:MIN RM&amp;nbsp; SIZE RO TYPE MOUNTPOINT
sda&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 30G&amp;nbsp; 0 disk
├─sda1&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:1&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 29.9G&amp;nbsp; 0 part /
├─sda14&amp;nbsp;&amp;nbsp; 8:14&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 3M&amp;nbsp; 0 part
└─sda15&amp;nbsp;&amp;nbsp; 8:15&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 124M&amp;nbsp; 0 part /boot/efi
sdb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:16&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk
sdc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:32&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk
sdd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:48&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk
sde&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:64&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Notice the 4 disks of 100 GB.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;These are the ones that we will combine into a single logical volume.&lt;/P&gt;
&lt;P&gt;Before we can do that, we need to create a partition table on the disks.&lt;/P&gt;
&lt;P&gt;We do that using the cfdisk command:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&amp;nbsp;~# cfdisk /dev/sdb&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We will just create a single partition utilizing all the space on the disk:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Disk: /dev/sdb
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;Size: 100 GiB, 107374182400 bytes, 209715200 sectors
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Label: gpt, identifier: FBFC3E10-FC1A-8647-96BD-618BBC662E38

&amp;nbsp;&amp;nbsp;&amp;nbsp; Device&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Start&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sectors&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Size Type
&amp;gt;&amp;gt;&amp;nbsp; /dev/sdb1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2048&amp;nbsp;&amp;nbsp;&amp;nbsp; 209715166&amp;nbsp;&amp;nbsp;&amp;nbsp; 209713119&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 100G Linux filesystem



&amp;nbsp;┌─────────────────────────────────────────────────────────────────────────────┐
&amp;nbsp;│Partition UUID: 9C66A040-5826-3147-BDDF-1456609BB07D&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │
&amp;nbsp;│Partition type: Linux filesystem (0FC63DAF-8483-4772-8E79-3D69D8477DE4)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │
&amp;nbsp;└─────────────────────────────────────────────────────────────────────────────┘
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ Delete ]&amp;nbsp; [ Resize ]&amp;nbsp; [&amp;nbsp; Quit&amp;nbsp; ]&amp;nbsp; [&amp;nbsp; Type&amp;nbsp; ]&amp;nbsp; [&amp;nbsp; Help&amp;nbsp; ]&amp;nbsp; [&amp;nbsp; Write ]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&amp;nbsp; Dump&amp;nbsp; ]

&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The lsblk command will show us the partition is made:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# lsblk
NAME&amp;nbsp;&amp;nbsp;&amp;nbsp; MAJ:MIN RM&amp;nbsp; SIZE RO TYPE MOUNTPOINT
sda&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 30G&amp;nbsp; 0 disk
├─sda1&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:1&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 29.9G&amp;nbsp; 0 part /
├─sda14&amp;nbsp;&amp;nbsp; 8:14&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 3M&amp;nbsp; 0 part
└─sda15&amp;nbsp;&amp;nbsp; 8:15&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 124M&amp;nbsp; 0 part /boot/efi
sdb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:16&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk
└─sdb1&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:17&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 part
sdc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:32&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk
sdd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:48&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk
sde&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:64&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We will now use sfdisk to copy the partition table onto the remaining 3 disks:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# for disk in /dev/sd[c-e]; do sfdisk -d /dev/sdb | sfdisk --force $disk; done
Checking that no-one is using this disk right now ... OK

Disk /dev/sdc: 100 GiB, 107374182400 bytes, 209715200 sectors
Disk model: Virtual Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Created a new GPT disklabel (GUID: FBFC3E10-FC1A-8647-96BD-618BBC662E38).
/dev/sdc1: Created a new partition 1 of type 'Linux filesystem' and of size 100 GiB.
/dev/sdc2: Done.

New situation:
Disklabel type: gpt
Disk identifier: FBFC3E10-FC1A-8647-96BD-618BBC662E38

Device&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Start&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End&amp;nbsp;&amp;nbsp; Sectors&amp;nbsp; Size Type
/dev/sdc1&amp;nbsp;&amp;nbsp; 2048 209715166 209713119&amp;nbsp; 100G Linux filesystem

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
Checking that no-one is using this disk right now ... OK

Disk /dev/sdd: 100 GiB, 107374182400 bytes, 209715200 sectors
Disk model: Virtual Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Created a new GPT disklabel (GUID: FBFC3E10-FC1A-8647-96BD-618BBC662E38).
/dev/sdd1: Created a new partition 1 of type 'Linux filesystem' and of size 100 GiB.
/dev/sdd2: Done.

New situation:
Disklabel type: gpt
Disk identifier: FBFC3E10-FC1A-8647-96BD-618BBC662E38

Device&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Start&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End&amp;nbsp;&amp;nbsp; Sectors&amp;nbsp; Size Type
/dev/sdd1&amp;nbsp;&amp;nbsp; 2048 209715166 209713119&amp;nbsp; 100G Linux filesystem

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
Checking that no-one is using this disk right now ... OK

Disk /dev/sde: 100 GiB, 107374182400 bytes, 209715200 sectors
Disk model: Virtual Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Script header accepted.
&amp;gt;&amp;gt;&amp;gt; Created a new GPT disklabel (GUID: FBFC3E10-FC1A-8647-96BD-618BBC662E38).
/dev/sde1: Created a new partition 1 of type 'Linux filesystem' and of size 100 GiB.
/dev/sde2: Done.

New situation:
Disklabel type: gpt
Disk identifier: FBFC3E10-FC1A-8647-96BD-618BBC662E38

Device&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Start&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End&amp;nbsp;&amp;nbsp; Sectors&amp;nbsp; Size Type
/dev/sde1&amp;nbsp;&amp;nbsp; 2048 209715166 209713119&amp;nbsp; 100G Linux filesystem

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We will verify using lsblk:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# lsblk
NAME&amp;nbsp;&amp;nbsp;&amp;nbsp; MAJ:MIN RM&amp;nbsp; SIZE RO TYPE MOUNTPOINT
sda&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 30G&amp;nbsp; 0 disk
├─sda1&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:1&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 29.9G&amp;nbsp; 0 part /
├─sda14&amp;nbsp;&amp;nbsp; 8:14&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 3M&amp;nbsp; 0 part
└─sda15&amp;nbsp;&amp;nbsp; 8:15&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 124M&amp;nbsp; 0 part /boot/efi
sdb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:16&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk
└─sdb1&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:17&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 part
sdc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:32&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk
└─sdc1&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:33&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 part
sdd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:48&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk
└─sdd1&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:49&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 part
sde&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:64&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk
└─sde1&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:65&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 part&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now we need to make these partitions available for LVM. We do that by adding them as physical volumes:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# pvcreate /dev/sd[b-e]1
&amp;nbsp; Physical volume "/dev/sdb1" successfully created.
&amp;nbsp; Physical volume "/dev/sdc1" successfully created.
&amp;nbsp; Physical volume "/dev/sdd1" successfully created.
&amp;nbsp; Physical volume "/dev/sde1" successfully created.&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We can list available physical volumes with the ‘pvs’ command:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# pvs
&amp;nbsp; PV&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VG Fmt&amp;nbsp; Attr PSize&amp;nbsp;&amp;nbsp;&amp;nbsp; PFree
&amp;nbsp; /dev/sdb1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lvm2 ---&amp;nbsp; &amp;lt;100.00g &amp;lt;100.00g
&amp;nbsp; /dev/sdc1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lvm2 ---&amp;nbsp; &amp;lt;100.00g &amp;lt;100.00g
&amp;nbsp; /dev/sdd1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lvm2 ---&amp;nbsp; &amp;lt;100.00g &amp;lt;100.00g
&amp;nbsp; /dev/sde1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lvm2 ---&amp;nbsp; &amp;lt;100.00g &amp;lt;100.00g
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Our logical volume must reside on a volume group. So we will now create a volume group containing the newly created physical volumes:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# vgcreate vg1 /dev/sd[b-e]1

&amp;nbsp; Volume group "vg1" successfully created&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We can list volume groups using the ‘vgs’ command:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# vgs

&amp;nbsp; VG&amp;nbsp; #PV #LV #SN Attr&amp;nbsp;&amp;nbsp; VSize&amp;nbsp;&amp;nbsp; VFree

&amp;nbsp; vg1&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 0 wz--n- 399.98g 399.98g&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We are now ready to create the actual volume group. We will create it using 4 stripes each with a stripe size of 256k:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# lvcreate -i 4 -I 256k -n lv1 -L 399G vg1

&amp;nbsp; Logical volume "lv1" created.

&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We can list logical volumes using the ‘lvs’ command:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# lvs
&amp;nbsp; LV&amp;nbsp;&amp;nbsp; VG&amp;nbsp; Attr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LSize&amp;nbsp;&amp;nbsp; Pool Origin Data%&amp;nbsp; Meta%&amp;nbsp; Move Log Cpy%Sync Convert
&amp;nbsp; lv1&amp;nbsp; vg1 -wi-a----- 399.00g&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Before we can mount and use the logical volume we need to format it with a file system. I am using the XFS filesystem:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# mkfs.xfs /dev/vg1/lv1

meta-data=/dev/vg1/lv1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; isize=512&amp;nbsp;&amp;nbsp;&amp;nbsp; agcount=16, agsize=6537152 blks
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sectsz=4096&amp;nbsp; attr=2, projid32bit=1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;crc=1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finobt=1, sparse=1, rmapbt=0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reflink=1&amp;nbsp;&amp;nbsp;&amp;nbsp; bigtime=0
data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bsize=4096&amp;nbsp;&amp;nbsp; blocks=104594432, imaxpct=25
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sunit=64&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; swidth=256 blks
naming&amp;nbsp;&amp;nbsp; =version 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bsize=4096&amp;nbsp;&amp;nbsp; ascii-ci=0, ftype=1
log&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =internal log&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bsize=4096&amp;nbsp;&amp;nbsp; blocks=51071, version=2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sectsz=4096&amp;nbsp; sunit=1 blks, lazy-count=1
realtime =none&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extsz=4096&amp;nbsp;&amp;nbsp; blocks=0, rtextents=0
Discarding blocks...Done.

&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We are now ready to mount and use the logical volume:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&amp;nbsp;~# mount /dev/vg1/lv1 /saswork/&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Test write speed:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# time head -c 200G /dev/zero | pv &amp;gt; /saswork/zero.dat
&amp;nbsp;200GiB 0:07:50 [ 435MiB/s] [&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;=&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ]

real&amp;nbsp;&amp;nbsp;&amp;nbsp; 7m50.776s
user&amp;nbsp;&amp;nbsp;&amp;nbsp; 0m13.978s
sys&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3m38.363s&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We just wrote 200 GB data with a throughput of &lt;STRONG&gt;435 MB/s.&lt;/STRONG&gt; Not bad.&lt;/P&gt;
&lt;P&gt;Let’s see how fast we can read the file.&lt;/P&gt;
&lt;P&gt;First we drop all cache to ensure that we actually read the file from the storage layer and not just from file system cache in RAM.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# sync ; echo 3 &amp;gt; /proc/sys/vm/drop_caches&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Then we measure read throughput:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;~# time pv /saswork/zero.dat &amp;gt; /dev/null
&amp;nbsp;200GiB 0:08:00 [ 426MiB/s] [=================================&amp;gt;] 100%


real&amp;nbsp;&amp;nbsp;&amp;nbsp; 8m0.308s
user&amp;nbsp;&amp;nbsp;&amp;nbsp; 0m0.861s
sys&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1m16.904s&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We read the 200 GB file at &lt;STRONG&gt;426 MB/s.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For comparison on a single storage volume, I was able to read and write at 153 MB/s and 167 MB/s respectively. (Data below)&lt;/P&gt;
&lt;P&gt;The table below summarizes the results:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="293"&gt;
&lt;P&gt;&lt;STRONG&gt;Throughput&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="198"&gt;
&lt;P&gt;&lt;STRONG&gt;Read&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="151"&gt;
&lt;P&gt;&lt;STRONG&gt;Write&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="293"&gt;
&lt;P&gt;&lt;STRONG&gt;Single volume&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="198"&gt;
&lt;P&gt;153 MB/s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="151"&gt;
&lt;P&gt;167 MB/s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="293"&gt;
&lt;P&gt;&lt;STRONG&gt;Logical volume striped over 4 volumes&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="198"&gt;
&lt;P&gt;426 MB/s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="151"&gt;
&lt;P&gt;435 MB/s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="293"&gt;
&lt;P&gt;&lt;STRONG&gt;Speed increase &lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="198"&gt;
&lt;P&gt;178 %&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="151"&gt;
&lt;P&gt;160 %&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Terminal log below:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;(root@vm04) (2022-11-22 14:50:39) [0]

~# lvremove vg1

Do you really want to remove active logical volume vg1/lv1? [y/n]: y

&amp;nbsp; Logical volume "lv1" successfully removed

(root@vm04) (2022-11-22 14:50:50) [0]

~# vgremove vg1

&amp;nbsp; Volume group "vg1" successfully removed

(root@vm04) (2022-11-22 14:50:55) [0]

~# pvremove /dev/sd[b-e]1

&amp;nbsp; Labels on physical volume "/dev/sdb1" successfully wiped.

&amp;nbsp; Labels on physical volume "/dev/sdc1" successfully wiped.

&amp;nbsp; Labels on physical volume "/dev/sdd1" successfully wiped.

&amp;nbsp; Labels on physical volume "/dev/sde1" successfully wiped.

(root@vm04) (2022-11-22 14:51:13) [0]

~# lsblk

NAME&amp;nbsp;&amp;nbsp;&amp;nbsp; MAJ:MIN RM&amp;nbsp; SIZE RO TYPE MOUNTPOINT

sda&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp; 30G&amp;nbsp; 0 disk

├─sda1&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:1&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 29.9G&amp;nbsp; 0 part /

├─sda14&amp;nbsp;&amp;nbsp; 8:14&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 3M&amp;nbsp; 0 part

└─sda15&amp;nbsp;&amp;nbsp; 8:15&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 124M&amp;nbsp; 0 part /boot/efi

sdb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:16&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk

└─sdb1&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:17&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 part

sdc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:32&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk

└─sdc1&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:33&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 part

sdd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:48&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk

└─sdd1&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:49&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 part

sde&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:64&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 disk

└─sde1&amp;nbsp;&amp;nbsp;&amp;nbsp; 8:65&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 100G&amp;nbsp; 0 part

(root@vm04) (2022-11-22 14:51:19) [0]

~# mkfs.xfs /dev/sdc1

meta-data=/dev/sdc1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; isize=512&amp;nbsp;&amp;nbsp;&amp;nbsp; agcount=4, agsize=6553535 blks

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sectsz=4096&amp;nbsp; attr=2, projid32bit=1

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; crc=1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finobt=1, sparse=1, rmapbt=0

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reflink=1&amp;nbsp;&amp;nbsp;&amp;nbsp; bigtime=0

data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bsize=4096&amp;nbsp;&amp;nbsp; blocks=26214139, imaxpct=25

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sunit=0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; swidth=0 blks

naming&amp;nbsp;&amp;nbsp; =version 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bsize=4096&amp;nbsp;&amp;nbsp; ascii-ci=0, ftype=1

log&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =internal log&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bsize=4096&amp;nbsp;&amp;nbsp; blocks=12799, version=2

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sectsz=4096&amp;nbsp; sunit=1 blks, lazy-count=1

realtime =none&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extsz=4096&amp;nbsp;&amp;nbsp; blocks=0, rtextents=0

Discarding blocks...Done.

(root@vm04) (2022-11-22 14:51:31) [0]

~# mount /dev/sdc1 /saswork/

(root@vm04) (2022-11-22 14:51:38) [0]

~# time head -c 90G /dev/zero | pv &amp;gt; /saswork/zero.dat

90.0GiB 0:09:09 [ 167MiB/s] [&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;=&amp;gt;]



real&amp;nbsp;&amp;nbsp;&amp;nbsp; 9m9.727s

user&amp;nbsp;&amp;nbsp;&amp;nbsp; 0m7.200s

sys&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1m53.040s

(root@vm04) (2022-11-22 15:01:05) [0]

~# sync ; echo 3 &amp;gt; /proc/sys/vm/drop_caches

(root@vm04) (2022-11-22 15:01:23) [0]

~# time pv /saswork/zero.dat &amp;gt; /dev/null

90.0GiB 0:10:01 [ 153MiB/s] [================================================================================&amp;gt;] 100%



real&amp;nbsp;&amp;nbsp;&amp;nbsp; 10m1.976s

user&amp;nbsp;&amp;nbsp;&amp;nbsp; 0m0.522s

sys&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0m38.955s&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 03 Jan 2023 08:17:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Community-Nordic/Juletip-1-Increasing-I-O-throughput-by-utilizing-Logical-Volume/m-p/847209#M388</guid>
      <dc:creator>ThomasDamgaard</dc:creator>
      <dc:date>2023-01-03T08:17:52Z</dc:date>
    </item>
  </channel>
</rss>

