GNU/Linux >> Belajar Linux >  >> Linux

Panduan Lengkap Pemula untuk LVM di Linux

Ini adalah panduan lengkap pemula untuk LVM (Logical Volume Management) di Linux.

Dalam tutorial ini, Anda akan mempelajari konsep LVM, komponennya, dan mengapa Anda harus menggunakannya.

Saya tidak akan terbatas pada penjelasan teoretis saja. Saya juga akan menunjukkan contoh langsung untuk membuat dan mengelola LVM di Linux.

Singkatnya, saya akan memberi Anda semua informasi penting yang Anda perlukan untuk mulai bekerja dengan LVM di dunia nyata.

Apa itu LVM di Linux?

LVM adalah singkatan dari Logical Volume Management. Ini adalah metode alternatif untuk mengelola sistem penyimpanan daripada yang berbasis partisi tradisional. Di LVM, alih-alih membuat partisi, Anda membuat volume logis, dan kemudian Anda dapat dengan mudah memasang volume tersebut di sistem file Anda seperti halnya partisi disk.

Satu pengecualian untuk pernyataan sebelumnya adalah Anda tidak dapat menggunakan volume logis untuk /boot . Itu karena GRUB (bootloader paling umum untuk Linux) tidak dapat membaca dari volume logis. Alternatif terkenal untuk GRUB, systemd-boot di sisi lain hanya membaca sistem file vfat, jadi itu juga tidak akan berfungsi.

Komponen LVM

Ada tiga komponen utama untuk LVM:

  1. Volume Fisik
  2. Grup Volume
  3. Volume Logis

Meskipun daftar tersebut terdiri dari tiga komponen, hanya dua di antaranya yang merupakan mitra langsung ke sistem partisi. Tabel berikut mencatatnya.

Sistem Partisi Disk LVM
Partisi Volume Logis
Disk Grup Volume

Volume fisik tidak memiliki padanan langsung, tetapi saya akan segera membicarakannya.

Mengapa menggunakan LVM?

Keuntungan utama dari LVM adalah betapa mudahnya mengubah ukuran volume atau grup volume. Ini mengabstraksi semua bagian jelek (partisi, disk mentah) dan meninggalkan kita dengan kumpulan penyimpanan pusat untuk digunakan.

Jika Anda pernah mengalami kengerian mengubah ukuran partisi, Anda pasti ingin menggunakan LVM.

Persiapan lab untuk praktik

Artikel ini bukan hanya teori. Saya akan menunjukkan contoh perintah aktual di sepanjang jalan dan cara terbaik untuk mempelajari sesuatu adalah bekerja dengannya, langsung. Untuk itu, saya sarankan Anda menggunakan mesin virtual.

Untuk membantu Anda dengan itu, saya telah menyiapkan Vagrantfile sederhana yang dapat Anda gunakan untuk menjalankan mesin virtual yang sangat ringan dengan VirtualBox. Mesin virtual ini memiliki tiga disk tambahan yang dapat Anda dan saya gunakan untuk contoh perintah di bawah ini.

Buat direktori di suatu tempat di sistem file Anda dan simpan yang berikut ini di file di sana, bernama Vagrantfile .

Vagrant.configure "2" do |config|
    config.vm.box = "ubuntu/focal64"
    config.vm.hostname = "lvm"
    3.times {|i| config.vm.disk :disk, size: "5GB", name: "drive-#{i}"}
    config.vm.provider :virtualbox do |machine|
        machine.memory = 1024
        machine.cpus = 1
        machine.customize ["modifyvm", :id, "--cpuexecutioncap", "50"]
    end
end

# vi: set ft=ruby

Atau jika mau, Anda dapat menggunakan wget atau curl untuk mengunduh file dari inti saya.

wget https://gist.githubusercontent.com/debdutdeb/98ed1b6aef36885d07ce8247188dfd5e/raw/524259da5dfa2d8750883d01c8159829729e224d/Vagrantfile

Pastikan Anda telah menginstal Vagrant dan VirtualBox.

