PowerEdge: RHEL üzerinde NVMe PCIe SSD tabanlı dm-cache ile Daha Hızlı Blok Aygıt Performansı
Summary: Aygıt Eşleyici önbelleği (dm-cache), verileri daha hızlı bir aygıta dinamik olarak taşıyarak bir blok aygıtının performansını artırmak için kullanılabilir.
Instructions
NVMe tabanlı PCIe SSD'ler, kullanıcı alanı araç seti Mantıksal Disk Bölümü Yöneticisi (LVM) araçlarını kullanarak dm-cache için önbellek aygıtı görevi görebilir.
dm-cache tarafından oluşturulan sanal önbellek üç fiziksel aygıttan oluşur. (Bkz. Şekil 1.) Kaynak aygıt, daha yavaş hedef depolama aygıtıdır (HDD). Önbellek aygıtı, kullanıcı verilerini depolamak için kullanılır ve meta önbellek, blok yerleştirme, değiştirilmiş veriler ve diğer dahili veriler gibi meta verileri depolar.
Bu durumda, hem veri blokları hem de meta veriler için aynı aygıtı [Önbellek aygıtı] kullanırız.
Şekil 1: LVM araçlarını kullanarak dm-cache'i kurma ve yapılandırma adımları.
Donanım Kurulumu:
Kaynak Aygıt [HDD]: /dev/sda1
Önbellek Aygıtı [NVMe tabanlı PCIe SSD] (Blok/Meta): /dev/nvme0n1p1
Yazılım Kurulumu:
İşletim sistemi: RHEL 7
Araçlar: dm-cache yapılandırması için LVM2 kullanıcı alanı araçları
Yapılandırma Adımları:
Aşağıda, LVM kullanarak Sanal aygıt dm-cache öğesini yapılandırma adımları verilmiştir.
Her adımın çıktısı, Şekil 1'de belirtilen numaralandırma ile bloğa eşlenir.
- Sabit diskte 100 GB'lık bir bölüm oluşturun [Kaynak Aygıt]
parted -a optimal /dev/sda mkpart primary 1 100G
Not: Bu, /dev/sda1'i oluşturur - NVMe PCIe SSD diskinde 10 GB'lık bir bölüm oluşturun [Önbellek Aygıtı]
parted -a optimal /dev/nvme0n1 mkpart primary 1 10G
- Kaynak ve Önbellek aygıtıyla bir Disk Bölümü grubu (önbellek) oluşturun
vgcreate cache /dev/sda1 /dev/nvme0n1p1
- Şu komutu kullanarak "önbellek" disk bölümü grubunu kontrol edin:
vgdisplay[root@localhost ~]# vgdisplay --- Volume group --- VG Name cache System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 7 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 103.36 GiB PE Size 4.00 MiB Total PE 26461 Alloc PE / Size 25399 / 99.21 GiB Free PE / Size 1062 / 4.15 GiB VG UUID Zd8dNe-6Kdt-7qgY-dmSN-8WHe-4wqQ-euM3Ql
- Şu komutu kullanarak "önbellek" disk bölümü grubunu kontrol edin:
- Kaynak Aygıt mantıksal disk bölümünü oluşturun (
origin_device)lvcreate -l 90%FREE -n origin_device cache /dev/sda1
- Önbellek meta veri mantıksal disk bölümünü oluşturun (
cache_meta)lvcreate -l 5%FREE -n cache_meta cache /dev/nvme0n1p1
- Önbellek blok veri mantıksal disk bölümünü oluşturun (
cache_block)lvcreate -l 80%FREE -n cache_block cache /dev/nvme0n1p1
- Önbellek blok ve önbellek meta veri mantıksal disk bölümlerini birleştirerek bir önbellek havuzu mantıksal disk bölümü oluşturun (5. ve 6. adımları birleştirerek)
lvconvert --type cache-pool --poolmetadata cache/cache_meta cache/cache_block
Not: Oluşturulan önbellek havuzu, "cache_block" ile aynı ada sahip olur. Bu, 6. adımda oluşturulan önbellek blok veri mantıksal disk bölümünün adıdır.-
Bu, aracın normal davranışıdır. Şu komutu kullanarak "önbellek" disk bölümü grubunu kontrol edin:
lvdisplayroot@localhost ~]# lvdisplay --- Logical volume --- LV Path /dev/cache/cache_block LV Name cache_block VG Name cache LV UUID kWYQxP-Jdlr-JdxE-aleB-JJpj-3rmw-Q0cojx LV Write Access read/write LV Creation host, time localhost.localdomain, 2014-06-28 09:05:32 -0400 LV Status available # open 0 LV Size 5.07 GiB Current LE 1297 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:2
-
-
Önbellek havuzu (7. adım) mantıksal disk bölümü ile
origin_devicemantıksal disk bölümünü (4. adım) bağlantılı hale getirerek bir önbellek mantıksal disk bölümü oluşturunlvconvert --type cache --cachepool cache/cache_block cache/origin_device
- Bu işlem, sanal önbellek aygıtını (dm-cache) oluşturur,
orign_deviceaşağıda gösterilmektedirdm4.[root@localhost ~]# ls -l /dev/cache/origin_device lrwxrwxrwx. 1 root root 7 Jun 28 09:13 /dev/cache/origin_device -> ../dm-4
- Bu işlem, sanal önbellek aygıtını (dm-cache) oluşturur,
-
Sanal önbellek aygıtını bir dosya sistemiyle biçimlendirin ve kullanın.
mkfs.ext4 /dev/cache/origin_device
Performans Verileri:
FIO aracı kullanılarak yapılan performans testleri okuma, yazma ve okuma-yazma karışık işlemlerinde büyük bir gelişme olduğunu göstermektedir.
Tablo-1, normal sürücüye (döner sürücüye) kıyasla dmcache varken performans farkının FIO araç çıktısını ve yüzde cinsinden iyileşmeyi ve Şekil 2 ise buna karşılık gelen grafiği göstermektedir.
Test, Orijinal sabit sürücüde (sda) ve dmcache yapılandırmasına sahip sürücüde Rastgele Okuma, Rastgele Yazma ve Rastgele Okuma-Yazma karışık işlemi (%50) için 1M blok boyutuyla gerçekleştirilmiştir.
| BS'de FIO = 1M | IOPS | ||
|---|---|---|---|
| AYGIT | Okuma | Yazma | Okuma-Yazma |
Sürücü: dm-cache |
197 | 798 | 159 |
| sda [orijinal sürücü] | 124 | 118 | 58 |
| % olarak iyileşme | %58,87 | %576,2 | %174,13 |
Tablo 1: Şununla Performans İyileşmesi: dm-cache
Şekil 2: Şununla Performans İyileşmesi: dm-cache.