Suse ile LVM Disk Kapasitesini Genişletme

Standard

Herkese merhabalar,

Aklımın hep bir köşesinde duran bukalemun ile sonunda yollarımız kesişti. Zypper’ından Yast’ına, kendisiyle başlarda birbirimizi bir tur tartsakta, geçen günlerle beraber samimiyetimiz günden güne artarken, kendisi hakkında da derli toplu bir makale yazmak için elime geçen fırsatı kaçırmak istemedim…

Genellikle kurulum esnasında next->next->finish yapsakta disk biçimlendirme kısmında mutlaka görmüşsünüzdür “LVM” ibaresini.

Bu ibarenin bize sağladığı, işletim sistemini kurduğunuz diski isteğiniz biçimde genişletip daraltmaya imkan tanımasıdır.

Şimdi bu işlemin nasıl gerçekleştirileceğinin üzerinden teorik olarak geçelim.

Diyelim ki elinizde bir sunucu var ve bu sunucuya ayrılan alan 40 GB, ancak ilerleyen süreçte, siz bunu 100 GB’a terfi ettirme kararı aldınız. Bu durumda öncelikle Virtualbox/Wmvare ya da hangi sanallaştırma birimi üzerinde sunucunuz var ise o kısımdan sunucunuza ayırdığınız disk alanını artırıyorsunuz (makalenin başlığı bu olmadığı için bu konunun anlatımına şuradan ulaşabilirsiniz).

Artık işletim sisteminizde “fdisk -l” komutunu verdiğinizde şöyle bir çıktı alacaksınız:

root@sezer:~ # fdisk -l
Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors
Disk model: Virtual disk    
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: B206C880-MASK-BY00-SZRB-C9B0ED1C9F5B

Device       Start      End  Sectors Size Type
/dev/sda1     2048  2099199  2097152   1G EFI System
/dev/sda2  2099200 83886046 81786847  39G Linux LVM

Koyu kısma dikkat ederseniz, disk alanınız 100 GB gözükürken /dev/sda2’deki alanınız 39 GB.

Suse yapı olarak direk ayrılmamış(unallocated) alanı varolan diskinize eklemenize müsaade etmez. Öncelikle onu bir volume olarak sisteme tanıtıp, sonrasında genişletmek istediğiniz diskinize eklemenizi bekler.

Ayrılmamış Alanı Biçimlendirme

Bu nedenle “fdisk /dev/sda” diyerek diskimizi biçimlendirmeye başlıyoruz:

root@sezer:~ # fdisk /dev/sda

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


Command (m for help): n
Partition number (3-128, default 3): 
First sector (83886047-209715166, default 83886080): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (83886080-209715166, default 209715166): 

Created a new partition 3 of type 'Linux filesystem' and of size 60 GiB.

Command (m for help): t
Partition number (1-3, default 3): 3
Partition type (type L to list all types): 8e

Type of partition 3 is unchanged: Linux filesystem.

Command (m for help): w
The partition table has been altered.
Syncing disks.

fdisk komutundan sonra “n” komutu vererek yeni bir partition oluşturuyoruz, eğer diskin tamamını kullanacaksanız (benim gibi) diğer kısımları enter enter diyerek geçebilirsiniz. Eğer aklınızda bir başka plan varsa (mesela 2 farklı partition oluşturmak gibi), sektörlere bölerek GB hesabına göre değerleri girebilirsiniz. Burada dikkat etmeniz gereken, OS’in maksimum 4 ana partitiona sahip olabileceğidir, o nedenle sonrası için extended olarak belirleme yapmanız gerekmektedir.

Diski oluşturduktan sonra, emin olmak için “t” komutu ile tipinin Linux filesystem olduğundan emin olmak için “8e” olarak belirtiyoruz. Sistem varsayılan olarak artık bu şekilde oluştursa da eski sistemler için kontrol etmekte fayda olduğundan burada yazma ihtiyacı duydum.

Son olarak yaptıklarınızı kaydetmeyi unutmayın, “w” komutu ile (write) yaptığınız değişiklikleri kaydedin.

Bu noktada değişikliklerin sistem tarafından algılanması için sunucuyu yeniden başlatabilirsiniz (tavsiye ederim). Eğer yeniden başlatmanız mümkün değilse :

