Włącz odrzucanie HP 3PAR StoreServ 7400

13

Oddziel się od tych wcześniej zadawanych pytań

Jak uzyskać wolne miejsce z zamontowanego dysku Redhat 7

Aktualizacja crypttab prosi o podanie hasła dla fstrim

Mamy HP 3PAR StoreServ 7400 z 170 maszynami wirtualnymi na 38 hostach.

Oto problem, jaki rozumiem: (Powiedziano mi również pewne informacje, że nie jestem pewien, czy to prawda, czy nie, przeczytałem na białej księdze HP 3PAR StoreServ 7400 i naprawdę nie mogę znaleźć niczego, co potwierdziłoby to, czym jest mój facet od pamięci mówiąc mi. Więc jeśli poniżej zauważysz coś nieprawdziwego, daj mi znać.)

3 PAR jest podzielony na 3 sekcje,

Warstwa 1: SSD służy do buforowania i szybkiego dostępu do często używanych plików.

Warstwa 2: i warstwa 3: Jakiś rodzaj wirującego dysku, co i dlaczego istnieją dodatkowe 2 warstwy, których nie jestem pewien, ale moim założeniem jest, że warstwa 2 jest używana do danych, które nie są najczęściej używane, ale mają dostęp do bitów, a warstwa 3 jest używana do przechowywanie reszty.

W części SSD, jak czytałem w wielu artykułach, gdy dane są zapisywane w bloku SSD, a następnie usuwane, ten blok nie jest zerowany, dopóki nie zostaną zapisane nowe dane, więc kiedy dane w tym bloku zostaną usunięte, tabela przechowująca mapowanie informacje są aktualizowane, a kiedy nowe dane są zapisywane w tym samym bloku, blok musi najpierw zostać wyzerowany, a następnie można go zapisać. Ten proces na dysku SSD, jeśli dysk nie jest przycinany, może powodować niższe prędkości w / r.

Jednostka 3PAR LUN jest alokowana elastycznie. Maszyny wirtualne są chętnie obsługiwane.

Według mojego faceta zajmującego się przechowywaniem, 3PAR ma wbudowaną specjalną funkcję, która pozwala, aby pamięć SSD nie była dostępna dla innych maszyn wirtualnych w razie potrzeby, co nie ma sensu.

Weryfikacja faktów:

Gruba inicjowana maszyna wirtualna to pliki VMDK. Gdy tworzona jest maszyna wirtualna, określasz jej rozmiar, a to tworzy plik VMDK. Moim zdaniem mówi mi to, że jeśli dostęp do maszyny wirtualnej jest uzyskiwany regularnie, cały plik VMDK jest następnie przenoszony do SDD, a oni mówią mi, że nawet jeśli VMDK jest ustawiony na użycie 40 GB, to część z tych 40 GB może być używana na inne maszyny wirtualne? To brzmi dla mnie bardziej jak cienki, zaopatrzony VM, a nie gruby.

OK, do problemu.

W naszych systemach Windows używamy sdelete do znajdowania i zerowania nieużywanych bloków.

W naszym systemie Linux Fedora starałem się znaleźć sposób na uruchomienie fstrim.

Wypróbowałem polecenie dd = write-big-file delete-big-file, co spowodowało, że dysk we / wy przeszedł przez dach, co zostało zauważone, i powiedziano mi, żebym tego nie robił ponownie.

Przeprowadzając małe badania, wydaje mi się, że sdelete właściwie robi to samo, co dd = write-big-file delete-big-file, więc dlaczego dyskowe operacje we / wy nie przechodzą przez dach w systemach Windows?

Więc myślę, że zmniejszyłem to do dwóch rozwiązań. Żaden z nich nie wiem jak to zrobić.

  1. Jakoś bez ruchu v maszyn wirtualnych do innej macierzy pamięci, można uruchomić funkcję podobną do fstrim na całej części SSD SAN.

