Linux altında LVM kullanımı

taydin

Timur Aydın
Staff member
Katılım
24 Şubat 2018
Mesajlar
21,557
LVM (Logical Volume Management), GNU/Linux işletim sistemlerinde, birden fazla diskin saklama kapasitesini tek bir disk şeklinde kullanıma sunan bir özelliktir. Örneğin elinizde 1 TB, 2 TB, ve 500 GB kapasiteye sahip üç tane harddisk var. Bunları ayrı ayrı harddisk olarak kullanmak yerine, 3.5 TB kapasiteye sahit tek bir disk şeklinde kullanmak daha avantajlıdır, çünkü harddisk yakın zamanda dolmayacağı için doldu mu dolmadı mı diye kafayı yormaya gerek yok.

Bunun dışında, LVM ile oluşturulan bir saklama alanını doldurduğumuzda, yeni bir disk ilave ederek kapasiteyi artırabiliriz, ve bunu yaparken hiçbir formatlama, partition boyut ayarlama veya başka türlü bir veri kaybı sözkonusu değil.

Aşağıda, gerçek bir sistemdeki (benim evdeki linux sistem :) ) örnek üzerinden, 4 ayrı diskten meydana gelen bir LVM saklama alanının nasıl hazırlandığını anlatacağım.
 
Son düzenleme:
STRIPPED RAID ile LVM yi tarışmaya dahil edebilirmiyiz.?

Şimdiye kadar denediğim bir şey değil, bilgim yok konu ile ilgili. Ama referans dokümanına bağlantı vereceğim, isteyen araştırabilir.
 
Evet elimde daha önceden ayrı zamanlarda aldığım 4 tane harddisk var. Bunları bir tek büyük bir disk haline getirip, backup, audio test dosyaları, müzik kolleksiyonu, ve youtube videolarına saklama alanı olarak kullanacağım.

/dev/sda 2 TB
/dev/sdb 2 TB
/dev/sdj 1 TB
/dev/sdf 2 TB

Kullandığım LVM versiyon bilgileri:

Kod:
root@bonsai:~# pvcreate --version
  LVM version:     2.02.168(2) (2016-11-30)
  Library version: 1.02.137 (2016-11-30)
  Driver version:  4.35.0
root@bonsai:~#
 
Öncelikle bu disklerin her birisine, diskin tamamını kaplayan tek bir bölüm oluşturacağız. Aşağıda, bu işlemin /dev/sda için yapılış prosedürü var, bunu diğer diskler için de tekrarlayacağız

Kod:
root@bonsai:~# fdisk /dev/sda

Welcome to fdisk (util-linux 2.29.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): g
Created a new GPT disklabel (GUID: 9F5AD454-BD8C-4291-9185-C96644AA9B25).

Command (m for help): n
Partition number (1-128, default 1):
First sector (2048-3907029134, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-3907029134, default 3907029134):

Created a new partition 1 of type 'Linux filesystem' and of size 1.8 TiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

root@bonsai:~#
 
Bölümleme tamamlandıktan sonra, bu disk bölümlerinin tamamını yeni bir "physical volume" içine koyacağız

Kod:
root@bonsai:~# pvcreate /dev/sda1 /dev/sdb1 /dev/sdj1 /dev/sdf1
  Physical volume "/dev/sda1" successfully created.
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdj1" successfully created.
  Physical volume "/dev/sdf1" successfully created.
root@bonsai:~#
 
Sonra da yeni bir "volume group" oluşturacağız ve bunu isimlendireceğiz

Kod:
root@bonsai:~# vgcreate vg1 /dev/sda1 /dev/sdb1 /dev/sdj1 /dev/sdf1
  Volume group "vg1" successfully created
root@bonsai:~#
 
Sonra da vg1 ile yeni bir "logical volume" oluşturacağız. Buna da bir isim veriyoruz. Boyut olarak da, mevcut olan bütün kapasiteyi kullansın diyoruz

Kod:
root@bonsai:~# lvcreate --name storage -l 100%VG vg1
  Logical volume "storage" created.
