---
title: "Proxmox - Thin Provisioning Volumes in Logical Volume"
description: "Bu yazıda thin provision olarak tanımlanan disk üzerinde lv oluşturup mount ettim."
image: "https://sezer.in/wp-content/uploads/2022/02/lnx.jpeg"
url: "https://sezer.in/proxmox-thin-provisioning-volumes-in-logical-volume/"
date: "2022-02-09T22:40:25+03:00"
updated: "2026-10-31T23:43:58+03:00"
author: "Sezer Şanlıkan"
lang: "tr"
source: "https://sezer.in/proxmox-thin-provisioning-volumes-in-logical-volume/"
---

# Proxmox - Thin Provisioning Volumes in Logical Volume

Proxmox thin provisioning volumes in logical volume konusu, thin pool içinde istediğiniz boyutta bir volume açıp gerçek diski yalnız veri yazıldıkça kullanmak anlamına geliyor. Bu yazıda bir LVM thin pool üzerinde geçici bir alan oluşturacak, mount edip klasör gibi kullanacak ve iş bitince silerek alanı havuza geri vereceksiniz.

Proxmox üzerinde daha önceden nasıl Thin disk havuzu oluşturabileceğinize değindim. Aşağıdaki yazıda bulabilirsiniz.

https://sezer.in/proxmox-uzerinde-lvm-thin-havuzu-olusturma-proxmox-disk-ekleme/

Bir VM import gerçekleştireceksiniz fakat bu işlemi disk boyutları gereğince oluşturduğunuz LVM Thin grubunda yapmak istiyorsunuz. Fakat LVM bir volume group içerisine olduğundan teknik olarak herhangi bir yere mount edip içerisinde klasör gibi gezemiyorsunuz. Bu bağlamda biz LVM Thin üzerinde bir geçici alan oluşturup, dilediğimiz boyutu verip, import işlemlerimizi o geniş alanda yapıp daha sonra işimiz bitince sileceğiz. Konuya import işlemleri dahil değildir. Onu nasıl yapabilirim derseniz yine aşağıdaki yazıda bu konuyu da bulabilirsiniz.

https://sezer.in/hyper-v-den-proxmox-a-vm-aktarma/

## Volume group ve thin pool çıktısı nasıl okunur?

Şimdi asıl konumuza gelirsek, öncelikle işlem yapacağız volume group adımızı öğrenelim.

```
vgs
```

```
VG   #PV #LV #SN Attr   VSize  VFree   
pve    1   4   0 wz--n-  2.79t  <16.38g
vgrp   1   2   0 wz--n- 36.38t <186.05g
```

`VSize` volume group'un toplam boyutu, `VFree` ise henüz hiçbir logical volume'a verilmemiş alandır. `#PV` fiziksel disk, `#LV` logical volume, `#SN` snapshot sayısıdır. `wz--n-` ifadesi volume group'un yazılabilir, boyutu değiştirilebilir ve normal ayırma politikasında olduğunu söyler.

`vgrp` satırındaki `VFree` değerinin küçük görünmesi havuzun dolu olduğu anlamına gelmez. Alanın büyük kısmı thin pool'a verildiği için burada boş görünmez. Havuzun gerçek doluluğu bir sonraki komutta çıkıyor.

Ben vgrp - volume group içerisinde bir alan oluşturacağım. Volume group'u inceleyelim.

```
lvdisplay vgrp
```

```
--- Logical volume ---
LV Name                thpl
VG Name                vgrp
LV UUID                N7Thhh-zg7f-iQlr-SdUA-PYYM-hQUa-cN8JZy
LV Write Access        read/write (activated read only)
LV Creation host, time pmx1, 2022-02-07 15:21:23 +0300
LV Pool metadata       thpl_tmeta
LV Pool data           thpl_tdata
LV Status              available
# open                 0
LV Size                36.20 TiB
Allocated pool data    0.09%
Allocated metadata     10.46%
Current LE             9489613
Segments               1
Allocation             inherit
Read ahead sectors     auto
- currently set to     131072
Block device           253:10
```

`LV Pool metadata` ve `LV Pool data` satırları bu LV'nin bir thin pool olduğunu gösterir. Takip edeceğiniz iki değer `Allocated pool data` ve `Allocated metadata`. Örnekte 36.20 TiB'lık havuzun yüzde 0.09'u veriyle, metadata alanının yüzde 10.46'sı doludur. Kısa görünüm için `lvs` çıktısındaki `Data%` ve `Meta%` sütunlarına bakın.