root@sezer~$ partprobe -s

komutunu vererek güncellemeyi yapabilirsiniz. Şimdi değişikliklerin doğru şekilde uygulandığından emin olalım:

root@sezer:/ # fdisk -l
Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors
Disk model: Virtual disk    
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: B206C880-BURASI-MASKELENDI-8607-C9B0ED1C9F5B

Device        Start       End   Sectors Size Type
/dev/sda1      2048   2099199   2097152   1G EFI System
/dev/sda2   2099200  83886046  81786847  39G Linux LVM
/dev/sda3  83886080 209715166 125829087  60G Linux filesystem


Disk /dev/mapper/vg_all-lv_root: 20 GiB, 21474836480 bytes, 41943040 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

Yeni Oluşturulan Alanı Ana Dizine Ekleme

Şimdi fiziksel olarak volume oluşturarak başlayalım:

root@sezer: # pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created.

Yeni diski sisteme ekleyebilmek için volume grubumuzu bulmamız gerekmekte:

root@sezer: # vgdisplay
  --- Volume group ---
  VG Name               vg_all

Bende “vg_all” olarak gözüken kısım, sizde farklı olabilir, bu değeri ilerleyen süreçte kullanacağımız için, yazdığım komutları siz de kendinize göre özelleştirmeyi unutmayın. Şimdi oluşturduğumuz diski, varolan volume grubumuza dahil ediyoruz:

root@sezer:~ # vgextend vg_all /dev/sda3
  Volume group "vg_all" successfully extended

Şimdide LV grubumuza aynı şekilde sda3’ü dahil ediyoruz:

root@sezer:~ # pvscan
  PV /dev/sda2   VG vg_all          lvm2 [39.00 GiB / 19.00 GiB free]
  PV /dev/sda3   VG vg_all          lvm2 [60.00 GiB / 60.00 GiB free]
  Total: 2 [98.99 GiB] / in use: 2 [98.99 GiB] / in no VG: 0 [0   ]
root@sezer:~ # lvextend /dev/vg_all/lv_root /dev/sda3
  Size of logical volume vg_all/lv_root changed from 20.00 GiB (5120 extents) to 80.00 GiB (20479 extents).
  Logical volume vg_all/lv_root successfully resized.

Neredeyse işlemimiz tamam, şimdi diskimizin boyutunu genişletelim:

root@sezer:~ # lvextend -r -l  +100%FREE /dev/mapper/vg_all-lv_root 
  Size of logical volume vg_all/lv_root changed from 39.00 GiB (9983 extents) to 98.99 GiB (25342 extents).
  Logical volume vg_all/lv_root successfully resized.
meta-data=/dev/mapper/vg_all-lv_root isize=512    agcount=4, agsize=1310720 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1 spinodes=0 rmapbt=0
         =                       reflink=0
data     =                       bsize=4096   blocks=5242880, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 5242880 to 25950208

Değişikliğin geçerli olup olmadığına bakalım:

root@sezer:~ # df -h /
Filesystem                  Size  Used Avail Use% Mounted on
/dev/mapper/vg_all-lv_root   100G  2.5G   78G   4% /

Bu etapta benim de aklıma gelen, muhtemelen “fdisk -l” komutunu verdiğinizde artık 2 SDA disk gördüğünüzde sizin de aklınıza gelecek olan “madem biz bu diski genişletiyoruz, neden tek disk haline getirmiyoruz?” sorusunu duyar gibiyim. Birkan Herdinç sağolsun sorumu yanıtladı, bir disk oluşturulurken, onu ilk ve son bloklarını sisteme yazarız, eğer diski genişletmeye kalkarsak bu bloklar ve kayıtlar güncelleneceğinden, sonrasında sistem hatalarına karşı en uygun yöntem (best practise) bu olduğu için, disk genişletmek istediğimizde direkt diski genişletmek yerine VG(virtual group)’yi genişletmek daha güvenli.

Bir başka yazımda görüşmek üzere.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site istenmeyenleri azaltmak için Akismet kullanır. Yorum verilerinizin nasıl işlendiğini öğrenin.