Ana içeriğe atla

Linux Logical Volume Management (LVM)

LVM, modüler disk veri kümesi veya kümeleri oluşturulmasını, böylelikle de istenildiğinde mevcut disk alanı üzerinde istenilen boyutlandırmanın yeniden yapabilmesini sağlar. Disk alanının yetersiz kaldığı durumlarda LVM ile oluşturulan disk veri kümesine kolaylıkla yeni disk veya disk bölümleri ilave edebilir, ihtiyaca göre disk alanı şekillendirilebilir. Özellikle büyük disk alanı ihtiyacı olan sistemlerde LVM ile disk veri kümeleri oluşturularak ya da sisteme yeni bir disk daha eklenerek toplam disk boyutu arttırılabilir veya sistemde pasif durumda olan bir disk bölümü aktif disk kümesine dahil edilebilir. Aynı zamanda mevcut disk bölümlerinin boyutları değiştirilebilir. Yapılacak fiziksel veri alanı değişikliklerinden sistemin mevcut haritası hiçbir şekilde etkilenmez ve yeni tanımlar yapmaya gerek kalmaz. Bir örnek ile ifade edilirse; sistemde /home için ayrılmış 100 GB’lık ve /var için ayrılmış 2GB’lık alanlar olsun. Zamanla /var için ayrılan disk alanın yetersiz gelmeye başladığı düşünülsün. Bu durumda /home alanında kullanılmayan yeterli boş alan varsa bu alan /var bölümüne aktarılabilir ve mevcut alan kolayca yeniden boyutlandırılabilir. Aynı şekilde /home için ayrılan alan yetmemeye başladığı zaman da sisteme eklenecek yeni bir disk ile bu bölüm için kullanılabilir veri alanı arttırabilir. Yedekleme (Mirror) yapılan sistemlerde kullanılan disk veri alanları genelde birden fazla diskin LVM veya aynı işi yapan başka yapılarla birleştirilerek veri kümesi oluşturulması ile sağlanır.LVM, hacim grubu (vp) ve bu grubun içinde fiziksel hacim (pv) ve mantıksal hacimlerden (lv) oluşur.

Volume Group (VG): Hacim grubu, fiziksel ve mantıksal hacimleri içine alan üst düzey bir katmandır.

Physical Volume (PV): Fiziksel hacim adından da anlaşılacağı üzere fiziksel aygıtlardan (disklerden) veya disk bölümlerinden oluşan kısımdır.

Logical Volume (LV): Disk bölümlerinin karşılığıdır. Dosya sistemi içerir.

LVM’nin Limitleri:

LVM bir takım limitler içerir. Ancak bu limitler günümüzde bile kolay aşılabilecek ve problem oluşturabilecek limitler değildirler. Ayrıca bu limitler çekirdeğin sınırlarına, fiziksel ve mantıksal birim boyutlarına göre de sistemden sisteme farklılık gösterebilir.

Makine başına oluşturulabilecek maksimum hacim grubu (VG) sayısı 99 ‘dur.

Her hacim grubu içinde olabilecek maksimum fizisel hacim sayısı 256 dır. Tek bir LVM boyutu varsayılan 4 MB fiziksel birim değeri ile maksimum 255.99 GB olabilir. Bu değer kullanılan sistemin özelliğine göre 2 TB hatta istenildiğinde 1 Petabyte ‘a kadar çıkabilir.

Her fiziksel hacim grubu yine varsayılan 4 MB’lık fiziksel birim değeri ile maksimum 262 GB olabilir. Yani her fiziksel hacim grubu maksimum 65534 tane fiziksel birim içerebilir bu da varsayılan 4 MB’lık değer ile 65534*4 = 262 GB ‘a denk gelir.

1. “LVM” de kullanılan komutlar ve görevleri aşağıdaki gibidir.
-- LVM'de Kullanılan Komutlar ve Görevleri

-- "pvcreate" sisteme diski veya bölümü fiziksel olarak tanıtır.
Genellikle  fdisk'ten sonra kullanılır.

# pvcreate /dev/sdb1

-- "pvdisplay" fiziksel tanımlı diskleri ve bölümleri ekrana listeler.

# pvdisplay 

-- "pvremove" fiziksel tanımlı diskin veya bölümün tanımını iptal eder.

# pvremove /dev/sdb1

-- "vgcreate" hacim grubu oluşturur.

# vgcreate vg0 /dev/sdb1 /dev/sdb2

-- "vgextend" hacim grubuna disk veya bölüm ekler.

# vgextend vg0 /dev/sdc

-- "vgreduce" hacim grubundan disk veya bölüm çıkartır.

# vgreduce vg0 /dev/sdc
-- "vgremove" hacim grubununu kaldırır.

# vgreduce vg0