Setelah Vagrantfile berada di tempatnya, atur variabel lingkungan VAGRANT_EXPERIMENTAL ke disks .

export VAGRANT_EXPERIMENTAL=disks

Terakhir, jalankan mesin virtual menggunakan perintah berikut (pastikan Anda berada di direktori yang sama dengan Vagrantfile):

vagrant up

Setelah mesin berjalan, Anda dapat menggunakan vagrant ssh ke SSH ke dalamnya dan jalankan contoh perintah dari artikel ini.

Ingatlah untuk menjalankan vagrant destroy dari direktori yang sama dengan Vagrantfile setelah Anda selesai.

Menginstal LVM

Sebelum Anda dapat menggunakan salah satu perintah, Anda perlu menginstal lvm2 kemasan. Ini harus sudah diinstal sebelumnya di sebagian besar distribusi modern, terutama yang berbasis Ubuntu. Tapi tetap saja, saya harus menyebutkan ini sebelum bergerak maju. Untuk menginstal lvm2 , lihat dokumentasi distribusi Anda.

Hands-on dengan LVM

Untuk penelusuran langsung ini, saya telah membuat mesin virtual dengan penyimpanan root 40G (tidak penting) dan tiga disk eksternal berukuran 5G. Ukuran disk ini sewenang-wenang.

[email protected]:~$ lsblk -o name,size,fstype
NAME    SIZE FSTYPE
loop0  55.5M squashfs
loop1  32.3M squashfs
loop2  70.4M squashfs
sda      40G 
└─sda1   40G ext4
sdb      10M iso9660
sdc       5G 
sdd       5G 
sde       5G

Seperti yang Anda lihat, perangkat yang akan saya gunakan adalah sdc , sdd dan sde .

Ingat saya bilang ada tiga komponen utama untuk LVM?

  1. Volume Fisik
  2. Grup Volume
  3. Volume Logis

Saatnya untuk melihat mereka satu per satu.

1. Volume Fisik

Hal pertama yang perlu Anda ketahui tentang LVM, adalah volume fisik. Volume fisik adalah bahan mentah atau blok bangunan yang digunakan untuk mencapai abstraksi yaitu volume logis. Dengan kata yang lebih sederhana, volume fisik adalah unit logis dari sistem LVM.

Volume fisik dapat berupa apa saja, disk mentah, atau partisi disk. Membuat dan menginisialisasi volume fisik adalah hal yang sama. Keduanya berarti Anda hanya menyiapkan blok penyusun (yaitu partisi, disk) untuk operasi lebih lanjut. Ini akan menjadi lebih jelas dalam beberapa saat.

Utilitas: Semua utilitas yang mengatur volume fisik dimulai dengan huruf pv untuk P fisik V olume. Misalnya. pvcreate , pvchange , pvs , pvdisplay dll.

Apa pun yang disebutkan setelah kotak ini bersifat merusak, kecuali jika Anda menggunakan lingkungan virtual atau server di awan di mana tidak ada data penting yang disimpan atau dapat dijangkau secara tidak sengaja, saya sarankan Anda untuk berhenti sekarang juga.

Membuat volume fisik

Anda dapat membuat volume fisik menggunakan disk mentah yang tidak dipartisi atau partisi itu sendiri.

Seperti yang saya sebutkan sebelumnya, saya memiliki tiga drive eksternal yang terpasang pada mesin virtual saya, mari kita mulai dengan /dev/sdc .

Kami menggunakan pvcreate perintah untuk membuat volume fisik. Cukup berikan nama perangkat ke sana dan tidak ada yang lain.

sudo pvcreate /dev/sdc

Anda akan melihat sesuatu seperti ini:-

[email protected]:~$ sudo pvcreate /dev/sdc
  Physical volume "/dev/sdc" successfully created.

Selanjutnya saya akan mempartisi /dev/sdd menjadi bagian yang sama. Gunakan alat apa saja, cfdisk , parted , fdisk dll, ada banyak alat untuk mencapai pekerjaan ini.