Uwaga dodatkowa: Jeśli rozumiem wszystko, co przeczytałem, fstrim sprawdza każdy blok, aby sprawdzić, czy dane tam są i czy są potrzebne, jeśli nie są potrzebne, wyzeruje blok, w którym sdelete zapisuje ogromny plik, a następnie usuwa go. Dlatego szukam opcji fstrim w całej części SSD 3PAR.

  1. Longshot, ale błąd, który otrzymuję z fstrim to:

[root @ rhtest ~] # fstrim -v / fstrim: /: operacja odrzucania nie jest obsługiwana

Czytałem, że opcja odrzucania musi być ustawiona zarówno w systemie operacyjnym, jak i magazynie danych, ale nie mogę dowiedzieć się, gdzie i jak ustawić opcję odrzucania w 3PAR, mam zarówno SSH, jak i GUI dostęp do 3PAR.

Przeszedłem przez niezliczone instrukcje konfiguracji odrzutów w systemie operacyjnym i bez względu na to, ile różnych sposobów obracania, zawsze otrzymuję ten sam błąd.

Tak, sprawdziłem również inne opcje zerofree to jedna i kilka innych, które nie przychodzą mi do głowy, jednak albo działały jak zdelete, lub przeczytałem, że były bardzo niebezpieczne, zajrzałem do hdparam itp.

Poniżej zamieszczę dane wyjściowe dotyczące omawianego systemu operacyjnego, wszystkie są takie same.

[root@rhtest ~]# hostnamectl
    Static hostname: rhtest.domain.com
    Icon name: computer-vm
    Chassis: vm
    Machine ID: f52e8e75ae704c579e2fbdf8e7a1d5ac
    Boot ID: 98ba6a02443d41cba9cf457acf5ed194
    Virtualization: vmware
    Operating System: Red Hat Enterprise Linux Server 7.2 (Maipo)
    CPE OS Name: cpe:/o:redhat:enterprise_linux:7.2:GA:server
    Kernel: Linux 3.10.0-327.el7.x86_64
    Architecture: x86-64

[root@rhtest ~]# blkid
    /dev/block/8:2: UUID="2OHGU8-ir1w-LLGB-6v72-zZqN-CIaX-FjGImJ" TYPE="LVM2_member"
    /dev/block/253:1: UUID="ad872f09-5147-4252-af56-aa6244219515" TYPE="xfs"
    /dev/block/8:1: UUID="83aac355-a443-4ff9-90fa-9f6da8e31cc2" TYPE="xfs"
    /dev/block/253:0: UUID="dbe56f6a-2a4a-42da-82e2-bef9a73caafb" TYPE="swap"

[root@rhtest ~]# lsblk
    NAME                           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    fd0                              2:0    1    4K  0 disk
    sda                              8:0    0   50G  0 disk
    ââsda1                           8:1    0  500M  0 part /boot
    ââsda2                           8:2    0 49.5G  0 part
        âârhel_-rhtest-swap 253:0    0    2G  0 lvm  [SWAP]
        âârhel_-rhtest-root 253:1    0 47.5G  0 lvm  /
    sdb                              8:16   0   50G  0 disk
    sr0                             11:0    1 1024M  0 rom


[root@rhtest ~]# df -h
    Filesystem                              Size  Used Avail Use% Mounted on
    /dev/mapper/rhel_-rhtest-root   48G  883M   47G   2% /
    devtmpfs                                991M     0  991M   0% /dev
    tmpfs                                  1001M     0 1001M   0% /dev/shm
    tmpfs                                  1001M  8.5M  993M   1% /run
    tmpfs                                  1001M     0 1001M   0% /sys/fs/cgroup
    /dev/sda1                               497M  124M  374M  25% /boot
    tmpfs                                   201M     0  201M   0% /run/user/0
Anthony Fornito
źródło

Odpowiedzi:

10

Najlepszym rozwiązaniem byłoby uruchomienie fstrim na partycjach /, jednak przy ich konfiguracji ESXi nie byłoby to możliwe.