-- "vgdisplay" hacim grubunu listeler.

# vgdisplay vg0

-- "vgcfgbackup" mevcut hacim grubunun ayarlarını bir dosyaya yedekler.

# vgcfgbackup vg0

(Ayarlar /etc/lvm/backup dizini altına yedeklenir.) 

-- vgcfgrestore mevcut hacim grubunun ayarlarını dosyadan düzenler.

# vgcfgrestore vg0

-- "lvcreate" tanımlı mantıksal gruptan disk alanı oluşturur.

Örnek : /dev/vg0/lv_name isimli 40Gblık mantıksal sürücü oluşturmak için

# lvcreate -n lv_name -L40GB vg0

-- "lvdisplay" mantıksal sürücüleri ekrana listeler.

# lvdisplay

-- "lvremove" mantıksal sürücüleri kaldırır. 

# lvremove /dev/vg0/lv_name

-- "lvreduce" tanımlı mantıksal sürücülerden blok siler.

# lvreduce -L-10GB /dev/vg0/lv_name

(10GBlik alanı iptal eder.) 

-- "lvextend" tanımlanmış mantıksal sürücüye blok ekler.

# lvextend -L+10GB /dev/vg0/lv_name

(10GBlik alan ekler.) 

-- "lvmdiskscan" Sistemdeki tüm diskleri listeler.

# lvmdiskscan
2. Örnek olarak LVM kullanarak disk yapılandırmamızı inceleyelim. Sistemimize atanmış olan bir diski LVM kullanarak önce “Volume Group”, “Pyhcisal Volume” ve “Logical Volume” olmak üzere yapılandıralım.
-- Kullanacağımız diskimizde "partition table" oluşturuyoruz. komut sonrası aşağıdaki
girişleri yapıyoruz.

-- (n, p, 1, enter, enter, w)

# fdisk /dev/sdb

Command (m for help): n

primary partition (1-4) p

Partition number (1-4): 1

First cylinder (1-652, default 1): 

Last cylinder, +cylinders or +size{K,M,G} (1-652, default 652): 

Command (m for help): w
The partition table has been altered!

-- Öncelikle disklerimizi listeliyoruz.

# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb  /dev/sdb1

Burada gördüğümüz "sda" disklerimiz önceden kullandığımız işletim sistemi
ile gelen disklerimizdir. "sdb" ise sistemimize yeni takılmış diskimizdir.
Bu diski yapılandırıp kullanabilir hale getireceğiz.

-- Öncelikle "Pyhsical Volume" oluşturuyoruz.

# pvcreate /dev/sdb
Physical volume "/dev/sdb1" successfully created

-- Diskimizi bağlayacağımız bir Volume Group oluşturuyoruz.

# vgcreate vg_krykey /dev/sdb1
Volume group "vg_krykey" successfully created

-- "vg_krykey" volume grup içinde bir tane data1 isimli disk oluşturuyoruz.

# lvcreate -n lv_data1 -L1GB vg_krykey
Logical volume "lv_data1" created

-- Oluşturduğumuz "Volume Group" ları listelemek için aşağıdaki komutu 
kullanıyoruz.

# vgdisplay
  --- Volume group ---
  VG Name               vg_krykey
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  6
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               5.00 GiB
  PE Size               4.00 MiB
  Total PE              1279
  Alloc PE / Size       256 / 1.00 GiB
  Free  PE / Size       1023 / 4.00 GiB
  VG UUID               sE5T92-3CCj-2cZO-BWyc-1noM-VkhK-B4Jhnw

-- "Volume Group" altındaki disklerimizi göremek için aşağıdaki komutu
kullanabiliriz.

# pvscan
PV /dev/sdb    VG vg_krykey     lvm2 [5.00 GiB / 4.00 GiB free]

-- Oluşturduğumuz diskleri aşağıdaki komutla listeleyebiliriz.

# lvscan
  ACTIVE            '/dev/vg_krykey/lv_data1' [1.00 GiB] inherit

-- Diskimizi "ext4" file system ile formatlıyoruz.

# mkfs.ext4 /dev/vg_krykey/lv_data1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376

Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 33 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

-- Formatlamış olduğumuz diskimizi bağlayacak bir dizin yaratıyoruz.

# mkdir /data1

-- Diskimizi oluşturduğumuz dizine "mount" ediyoruz.

# mount /dev/mapper/vg_krykey-lv_data1 /data1

-- Sistemimiz açıldığında otomatik mount etmesi için "fstab" dosyasına
aşağıdaki girdileri yapmalıyız.

/dev/mapper/vg_krykey-lv_data1 /data1                 ext4    defaults        0 0
3. Sistemimizde bulunan “Logical Volume”, “Volume Group” ve “Pyhciscal Volume”leri silmek için aşağıdaki adımları izlemeliyiz.
-- Disklerimizi ve "Volume Group" ları kaldırmak için aşağıdaki sırasıyla aşağıdaki
adımları izlemeliyiz.