[email protected]:~$ lsblk -o name,size,fstype | grep sdd
sdd       5G 
├─sdd1  2.5G 
└─sdd2  2.5G

Sekarang Anda dapat dengan cepat membuat dua volume fisik lagi dari dua partisi ini dalam satu langkah, berikan kedua perangkat ini ke pvcreate sekaligus.

sudo pvcreate /dev/sdd1 /dev/sdd2

Lihat:-

[email protected]:~$ sudo pvcreate /dev/sdd1 /dev/sdd2
  Physical volume "/dev/sdd1" successfully created.
  Physical volume "/dev/sdd2" successfully created.

Mencantumkan volume fisik yang tersedia

Ada tiga perintah yang dapat Anda gunakan untuk mendapatkan daftar volume fisik yang tersedia, pvscan , pvs dan pvdisplay . Anda biasanya tidak perlu meneruskan apa pun ke perintah ini.

pvscan :-

[email protected]:~$ sudo pvscan
  PV /dev/sdc                       lvm2 [5.00 GiB]
  PV /dev/sdd1                      lvm2 [2.50 GiB]
  PV /dev/sdd2                      lvm2 [<2.50 GiB]
  Total: 3 [<10.00 GiB] / in use: 0 [0   ] / in no VG: 3 [<10.00 GiB]

pvs :-

[email protected]:~$ sudo pvs
  PV         VG Fmt  Attr PSize  PFree 
  /dev/sdc      lvm2 ---   5.00g  5.00g
  /dev/sdd1     lvm2 ---   2.50g  2.50g
  /dev/sdd2     lvm2 ---  <2.50g <2.50g

pvdisplay :-

[email protected]:~$ sudo pvdisplay
  "/dev/sdc" is a new physical volume of "5.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdc
  VG Name               
  PV Size               5.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               SzSkdD-xKYa-4y7P-teyU-481p-uiQ8-qieMJJ
   
  "/dev/sdd1" is a new physical volume of "2.50 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdd1
  VG Name               
  PV Size               2.50 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               553Iy4-JJ21-LfIw-udtO-j9Cd-7gFS-iXXFVS
   
  "/dev/sdd2" is a new physical volume of "<2.50 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdd2
  VG Name               
  PV Size               <2.50 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               bf7ghn-QkPm-EUdp-GdyW-shMG-5sMn-VhNtYB

Seperti yang Anda lihat selain hanya mencantumkan volume fisik, perintah ini juga memberi Anda banyak informasi lain tentang volume ini.

Menghapus volume fisik

Anda dapat menghapus volume fisik dengan pvremove memerintah. Sama seperti pvcreate , cukup berikan perangkat (yang diinisialisasi sebagai volume fisik) ke pvremove perintah.

Untuk demonstrasi, saya akan menghapus /dev/sdd2 dari daftar.

sudo pvremove /dev/sdd2

Outputnya harus sama dengan ini:-

[email protected]:~$ sudo pvremove /dev/sdd2
  Labels on physical volume "/dev/sdd2" successfully wiped.

Sekarang daftar volume fisik dengan sudo pvs

[email protected]:~$ sudo pvs
  PV         VG Fmt  Attr PSize PFree
  /dev/sdc      lvm2 ---  5.00g 5.00g
  /dev/sdd1     lvm2 ---  2.50g 2.50g

/dev/sdd2 tidak ada lagi di sini.

2. Grup Volume

Grup volume adalah kumpulan volume fisik. Ini adalah tingkat abstraksi berikutnya di LVM. Grup volume adalah kumpulan penyimpanan yang menggabungkan kapasitas penyimpanan beberapa perangkat penyimpanan mentah.

Utilitas: Semua nama utilitas grup volume dimulai dengan vg , singkatan dari V olume G kelompok, mis. vgcreate , vgs , vgrename dll.

Membuat grup volume

Grup volume dibuat menggunakan vgcreate memerintah. Argumen pertama untuk vgcreate adalah nama yang ingin Anda berikan pada grup volume ini, dan sisanya adalah daftar volume fisik yang akan mendukung kumpulan penyimpanan.