Musisz mieć możliwość włączenia odrzutów zarówno na maszynie wirtualnej, jak i urządzeniu pamięci masowej.

Próba zmniejszenia rozmiaru partycji lub woluminu logicznego za pomocą systemu plików xfs nie jest możliwa, jest to znany błąd związany z Fedorą. Jeśli jesteś zainteresowany tą funkcjonalnością, skontaktuj się z pomocą techniczną Red Hat i odwołaj się do Bugzilli Red Hat 1062667, i podaj swój przypadek użycia dla potrzeby zmniejszenia / zmniejszenia XFS.

Jako możliwe obejście w niektórych środowiskach, cienkie alokowane woluminy LVM można uznać za dodatkową warstwę poniżej systemu plików XFS.

Jeśli maszyny wirtualne chętnie korzystają z VMDK z elastyczną obsługą administracyjną, co oznacza, że ​​nie ma nic do odzyskania podczas próby przycięcia (technicznie rzecz biorąc; SCSI UNMAP) woluminów.

Jeśli w pamięci wewnętrznej działa cienkie przydzielanie, musisz także użyć plików VMDK z zerowym opóźnieniem, aby zmniejszyć pamięć i umożliwić backendowi buforowanie / deduplikację ciepłych danych.

Dwie możliwe opcje:

1. When storage is provided by a remote server across a SAN, you can only discard blocks if the storage is thin provisioned.

    1. VMotion all the VM's to a different data store and use the built-in VMWare tools
    2. Connect to the ESXi Host with SSH
    3. Navigate to the Virtual Machine Folder
    4. Verify disk usage with du
    5. Run vmkfstools -K [disk]
    6. Verify disk usage with du

2.  dd if=/dev/zero of=BIGFILE bs=1024000
    rm -f BIGFILE

Z tego, co mogę powiedzieć, działa to tak samo jak sdelete, jednak może powodować skok we / wy dysku, a także może trochę potrwać.

Coś do wypróbowania na noc

Obie opcje nie są najlepsze, ale sformatowanie każdej maszyny wirtualnej w celu uzyskania ext3 lub ext4 nie wydaje się wykonalne.

To, co możesz zrobić, to ustawić regułę koligacji dla wszystkich maszyn wirtualnych systemu Linux i użyć opcji 1 z powyższego.

Brian Curless
źródło
3

Używasz chętnego VMDK z elastyczną obsługą administracyjną, co oznacza, że ​​nie masz nic do odzyskania, gdy próbujesz przyciąć (technicznie rzecz biorąc; SCSI UNMAP) woluminy.

Jeśli w pamięci wewnętrznej działa cienkie przydzielanie, musisz także użyć plików VMDK z zerowym opóźnieniem , aby zmniejszyć pamięć i umożliwić backendowi buforowanie / deduplikację ciepłych danych.

Pauska
źródło
Dziękuję za udzielenie odpowiedzi, jednak nie jestem pewien, czy w pełni rozumiem twoją odpowiedź, jeśli wszystkie moje założenia z pytania będą prawidłowe, konieczne będzie odzyskanie niezerowych bloków z sieci SAN, zwłaszcza jeśli plik VMDK zostanie przeniesiony z dysku SSD do wirujący dysk. Poprawny?
Anthony Fornito
3
@AnthonyFornito Nie można odzyskać niczego w przypadku chętnych grubych dysków. Chętny gruby oznacza, że ​​VMWare zmusza pamięć zaplecza do zapisania pełnego przydziału każdego pliku, w tym zer.
pauska
@pauska jest całkowicie poprawna. 3PAR i wiele podobnych rozwiązań zaprojektowano do kompresji / deduplikacji / tworzenia warstw. Twój hybrydowy model 3PAR bardziej dotyczy wydajności, a nie konfiguracji zorientowanej na wydajność. Dlatego w twoim przypadku lepiej jest używać dysków leniwie zerowanych zamiast chętnych.
Strepsils,