-- Öncelikle kaldıracağımız diskimizi "umount" ediyoruz.
# umount /data1

-- Logical Volume kaldırmak için 
(Sadece bir disk kaldıracaksak bu adımı uygulamalıyız.)

# lvremove /dev/vg_krykey/lv_data1
Do you really want to remove active logical volume lv_data1? [y/n]: y
Logical volume "lv_data1" successfully removed

-- Volume Group kaldırmak için (Tüm volume group ve bağlı diskleri kaldıracaksak
aşağıdaki adımı uygulamalıyız.

# vgremove vg_krykey

-- Pyhsical Volume kaldırmak için
(Sistemimizdeki diski LVM kullanımı dışına çıkartacaksak bu adımı uygulamalıyız.)

# pvremove /dev/sdb
Labels on physical volume "/dev/sdb1" successfully wiped

-- Kaldırma işlemi tamamlandı. Aşağıdaki komut ile durumu sorgulayabiliriz.

# vgdisplay
4. Sistemimizde bulunan bir diskle veya yeni takılan bir diskle mevcut alanlarımızı genişletmek için aşağıdaki adımları izlemeliyiz.
-- Öncelikle ekleyeceğimiz diskimizi sorguluyoruz.

# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb

-- Burada "sdb" isimli diskimiz mevcut "Volume Group" ekleyeceğimiz disktir.

-- "Volume Group" sorguluyoruz.

# vgdisplay
  --- Volume group ---
  VG Name               vg_koraykey
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               99.51 GiB
  PE Size               4.00 MiB
  Total PE              25474
  Alloc PE / Size       25474 / 99.51 GiB
  Free  PE / Size       0 / 0   
  VG UUID               iBHPHX-4MC0-bvWQ-3sOV-0Rb4-lYcS-3Uac3B

-- "vg_koraykey" volume grubumuza yeni takdığımız diskimizi ekleyeceğiz.

-- Öncelikle diskimizde "fdisk" komutu ile "partition table" yaratıyoruz.

-- (n, p, 1, enter, enter, w)

# fdisk /dev/sdb

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x1c26daf1.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-652, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-652, default 652): 
Using default value 652

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

-- Disklerimizi yeniden sorguluyoruz.

# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb  /dev/sdb1

-- "sdb1" isimli oluşan diskimizi mevcut "vg_koraykey" volume grubumuza
ekliyoruz.

# vgextend vg_koraykey /dev/sdb1
No physical volume label read from /dev/sdb1
Physical volume "/dev/sdb1" successfully created
Volume group "vg_koraykey" successfully extended

-- "Volume Group" sorguluyoruz ve "Free" alanımızın 0 dan 4.99 GB çıktığını
görüyoruz.

# vgdisplay
  --- Volume group ---
  VG Name               vg_koraykey
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               104.50 GiB
  PE Size               4.00 MiB
  Total PE              26752
  Alloc PE / Size       25474 / 99.51 GiB
  Free  PE / Size       1278 / 4.99 GiB
  VG UUID               iBHPHX-4MC0-bvWQ-3sOV-0Rb4-lYcS-3Uac3B

-- Şimdi atadığımız bu diskimizdeki 4.99 GB alanı "lv_root" isimli diskimize
ekleyelim.

# lvextend -L+4.99GB /dev/vg_koraykey/lv_root
  Rounding size to boundary between physical extents: 4.99 GiB
  Extending logical volume lv_root to 100.50 GiB
  Logical volume lv_root successfully resized

-- "Volume Group" sorguluyoruz ve 99.51 GB alanımızın 104.50 GB çıktığını görüyoruz.
# vgdisplay
  --- Volume group ---
  VG Name               vg_koraykey
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               104.50 GiB
  PE Size               4.00 MiB
  Total PE              26752
  Alloc PE / Size       26752 / 104.50 GiB
  Free  PE / Size       0 / 0   
  VG UUID               iBHPHX-4MC0-bvWQ-3sOV-0Rb4-lYcS-3Uac3B
5. Sistemimizde bulunan bir diski küçültüp boşa çıkan alanı başka bir diske veya boşa çıkan alanla yeni bir “Logical Volume” oluşturmak istiyorsak aşağıdaki adımları izlemeliyiz.
-- Öncelikle Volume Group sorguluyoruz.

# vgdisplay
  --- Volume group ---
  VG Name               vg_koraykey
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               104.50 GiB
  PE Size               4.00 MiB
  Total PE              26752
  Alloc PE / Size       26752 / 104.50 GiB
  Free  PE / Size       0 / 0   
  VG UUID               iBHPHX-4MC0-bvWQ-3sOV-0Rb4-lYcS-3Uac3B