sudo vgcreate lvm_tutorial /dev/sdc /dev/sdd1

Contoh:-

[email protected]:~$ sudo vgcreate lvm_tutorial /dev/sdc /dev/sdd1
  Volume group "lvm_tutorial" successfully created

Mencantumkan grup volume

Mendaftar grup volume mirip dengan membuat daftar volume fisik, Anda dapat menggunakan perintah yang berbeda dengan berbagai tingkat verbositas, vgdisplay , vgscan dan vgs .

Saya pribadi lebih suka vgs perintah, sudo vgs

[email protected]:~$ sudo vgs
  VG           #PV #LV #SN Attr   VSize VFree
  lvm_tutorial   2   0   0 wz--n- 7.49g 7.49g

vgscan :-

[email protected]:~$ sudo vgscan
  Found volume group "lvm_tutorial" using metadata type lvm2

vgdisplay :-

[email protected]:~$ sudo vgdisplay 
  --- Volume group ---
  VG Name               lvm_tutorial
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               7.49 GiB
  PE Size               4.00 MiB
  Total PE              1918
  Alloc PE / Size       0 / 0   
  Free  PE / Size       1918 / 7.49 GiB
  VG UUID               LYVE9P-vY0G-OAW6-an8q-yfBx-rrB1-YU61m1

Mencantumkan volume fisik yang dilampirkan ke grup volume

Anda dapat membuat daftar semua volume fisik yang terhubung ke grup volume tertentu dengan menggunakan perintah berikut:-

sudo pvdisplay -S vgname=<volume_group_name> -C -o pv_name

Contoh:-

[email protected]:~$ sudo pvdisplay -S vgname=lvm_tutorial -C -o pv_name
  PV        
  /dev/sdc  
  /dev/sdd1

Anda juga bisa mendapatkan hitungan volume fisik.

sudo vgdisplay -S vgname=<volume_group_name> -C -o pv_count

Contoh:-

[email protected]:~$ sudo vgdisplay -S vgname=lvm_tutorial -C -o pv_count
  #PV
    3

Memperluas grup volume

Memperluas grup volume berarti menambahkan volume fisik tambahan ke grup volume. Untuk melakukannya vgextend perintah digunakan. Sintaksnya sederhana:-

vgextend <volume_group> <physical_volume1> <physical_volume2> ....

Mari kita kembangkan lvm_tutorial volume dengan /dev/sdd2 .

sudo vgextend lvm_tutorial /dev/sdd2

Fokus pada keluaran:-

[email protected]:~$ sudo vgextend lvm_tutorial /dev/sdd2
  Physical volume "/dev/sdd2" successfully created.
  Volume group "lvm_tutorial" successfully extended

Di bagian volume fisik, kami akhirnya menghapus /dev/sdd2 sebagai volume fisik, tetapi partisi atau disk mentah harus diinisialisasi sebagai volume fisik jika tidak, LVM tidak akan dapat mengelolanya sebagai bagian dari grup volume. Jadi vgextend siap /dev/sdd2 sebelum menambahkannya ke grup volume.

Sekarang buat daftar volume fisik yang dilampirkan ke grup volume ini, hanya untuk memastikan.

sudo pvdisplay -S vgname=lvm_tutorial -C -o pv_name

Keluaran:-

[email protected]:~$ sudo pvdisplay -S vgname=lvm_tutorial -C -o pv_name
  PV        
  /dev/sdc  
  /dev/sdd1 
  /dev/sdd2

/dev/sdd2 sekarang dalam daftar seperti yang diharapkan.

Mengurangi grup volume

Sama seperti memperluas grup volume berarti menambahkan volume fisik lain, menguranginya berarti menghapus satu atau beberapa volume fisik.

Kami menggunakan vgreduce perintah untuk melakukan ini. Sintaks umumnya adalah sebagai berikut:-

vgreduce <vgname> <physical_volume1> <physical_volume2> ....