root@bonsai:~#


Oluşturduğumuz bu "logical volume" ile ilgili bilgi almak için aşağıdaki komutu girebiliriz

Kod:
root@bonsai:~# lvdisplay /dev/vg1/storage
  --- Logical volume ---
  LV Path                /dev/vg1/storage
  LV Name                storage
  VG Name                vg1
  LV UUID                pJXelV-YYkJ-epG0-pUGc-Pl18-dp6u-lEgx26
  LV Write Access        read/write
  LV Creation host, time bonsai, 2019-03-08 12:12:19 +0300
  LV Status              available
  # open                 1
  LV Size                6.37 TiB
  Current LE             1669259
  Segments               4
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:0
 
root@bonsai:~#
 
Son düzenleme:
Artık elimizde /dev/vg1/storage diye yeni bir sanal disk bölümü var. Bunun üzerinde, tıpkı başka disk bölümlerine yaptığımız gibi bir filesystem oluşturacağız:

Kod:
root@bonsai:~# mkfs.ext4 /dev/vg1/storage
mke2fs 1.43.4 (31-Jan-2017)
Creating filesystem with 1709321216 4k blocks and 213667840 inodes
Filesystem UUID: 2875d0dd-8d0c-45e4-9a58-9d5b932e0103
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000, 214990848, 512000000, 550731776, 644972544

Allocating group tables: done                           
Writing inode tables: done                           
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done       

root@bonsai:~#
 
Sonra, yine normal harddisk bazlı disk bölümlerinde yaptığımız gibi, bu bölümü "mount" edeceğiz ve artık bu saklama alanı kullanılabilir hale gelecek

Kod:
root@bonsai:~# mount /dev/vg1/storage /extrahd4
root@bonsai:~#


Artık oluşturduğumuz bu sanal disk kullanıma hazır. Kullanılabilir alana bakalım:

Kod:
root@bonsai:~# df /dev/vg1/storage
Filesystem               1K-blocks  Used  Available Use% Mounted on
/dev/mapper/vg1-storage 6782330112 90140 6440359348   1% /extrahd4
root@bonsai:~#

6.5 TB gibi bir saklama alanı var.
 
LVM ile ilgili daha fazla detay ve farklı kullanım senaryoları için, LVM'nin ana dokümantasyonu olan LVM HOWTO ya bakabilirsiniz.

http://tldp.org/HOWTO/LVM-HOWTO/
 
Belki şunu merak edebilirsiniz: Disklerin takıldığı SATA soketlerine göre, veya sisteme takılı olan disk sayısına göre, disklere karşılık gelen "device node" lar değişmektedir. Mesela daha /dev/sdj olan disk, sonradan /dev/sdm haline gelebilir. Bu durumda bizim oluşturduğumuz bu LVM disklerine ne olacak? Hiçbirşey olmayacak :) LVM, her diskin bölümüne bir UUID string yazar ve buna göre LVM diskini yapılandırır, dolayısıyla sistemdeki değişikliklerden etkilenmeyecektir.
 
Herhangi bir diskte problem meydana gelirse ne olur? Tüm veriler mi kaybolur yada sadece o diske karşılık gelen veriler mi?
 
LVM kullanılmadığında, tek harddisk'te kısmi bozulma olduğunda ne olursa burada da aynı şey olur. LVM'nın burada yarattığı bir farklılık yok.

Ama bilinçli bir linux kullanıcısı zaten smartmontools kullanıyordur ve LVM'yi meydana getiren disklerden birisi "gidici" ise bunu bilir. Bu durumda LVM, o diskin yenisi ile değiştirilmesine izin veriyor. Bunun prosedürünü şu anda ben de bilmiyorum, ama dokümanlarda anlatılıyordur. Sırası gelince bu prosedürü uygularsam, buraya da ilgili bir konu açarım.
 
