Ana içeriğe geç

Linux LVM Disk Genişletme İşlemi

Başlamadan önce sanal makinenin yedeği mutlaka alınmalı.

Sanal Disk Boyutunu Artırma (Host Üzerinde)

Sanal makinenin ana disk dosyasının toplam boyutunu host (ana makine) üzerinden büyütülmesi gerekmektedir.

1. Sanal Makine Kapatılır

virsh shutdown sanal_makine_adı

2. Sanal Disk Dosyasının Boyutunu Artırma

qemu-img resize /vm/disk/disk.qcow2 +10G

Bu komut diskin toplam boyutuna 10 GB ekler (örneğin 20G'den 30G'ye çıkarır).


1. Disk Bölümlerini Düzenleme (Sanal Makine İçinde)

Sanal makineyi başlatıp içindeki partition tablosunun düzenlenmesi gerekmektedir. qemu-img resize ile eklenen 10 GB'lık alan şu an "boş" durumda. Kök bölüm (/dev/vda1) ile bu boş alan arasında vda2 ve vda5 gibi başka bölümler varsa bunlar kaldırılıp vda1 genişletilir.

1. Sanal Makineyi Başlatma

Host üzerinden sanal makine başlatılır.

```bash virsh start sanal_makine_adı


### 2.  lsblk ile Disk Alanı Doğrulanır

Sanal makine içine girince `lsblk` komutu çalıştırılır. `vda` diskinin yeni boyutu (30G) doğrulanır. Eski bölümler hala görünmeli. Örnek çıktı:

```bash
root@python:~# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sr0     11:0    1 1024M  0 rom  
vda    254:0    0   30G  0 disk 
├─vda1 254:1    0   19G  0 part /
├─vda2 254:2    0    1K  0 part 
└─vda5 254:5    0  975M  0 part [SWAP]

3. Swap Alanını Devre Dışı Bırakma

Sistemde swap alanı olarak kullanılan bir bölüm varsa (örneğin /dev/vda5), fdisk işlemleri öncesinde devre dışı bırakılmalı. Diski sağa doğru genişletileceği için sağ tarafının boş olması önemli. Sonrasında disk bölümü yerine swapfile (takas dosyası) kullanılabilir.

swapoff SWAP-ALANININ-BULUNDUGU-PARTITION
# Örneğin: swapoff /dev/vda5

Swap'ın devre dışı kaldığı free -h komutuyla teyit edilir.

4. Disk Bölümlerini Silme ve Yeniden Oluşturma

fdisk aracını kullanarak disk üzerindeki eski bölümler (vda1, vda2, vda5) silinir. vda1 bölümü tüm diski kaplayacak şekilde yeniden oluşturulur. Böylece diskin başındaki veriler korunur. Sonundaki yeni alan da vda1'e dahil edilir.

fdisk /dev/vda

fdisk komut isteminde şunlar yapılır. Örnek çıktı aşağıdaki gibidir:

    root@python:~# fdisk /dev/vda

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

    This disk is currently in use - repartitioning is probably a bad idea.
    It's recommended to umount all file systems, and swapoff all swap
    partitions on this disk.


    Command (m for help): p

    Disk /dev/vda: 30 GiB, 32212254720 bytes, 62914560 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
    Disklabel type: dos
    Disk identifier: 0x4d8a8227

    Device     Boot    Start      End  Sectors  Size Id Type
    /dev/vda1  * 2048 39942143 39940096   19G 83 Linux
    /dev/vda2       39944190 41940991  1996802  975M  5 Extended
    /dev/vda5       39944192 41940991  1996800  975M 82 Linux swap / Solaris

    Command (m for help): d
    Partition number (1,2,5, default 5): 5

    Partition 5 has been deleted.

    Command (m for help): d
    Partition number (1,2, default 2): 2

    Partition 2 has been deleted.

    Command (m for help): d
    Selected partition 1
    Partition 1 has been deleted.

    Command (m for help): n
    Partition type
       p   primary (0 primary, 0 extended, 4 free)
       e   extended (container for logical partitions)
    Select (default p): p
    Partition number (1-4, default 1): 1
    First sector (2048-62914559, default 2048): 
    Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-62914559, default 62914559): 

    Created a new partition 1 of type 'Linux' and of size 30 GiB.
    Partition #1 contains a ext4 signature.

    Do you want to remove the signature? [Y]es/[N]o: no ((YES DENIRSE BUTUN VERILER SILINIR. NO DENMESI GEREKMEKTEDIR.))

    Command (m for help): p

    Disk /dev/vda: 30 GiB, 32212254720 bytes, 62914560 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
    Disklabel type: dos
    Disk identifier: 0x4d8a8227

    Device     Boot Start      End  Sectors Size Id Type
    /dev/vda1        2048 62914559 62912512  30G 83 Linux

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

3. Sistemi Yeniden Başlatma

fdisk'te yapılan disk bölümleme tablosu değişikliklerinin işletim sistemi tarafından algılanması için sanal makine yeniden başlatılır.

sudo reboot

Sanal makine yeniden başlatılıp tekrar oturum açıldıktan sonra bir sonraki adıma geçilebilir.


4. Dosya Sistemini Genişletme (Sanal Makine İçinde)

Disk bölümü (/dev/vda1) fiziksel olarak genişlese de, üzerindeki dosya sistemi (genelde ext4) bu yeni boyutu henüz kullanmaz. Şimdi dosya sistemi de bölümün tamamını kaplayacak şekilde büyütülür.

1. Disk Bölümü Boyutunu Doğrulama

Sanal makine içinde lsblk komutu çalıştırılır. vda1 bölümünün yeni boyutu (30G) teyit edilir.

root@python:~# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sr0     11:0    1 1024M  0 rom  
vda    254:0    0   30G  0 disk 
└─vda1 254:1    0   30G  0 part /

2. Dosya Sistemini Genişletme

Root dizinin bağlı olduğu /dev/vda1 bölümündeki ext4 dosya sistemi genişletmek için resize2fs komutu kullanılır:

resize2fs /dev/vda1

Bu komut dosya sistemini otomatik olarak bölümün tamamını kaplayacak şekilde genişletir.

3. Genişletmeyi Doğrulama

İşlem bitince df -h komutu tekrar çalıştırılır. /dev/vda1'in boyutunun 30G'ye yaklaştığı ve boş alanın arttığı görülür.

df -h