Mari kita hapus volume fisik /dev/sdc dan /dev/sdd1 .

sudo vgreduce lvm_tutorial /dev/sdc /dev/sdd1

Contoh:-

[email protected]:~$ sudo vgreduce lvm_tutorial /dev/sdc /dev/sdd1
  Removed "/dev/sdc" from volume group "lvm_tutorial"
  Removed "/dev/sdd1" from volume group "lvm_tutorial"
Jika grup volume memiliki volume logis yang aktif, Anda tidak akan dapat menguranginya seperti ini.

Buat daftar volume fisik lagi.

sudo pvdisplay -S vgname=lvm_tutorial -C -o pv_name

Keluaran:-

[email protected]:~$ sudo pvdisplay -S vgname=lvm_tutorial -C -o pv_name
  PV        
  /dev/sdd2

Kedua volume fisik itu hilang.

Sekarang, untuk sisa artikel ini, tambahkan kedua volume fisik itu kembali.

sudo vgextend lvm_tutorial /dev/sdc /dev/sdd1

Menghapus grup volume

Anda dapat menghapus volume logis dengan vgremove perintah.

sudo vgremove lvm_tutorial

Jangan jalankan perintah ini sekarang, jika tidak, Anda harus membuat ulang grup volume. Jika Anda ingin mengujinya, jalankan di akhir artikel ini.

3. Volume Logika

Inilah yang sebagian besar akan Anda kerjakan. Volume logis seperti partisi, tetapi alih-alih duduk di atas disk mentah, ia duduk di atas grup volume. Anda bisa,

  • Memformat volume logis dengan sistem file mana pun yang Anda inginkan.
  • Pasang di mana saja di sistem file yang Anda inginkan.

Di bagian ini Anda akan belajar,

  • Cara membuat volume logis.
  • Operasi umum pada volume logis.
  • Mengubah ukuran volume logis.
  • Menghapus volume logis.

Utilitas: Semua nama utilitas grup volume dimulai dengan lv , singkatan dari L ogis V olume. misalnya lvcreate , lvs , lvreduce dll.vgcreate , vgs , vgrename dll.

Membuat volume logis

Volume logis dibuat menggunakan lvcreate memerintah. Sintaks yang umum digunakan terlihat sebagai berikut,

sudo lvcreate -L <size> -n <lvname> <vgname>

Biarkan saya memecahnya untuk Anda:-

  • -L pilihannya adalah untuk ukuran volume logis baru, Anda dapat menggunakan bilangan bulat apa pun dengan "GB", "MB" atau "KB" di bagian akhir. Misalnya. "1GB".
  • -n pilihannya adalah untuk menamai volume logis ini.
  • Akhirnya Anda harus memberikan nama grup volume yang akan menjadi bagian dari volume logis ini. Jadi sambil memberikan volume logis dengan ukuran, pastikan grup volume memiliki ruang yang tersedia.

Jalankan perintah berikut pada mesin virtual:-

sudo lvcreate -L 5GB -n lv1 lvm_tutorial

Contoh keluaran:-

[email protected]:~$ sudo lvcreate -L 5GB -n lv1 lvm_tutorial
  Logical volume "lv1" created.

Operasi umum pada volume logis

Seperti yang saya katakan sebelumnya, Anda dapat menempatkan sistem file pada volume logis serta memasangnya di mana saja di sistem file.

Setelah dibuat, Anda dapat menemukan volume logis di /dev/<vgname>/<lvname> jalur. Misalnya dalam kasus kami volumenya akan berada di /dev/lvm_tutorial/lv1 .

[email protected]:~$ ls -l /dev/lvm_tutorial/lv1 
lrwxrwxrwx 1 root root 7 May 17 02:09 /dev/lvm_tutorial/lv1 -> ../dm-0

Sekarang Anda dapat menggunakannya seperti partisi apa pun. Format dengan ext4,

sudo mkfs.ext4 /dev/lvm_tutorial/lv1

Pasang di suatu tempat di struktur direktori Anda saat ini seperti /mnt ,

