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.
