mirror of
https://git.digitalstudium.com/digitalstudium/digitalstudium.com
synced 2023-12-29 08:06:35 +00:00
Initial commit
This commit is contained in:
107
content/en/linux-lifehacks/how-to-create-lvm-logical-volume.md
Normal file
107
content/en/linux-lifehacks/how-to-create-lvm-logical-volume.md
Normal file
@@ -0,0 +1,107 @@
|
||||
---
|
||||
title: "Linux: How to create LVM logical volume"
|
||||
date: "2022-05-15"
|
||||
---
|
||||
### First step: creating a physical volume
|
||||
After you have attached the disk to a physical server or virtual machine, you need to type
|
||||
this command:
|
||||
```bash
|
||||
sudo fdisk -l
|
||||
```
|
||||
<!--more-->
|
||||
to make sure the drive is recognized by the operating system, and to identify the drive name. Output
|
||||
of command will be something like this:
|
||||
```plaintext
|
||||
Disk /dev/vdb: 10 GiB, 10737418240 bytes, 20971520 sectors
|
||||
Units: sectors of 1 * 512 = 512 bytes
|
||||
Sector size (logical/physical): 512 bytes/512 bytes
|
||||
I/O size (minimum/optimal): 512 bytes/512 bytes
|
||||
```
|
||||
Once you have identified the drive name (in our case it is `/dev/vdb`), you can create
|
||||
physical volume using the command:
|
||||
```bash
|
||||
sudo pvcreate /dev/vdb
|
||||
```
|
||||
You will see output like this:
|
||||
```plaintext
|
||||
kostya@ubuntu-21-04:~$ sudo pvcreate /dev/vdb
|
||||
Physical volume "/dev/vdb" successfully created.
|
||||
kostya@ubuntu-21-04:~$
|
||||
```
|
||||
### Step two: create the volume group
|
||||
Now we need to create a volume group. This is done by the following command:
|
||||
```bash
|
||||
sudo vgcreate {vgname} {pvname}
|
||||
```
|
||||
In our case, the command will look like this:
|
||||
```bash
|
||||
sudo vgcreate vg-example /dev/vdb
|
||||
```
|
||||
The command output will look like this:
|
||||
```plaintext
|
||||
kostya@ubuntu-21-04:~$ sudo vgcreate vg-example/dev/vdb
|
||||
Volume group "vg-example" successfully created
|
||||
kostya@ubuntu-21-04:~$
|
||||
```
|
||||
### Step three: creating the logical volume
|
||||
Creating a logical volume can be done with the following command:
|
||||
```bash
|
||||
sudo lvcreate --size {size} --name {lv-name} {vg-name}
|
||||
```
|
||||
In our case, it will be:
|
||||
```bash
|
||||
sudo lvcreate --size 5G --name lv-example vg-example
|
||||
```
|
||||
You will see output like this:
|
||||
```plaintext
|
||||
kostya@ubuntu-21-04:~$ sudo lvcreate --size 5G --name lv-example vg-example
|
||||
Logical volume "lv-example" created.
|
||||
kostya@ubuntu-21-04:~$
|
||||
```
|
||||
If you want the logical volume to use all the free space in the volume group, then run the command:
|
||||
```bash
|
||||
sudo lvcreate --extents 100%FREE --name lv-example vg-example
|
||||
```
|
||||
### Fourth step: creating the filesystem
|
||||
To create an xfs filesystem, type the command:
|
||||
```bash
|
||||
sudo mkfs.xfs /dev/vg-example/lv-example
|
||||
```
|
||||
The command output will look like this:
|
||||
```plaintext
|
||||
kostya@ubuntu-21-04:~$ sudo mkfs.xfs/dev/vg-example/lv-example
|
||||
meta-data =/dev/vg-example/lv-example isize = 512 agcount = 4, agsize = 327680 blks
|
||||
= sectsz = 512 attr = 2, projid32bit = 1
|
||||
= crc = 1 finobt = 1, sparse = 1, rmapbt = 0
|
||||
= reflink = 1 bigtime = 0
|
||||
data = bsize = 4096 blocks = 1310720, imaxpct = 25
|
||||
= sunit = 0 swidth = 0 blks
|
||||
naming = version 2 bsize = 4096 ascii-ci = 0, ftype = 1
|
||||
log = internal log bsize = 4096 blocks = 2560, version = 2
|
||||
= sectsz = 512 sunit = 0 blks, lazy-count = 1
|
||||
realtime = none extsz = 4096 blocks = 0, rtextents = 0
|
||||
Discarding blocks ... Done.
|
||||
kostya@ubuntu-21-04:~$
|
||||
```
|
||||
To create an ext4 filesystem, replace the `mkfs.xfs` command with `mkfs.ext4`
|
||||
### Step Five: Mount the Logical Volume
|
||||
For example, suppose you want to mount the newly created logical volume to the `/opt` folder. In this
|
||||
case, add this line to file `/etc/fstab`:
|
||||
```bash
|
||||
/dev/vg-example/lv-example /opt xfs defaults 0 1
|
||||
```
|
||||
After that, type the command:
|
||||
```bash
|
||||
sudo mount -a
|
||||
```
|
||||
You can verify that the logical volume has been mounted successfully using the command:
|
||||
```bash
|
||||
df -h /opt
|
||||
```
|
||||
The output should be like this:
|
||||
```plaintext
|
||||
kostya@ubuntu-21-04:~$ df -h /opt/
|
||||
Filesystem Size Used Avail Use% Mounted on
|
||||
/dev/mapper/vg--random-lv--random 5.0G 68M 5.0G 2% /opt
|
||||
kostya@ubuntu-21-04:~$
|
||||
```
|
||||
Reference in New Issue
Block a user