sudo mount -t ext4 /dev/lvm_tutorial/lv1 /mnt

Mengubah ukuran volume logis

Anda dapat memperluas volume logis menggunakan lvextend perintah dan kurangi ukurannya menggunakan lvreduce memerintah. Atau Anda dapat menggunakan perintah tunggal lvresize untuk menyelesaikan kedua tugas.

Pertama mari kita lihat apakah grup volume memiliki ruang tersisa di dalamnya atau tidak.

sudo vgs -S vgname=lvm_tutorial -o vg_free

Keluaran:-

[email protected]:~$ sudo vgs -S vgname=lvm_tutorial -o vg_free
  VFree 
  <4.99g

Menurut output, saya memiliki beberapa ruang tersisa, jadi mari kita tingkatkan ukuran volume sebesar 2GB.

Ingat volume logis masih terpasang di /mnt .

[email protected]:~$ mount | grep '/mnt'
/dev/mapper/lvm_tutorial-lv1 on /mnt type ext4 (rw,relatime)

Gunakan perintah berikut untuk mengubah ukuran volume:-

sudo lvresize -L +2GB lvm_tutorial/lv1

Sintaks umumnya adalah seperti ini:-

lvresize -L [+|-][Size] <vgname>/<lvname>

Simbol + atau - setelah -L tergantung pada apakah Anda mencoba memperbesar atau memperkecil ukuran volume.

Setelah ukuran volume meningkat, sistem file juga harus diubah ukurannya. Untuk ext4, perintah yang digunakan adalah resize2fs .

sudo resize2fs /dev/lvm_tutorial/lv1

Keluaran:-

[email protected]:~$ sudo resize2fs /dev/lvm_tutorial/lv1
resize2fs 1.45.5 (07-Jan-2020)
Filesystem at /dev/lvm_tutorial/lv1 is mounted on /mnt; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/lvm_tutorial/lv1 is now 1835008 (4k) blocks long.
Tidak semua sistem file mendukung pengubahan ukuran panas, Ext4 dan XFS adalah salah satu yang didukung. Saya sarankan Anda tetap berpegang pada ini.

Mengurangi volume logis adalah tugas yang sedikit lebih rumit dan saya tidak akan membicarakannya di artikel ini. Saya mengurangi ukuran volume ini sebesar 1 GB.

Menghapus volume logis

Anda menghapus volume logis dengan lvremove memerintah. Sintaks perintahnya adalah sebagai berikut:-

lvremove <vgname>/<lvname>

Jalankan perintah ini di mesin virtual:-

sudo lvremove lvm_tutorial/lv1

Keluaran:-

[email protected]:~$ sudo lvremove lvm_tutorial/lv1
Do you really want to remove and DISCARD active logical volume lvm_tutorial/lv1? [y/n]: y
  Logical volume "lv1" successfully removed

Ada banyak operasi lain yang dapat dilakukan pada volume logis, volume fisik, dan grup volume, tetapi tidak mungkin untuk menulis semua itu ke dalam satu artikel.

Saya memberi Anda satu disk lagi /dev/sde di mesin virtual. Gunakan, praktikkan beberapa perintah dari artikel ini, buat grup volume baru, perpanjang yang sudah ada, praktikkan saja.

Saya harap artikel ini bermanfaat bagi Anda, jika Anda ingin melihat lebih banyak tentang ini di masa mendatang, beri tahu saya di bagian komentar di bawah.


Linux
  1. Panduan terminal Linux untuk pemula

  2. Memperkenalkan panduan untuk komunikasi antar-proses di Linux

  3. Instal Linux Mint 19 di VirtualBox:Panduan Lengkap

  1. Panduan pemula untuk izin Linux

  2. Perintah Linux - Panduan Lengkap

  3. Panduan pemula untuk firewalld di Linux

  1. Panduan Lengkap untuk Memasang Linux di Chromebook

  2. Panduan pemula untuk pemecahan masalah jaringan di Linux

  3. Panduan pemula untuk menavigasi sistem file Linux