Son düzenleme:
Geçmişte LVM denemiştim ve büyük bir yavaşlamaya sebep olduğunu hatırlıyorum. Belki iyileştirmeler yapılmıştır ve artık bu bir sorun olmaktan çıkmıştır. Sizin hazırladığınız LVM diskte performans nasıl?
 
Ben herhangi bir performans farkı hissetmiyorum. LVM ilave işlemler yapıyor, mutlaka bir fark olacaktır, ama bu farkın çok cüzi olmasını bekliyorum.

Eğer geçmişte büyük bir fark gördüysen, sebebi şu olabilir: LVM'nin önemli kullanım sebeplerinden birisi de, elimizde bir sürü küçük kapasiteli ve ESKİ harddisk vardır ve bunları atmayıp değerlendirmek isteriz. Durum böyle olunca, zaten harddiskler eski ve yavaş, o yüzden LVM ile oluşturulan sanal disk de haliyle yavaş olacak.

Ama bende iki tane LVM disk var. Birisi, yukarıda oluşturduğum ve eski harddisk'lerden olan disk. Ama harddisk'ler eski de olsa iyi performans diskler. Diğeri için de iki tane yeni 4 TB disk aldım ve bunlarla bir sanal disk oluşturdum. İkisi de gayet güzel performansla çalışıyor, bir fark hissetmiyorum.
 
Eğer bir SATA disk mount edilmemişse, SATA kablosunu çıkarıp takmak hiçbir soruna sebep olmaz. Şimdiki anakarların hepsinde "hot swap" destekleyen SATA denetleyiciler var. Ama mount edilmiş durumda olan bir SATA diskin kablosu çekilirse, veri kaybına sebep olma şansı yüksek. Bunun sebebi de Linux'un agresif cache politikası. Linux kernel, diskteki verileri mümkün mertebe RAM'de tutar ve sadece gerektiğinde diske yazar.
 
LVM olmayan diskte durum neyse, LVM volume'da da aynı. Mount edilmemişse, disklerin teker teker çıkarılması bir soruna sebep olmuyor. Ama mount edilen bir LVM volume'da bir disk çıkarılırsa veri kaybı ihtimali var.
 
Ben hala MFT ile uğraşmaktayım.
Anlaşılan sizin linux sürümünde GPT (GUID Partition Table) oluşturabilmekte.
MFT disk dizilimlerinde birbirlerine eklenen diskler DYNAMIC DISC dizilimleri olarak adlandırılmakta olup, veri güvenliği bulunmamaktadır.
Bu yapılan işlemde herhangi bir disk devreden çıkartılırsa (HOT-SWAP) acaba veri güvenliği garantisi var mıdır.

MFT yerine MBR olmasın? MFT, NTFS dosya sisteminde özel bir dosyadır.
 
Ben daha önce LVM kullandım ama kötü tecrübelerim oldu. Bunlar o dönem ki bilgi eksikliğimden de kaynaklanıyor. FreeNAS kurulumu yapmıştım. Fotoğraf, video, müzik ne varsa içine attım. LVM disklerden birini yanlışlıkla sildim. Diğer diskteki verilere de bir daha erişemedim. Neyse ki homurdana homurdana para verdiğim düğün fotoğraflarını DVD içinde vermişlerdi ve artık DVD'de bir şey tutmuyorum, hatta kırıp atıyordum ama bunlar duruyordu... Diğerleri gitti tabi :D LVM kullanmak için gerekli tecrübenin maliyeti bu oldu.
 

Forum istatistikleri

Konular
5,659
Mesajlar
97,353
Üyeler
2,438
Son üye
İbrahimSönmez

Son kaynaklar

Son profil mesajları

cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Kesici/Spindle hızı hesaplamak için SpreadSheet UDF'leri kullanın, hesap makinesi çok eski kalan bir yöntem :)
Dr. Bülent Başaran,
Elektrik ve Elektronik Mühendisi
Yonga Tasarım Özdevinimcisi
Üç güzel "çocuk" babası
Ortahisar/Ürgüp/Konya/Ankara/Pittsburgh/San Francisco/Atlanta/Alaçatı/Taşucu...

Back
Top