```
lvs vgrp
```

## Thin volume oluşturup klasöre mount etmek

Volume groupumuzun "vgrp" Logical volume'un ise "thpl" adında olduğunu öğrendik. Şimdi "gecici_alan" adında bir lv oluşturalım. Ben boyutunu 20 GB olarak gösteriyorum. Siz kendinize göre düzenleyin.

```
lvcreate -V 20G --thin -n gecici_alan vgrp/thpl
```

`-V` sanal boyut, `--thin` thin volume açılacağını, `vgrp/thpl` de hangi havuzun kullanılacağını belirtir. 20 GB hemen ayrılmaz, veri yazıldıkça havuzdan düşer. Sanal boyutların toplamı havuzdan büyük olabilir, `lvcreate` bu durumda uyarı verir. [lvmthin belgesine](https://man7.org/linux/man-pages/man7/lvmthin.7.html) göre havuz dolarsa yazmalar önce bekletilir, sonra hata döner ve dosya sistemi zarar görebilir.

Şimdi dosya yapılandırmasını mkfs ile oluşturalım.

`mkfs.ext4` hedefteki veriyi siler. Komuttaki adın yeni açtığınız `gecici_alan` olduğundan emin olun. `vm-100-disk-0` gibi adlar sanal makine diskleridir, bunları biçimlendirmek geri dönüşü olmayan veri kaybı demektir.

```
mkfs.ext4 /dev/vgrp/gecici_alan
```

Ben bu LV'yi /mnt/gecici_alan diye bir klasöre mount edeceğim. Klasörü oluşturalım.

```
mkdir -p /mnt/gecici_alan
```

Şimdi LV'yi dizine mount edelim

```
mount /dev/vgrp/gecici_alan /mnt/gecici_alan/
```

Alanın geldiğini `df` ile doğrulayın. Bu mount `/etc/fstab` dosyasına yazılmadığı için sunucu yeniden başlayınca dizin boş görünür, veri LV'nin içinde kalır. Kalıcı mount gerekiyorsa [volume group üzerinde LVM oluşturup klasöre mount etme](https://sezer.in/proxmox-volume-group-uzerinde-lvm-olusturup-klasore-mount-etmek/) yazısına bakın.

```
df -h /mnt/gecici_alan
```

## Geçici alanı silmek

Hepsi bu kadar! Eğer bu alanı **silmek** isterseniz izleyeceğiniz yol da aşağıdaki gibi olacaktır

Öncelikle LV'yi umount edelim dizinden

```
umount /dev/vgrp/gecici_alan /mnt/gecici_alan/
```

Komutta aygıt ve dizin birlikte yazılı. İlki alanı ayırır, ikincisi için `not mounted` mesajı görebilirsiniz ve bu zararsızdır. Tek hedef de yeterli: `umount /mnt/gecici_alan`.

Şimdi LV'yi kaldırabiliriz.

`lvremove` geri alınamaz, LV'nin içindeki dosyalar gider. Import işinin bittiğini ve sanal makinenin diskten açıldığını doğruladıktan sonra çalıştırın.

```
lvremove /dev/vgrp/gecici_alan
```

```
Do you really want to remove active logical volume vgrp/gecici_alan? [y/n]: y
  Logical volume "gecici_alan" successfully removed
```

Thin volume silinince kullandığı bloklar havuza döner. `lvs vgrp` çıktısındaki `Data%` değerinin düştüğünü görebilirsiniz.

## Sık karşılaşılan sorunlar

- `target is busy`: dizini kullanan bir işlem var ya da oturumunuz o dizinde. `fuser -vm /mnt/gecici_alan` işlemi gösterir.
- Dosyalar silindi ama `Data%` düşmedi: dosya silmek havuza yer iade etmez. Alan mount edilmişken `fstrim -v /mnt/gecici_alan` çalıştırın. Havuz discard'ları yok sayacak şekilde ayarlıysa etkisi olmaz, `lvs -o discards vgrp/thpl` ile bakın.
- Havuz doluyor: volume group'ta `VFree` varsa `lvextend --size +100G vgrp/thpl` ile büyütün, boyutu kendi ihtiyacınıza göre yazın.
- Metadata doluyor: `lvextend --poolmetadatasize +1G vgrp/thpl` kullanın, yüzde 100'e varmasını beklemeyin. `+1G` örnektir, bu komut da `VFree` ister ve metadata alanı en fazla yaklaşık 16 GiB olabilir.

See u in the next time!