-- Bir "Logical Volume" 4.99 GB alanı boşa çıkartalım.

# lvreduce -L-4.99GB /dev/vg_koraykey/lv_root

  Rounding size to boundary between physical extents: 4.99 GiB
  WARNING: Reducing active and open logical volume to 95.51 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv_root? [y/n]: y
  Reducing logical volume lv_root to 95.51 GiB
  Logical volume lv_root successfully resized

-- Çıkarttığımız 4.98 GB alan ile yeni bir "Logical Volume" oluşturalım.

# lvcreate -n lv_data -L4.98GB vg_koraykey
  Rounding up size to full physical extent 4.98 GiB
  Logical volume "lv_data" created

-- Çıkartığımız 4.98 GB alanı varolan bir "Logical Volume" eklemek için

# lvextend -L+4.98GB /dev/vg_koraykey/lv_data
  Rounding size to boundary between physical extents: 4.98 GiB
  Extending logical volume lv_data to 100.50 GiB
  Logical volume lv_data successfully resized
6. LVM için yaptığımız ayarları yedeklemek veya geri dönmek için aşağıdaki adımları izlemeliyiz. Burada verileri değil sadece LVM ayarlarını yedekle veya geri dönmektedir.
-- Ayarlarımızı yedeklemek için
( "/etc/lvm/backup" dizini altına yedeklenir.)

# vgcfgbackup vg_koraykey
  Volume group "vg_koraykey" successfully backed up.

-- Ayarlarımızı yedekten dönmek için

# vgcfgrestore vg_koraykey
  Restored volume group vg_koraykey
7. LVM aracına grafik arayüzden erişmek için “System>Administration>Logical Volume Management” yolunu izleyebiliriz.

Kaynak: http://www.koraykey.com/?cat=8

Yorumlar

Bu blogdaki popüler yayınlar

Basit ve Dinamik Disk Nedir? Birbirine Nasıl Dönüştürülür?

Sabit diskler Windows 2000 işletim sistemine kadar sadece temel disk (basic disk) olarak ayarlanabiliyordu. Temel disk en fazla 4 birincil bölüm (primary partition) veya 3 primary ve 1 genişleyebilir bölüm (extended partition) şeklinde yapılandırılabilir. Bir temel diskte sadece 1 tane extended partition oluşturulabilir ve sadece primary partitionlara işletim sistemi kurulabilir. Windows 2000 ile gelen dinamik disk teknolojisi, Windows 2000 den sonraki tüm Windowssürümlerinde kullanılabilmektedir. Dinamik disk kavramıyla bölüm (partition) kavramı yerinihacim (volume) kavramına bırakmıştır. Dinamik disklerde, temel disklerde olduğu gibi bir sınırlama yoktur. İstenildiği kadar volume oluşturabilir, temel disk istenirse dinamik hale getirebilir ve bu işlem esnasında herhangi bir veri kaybı yaşanmaz. Fakat dinamik diskler temel diske çevirildiğinde bir veri kaybı söz konusu olacaktır. Temel diskin bilgileri kayıt defterinde tutulur. Dinamik diskin bilgileri kendi üstünde tutulur.

GASoft MathOperations.msi

Parantezli ve içiçe yazılmış matematiksel işlemleri hesaplar. https://github.com/gursuasik/MathOperations

Einstein'in Rölativite Kuramına Bakış

Bu yüzyılın başlarında kuramsal fizikte altın çağ başladığı zaman, adı henüz bilim dünyasında duyulmamış bir fizikçi vardı. Bu, Annalen der Physık’in 1905 tarihli sayısında fotoelektrik olayı, Brown hareketi ve özel görelilikle ilgili ünlü üç çalışmasını birden yayınlayarak üne kavuşan Albert Einstein’dır. Onun fizikteki hayat boyu çalışmaları bilimin felsefesi ve yöntemleri üzerinde büyük etki yaptı. Einstein’ın kendisi bilimci filozoftu. Bu yüzyılın başlarında kuramsal fizikte altın çağ başladığı zaman, adı henüz bilim dünyasında duyulmamış bir fizikçi vardı. Bu, Annalen der Physık’in 1905 tarihli sayısında fotoelektrik olayı, Brown hareketi ve özel görelilikle ilgili ünlü üç çalışmasını birden yayınlayarak üne kavuşan Albert Einstein’dır. Onun fizikteki hayat boyu çalışmaları bilimin felsefesi ve yöntemleri üzerinde büyük etki yaptı. Einstein’ın kendisi bilimci filozoftu. O, hayranlık uyandırıcı bir şekilde felsefeyi kullanarak bugün modern bilimin önemli bir kısmı olan buluşlarını