NetApp ONTAP UNMAP в SAN среда

Командата UNMAP е стандартизирана в рамките на набора от команди T10 SCSI и се използва за възстановяване на пространство от тънки луни обратно към хранилището на данни в SAN среда. Както писах по-рано, протоколите SAN и NAS постепенно заимстват най-доброто един от друг. Едно от полезните неща, които се появиха преди много време, е възможността за обратна връзка от системата за съхранение и хоста, за да се „върнат“ отдалечени блокове на тънки луни, което преди това липсваше в SAN. Функцията UNMAP все още не се използва широко в SAN среди, въпреки че е много полезна в комбинация както с виртуализирани, така и с невиртуализирани среди.

Без поддръжката на командата UNMAP, всяка тънка луна, създадена от страната за съхранение, може винагисамода се увеличи по размер. Неговият растеж беше въпрос на време, което безусловно винаги завършваше с това, че такава тънка луна накрая ще заеме пълния си обем, което се дължи на нея, т.е. накрая ще стане дебел.

netapp

Представете си, че имате 3 виртуални машини във вашето хранилище за данни, всяка от които заема 100 GB. Вашето хранилище за данни е на тънка луна, която заема 300 GB. Пространството, заемано от системата за съхранение и ESXi, е едно и също: 300 GB. След изтриване на една виртуална машина, размерът на вашата луна от страната на съхранението все още е 300 GB, а от страната на хипервайзора пространството, заето в хранилището за данни, живеещо на тази луна, е 200 GB.

Това се дължи на факта, че нямаше механизъм за обратна връзка от хоста към системата за съхранение. А именно, когато хостът записва блок информация в moon, системата за съхранение на свой ред маркира този блок като използван. Освен това хостът може да изтрие този блок, но системата за съхранение вече не знае за това. Командата UNMAP е тази обратна връзка, която декартира ненужен блок от луната. И накрая, нашата тънка луна научи не самопечелят, но също така намаляват теглото си, започвайки от версията на фърмуера (клъстерни данни) ONTAP 8.2.

VMware ESXi & UNMAP

Във версия 5.0 функцията UNMAP беше въведена за първи път, тя беше активирана по подразбиране и се стартира автоматично, когато се достигне определената стойност на отдалечени блокове, в следващите версии механизмът е деактивиран по подразбиране и се стартира ръчно. Започвайки с VMFS-6 (vSphere 6.5), пространството се освобождава автоматично в рамките на 12 часа, ако е необходимо, наличен е и ръчен механизъм за задействане на освобождаване на пространство. Важно е да се отбележи, че освобождаването на пространство, което ще бъде обсъдено сега, става на ниво хипервизор, т.е. Изтритите блокове се освобождаватсамослед изтриване на виртуалната машина или цели виртуални дискове, а не в операционната система за гости.

Ако вече имате ESXi и съхранение с ONTAP с UNMAP поддръжка, но функцията не е активирана

Трябва да го активирате от страната на системата за съхранение и от страната на хипервайзора. Нека започнем, като оставим луните офлайн и активираме функциятаspace-allocationв системата за съхранение (ако има VM, останали в работещо състояние, те ще се изключат неправилно и вероятно ще бъдат повредени, така че трябва или да бъдат временно изключени, или временно мигрирани):

След това трябва да активиратеunmapот страна на ESXi, за целта трябва да декартирате и повторно да картографирате хранилището за данни, така че ESXi да открие UNMAP поддръжка (ако има VM, останали в работещо състояние, те ще се изключат неправилно и вероятно ще бъдат повредени, така че трябва или да бъдат временно изключени, или временно мигрирани):

След това, за да освободите място, ще трябва периодично да изпълнявате командата:

Важно е да се отбележи, че UNMAP работи само за луни, форматирани с отместване на дяла, което е кратно на 1 MB. Каквотова означава? Това означава, че ако някога сте конвертирали VMFS3 във VMFS5, UNMAP няма да работи. Лесно е да се провери, преобразуваните VMFS3 имат MBR таблица на дяловете, а VMFS5, които са създадени отново, имат GPT дял.

Забележете колоната Оформление.

Проверката на отместването също не е трудна, гледаме дължината на сектора. Нека ви напомня, че един сектор е 512 байта.

Обърнете внимание на колоните"Начален сектор"и"Краен сектор". И така, последното устройствоnaa.60a98000486e574f6c4a5052537a7375има отместване от 1MB (2048 сектора*512 =1048576 байта = 1024KB). Но второто устройствоnaa.60a98000486e574f6c4a5778594e7456има отместване, което не е кратно на 1MB, очевидно е по-малко, UNMAP няма да работи с него.

Можете да проверите дали UNMAP (Изтриване на статус) се поддържа по следния начин:

Автоматично освобождаване на място във vSphere 6.5

Автоматичното възстановяване на пространството обратно в тънки луни при съхранение се поддържа, започвайки с vSphere 6.5. За всяко хранилище за данни VMFS-6 можете да зададете висок/среден/бавен приоритет на освобождаване на пространството, което ще бъде върнато в хранилището в рамките на 12 часа. Стартирането на възстановяване на пространството и настройките за приоритизиране за хранилище за данни VMFS-6 може също да се извърши ръчно от GUI или от командния ред.

съхранение

UNMAP от операционната система за гости.

И така, по-рано разгледахме премахването на виртуални машини от хранилището за данни. Би било логично да се направи същото, когато се изтриват блокове с данни от операционната система за гости, а не цялата виртуална машина или нейните дискове. UNMAP се поддържа от страната на съхранението с ONTAP и за да работи механизмът UNMAP при изтриване на данни от VMDK, т.е. от вътрешността на OS за гости, от страна на хранилището, нищо не е необходимо допълнително да се внедрява, достатъчно еза да активирате UNMAP. Необходимо е хипервайзорът да може да транслира тази информация от виртуалната машина към хранилището, което става изцяло на SCSI ниво. Така чезапочвайки с ESXi 6.0 вече е възможно да се прехвърля информация за отдалечени блокове вътре в операционната система за гости.

За да работи UNMAP от виртуална машина, трябва да отговаряте на следните условия и да имате:

  • Виртуален хардуер версия 11
  • VMFS6
  • vSphere 6.0*/6.5
  • луните за съхранение трябва да са тънки
  • виртуалните дискове на виртуалната машина трябва да са тънки
  • файловата система на гост OS трябва да поддържа UNMAP
  • за vSphere 6.0 CBT трябва да бъде деактивиран
  • активирайте UNMAP на хипервайзор, ако е необходимо:esxcli storage vmfs unmap -l myDatastore
  • активирайте UNMAP в хранилището

Никога тънко върху тънко

От години всички доставчици на хранилища казват, че не изграждайте тънки виртуални дискове на тънки луни. Но сега това се промени и за да се освобождават блокове от вътрешността на виртуалната машина, е необходимо да има тънки виртуални дискове и тънки луни в системата за съхранение. Във версия vSphere 6.0 беше въведена функционалността за връщане на изтрити блокове от операционната система за гости, но имаше редица ограничения при използване на UNMAP, например Linux машини не се поддържаха. На vSphere 6.0 и по-стари с VMFS функцията UNMAP не се изпълнява автоматично, трябва да изпълните командата ръчно.

unmap

Поддръжка на Windows GuestOS

За да може възстановяването на пространство да работи от операционна система за гости на Windows, файловата система NTFS трябва да бъде форматирана с единица за разпределение от 64 KB.

Поддръжка на Linux Guest OS SPC-4

За да направите това, изпълнете командата

ПараметърПоддържа се команда Unmap (LBPU), зададен на 1означава, че се използва тънък диск, което искаме. Стойност 0 означава, че типът виртуален диск е дебел (нетърпелив или разреден), функцията UNMAP няма да работи с дебели дискове.

version=0x02 [SCSI-2] казва, че UNMAP няма да работи, имаме нужда от SPC-4 версия:

За да направите това, изпълнете командата

стойност 1 казва на гост OS да уведоми SCSI слоя за изтрити блокове от файловата система.

Нека проверим дали мястото е освободено с помощта на UNMAP:

Ако получите грешка"blkdiscard: /dev/sdb: BLKDISCARD ioctl неуспешно: Операцията не се поддържа", тогава UNMAP не работи. Ако няма грешка, остава да монтирате файловата система с ключаdiscard:

Важно е да запомните, че хипервайзорът на VMware изпълнява UNMAPасинхронно, което означава, че има забавяне. Това означава, че на практика най-вероятно никога няма да имате заето пространство 1:1 в операционната система за гости / в хранилището за данни на хипервизора и на луната за съхранение.

Това значително подобрява използването на използваемото пространство в SAN инфраструктура, използвайки Thing Provisioning и моментни снимки на Hardware-assistant.

Windows (чист метал)

Поддръжката на UNMAP команди за това семейство OS започна с Windows Server 2012 с файловата система NTFS. За да активирате автоматичния UNMAP, използвайте Windows Host Utility 6.0.2 или по-нова или ONTAP DSM 4.0 или по-нова. За да проверите дали UNMAP е активиран, изпълнете fsutil behavior query disabledeletenotify. СъстояниетоDisableDeleteNotify = 0означава, че UNMAP връща блокове в движение (в рамките на лентата). Ако хостът има няколко луни, свързани от няколко системи за съхранение, някои от които не поддържат UNMAP, препоръчително е да го изключите.

Linux (гол метал)

Linux дистрибуциите поддържат UNMAP. NetApp официалноподдържа RHEL версия 6.2 и по-нова, като използва превключвателя–o discardна командатаmountи помощната програмаfstrim. Прочетете повече в RHEL6 Storage Admin Guide.

Освобождаването на отдалечени блокове позволява, от една страна, значително да спести дисково пространство, но от друга страна, ако хостът поиска от системата за съхранение да освободи повече блокове, например терабайти данни, вашата система за съхранение ще направи това и няма да се успокои, докато не приключи, и това е допълнителна дейност в системата за съхранение. Освобождаването на терабайт данни ще бъде особено забележимо на дискови или хибридни (не All Flash) системи. Следователно трябва да внимавате да изтривате повече данни с един замах на такива системи (терабайти).

Ако попаднете в такава ситуация, консултирайте се с техническата поддръжка, може би си струва да увеличите стойността наwafl_zombie_ack_limitиwafl_zombie_msg_cnt. Ако трябва да изтриете всички данни на Луната, тогава е по-добре да изтриете цялата луна в системата за съхранение. Всички Flash системи, от друга страна, са много по-малко възприемчиви към подобни заявки и като цяло се справят с подобни задачи доста бързо и без усилие.

Изтриване на файлове в ONTAP 9 и приоритизиране

Нека ви напомня, че ONTAP 9 беше пуснат през май 2016 г. В тази версия на софтуера Zombie вече не се генерират съобщения за освобождаване на място, вместо това файлът просто се маркира за изтриване. В тази връзка логиката на работата по освобождаване на пространство се промени значително:

  • първо, данните се изтриват във фонов режим
  • второ, стана възможно да се приоритизира освобождаването на пространство от тези томове, които се нуждаят повече от него, т.е. тези, които нямат място.

Реализирана поддръжка за UNMAP, както от страна на операционната система за гости, хоста, така и от страна на хранилищата на NetApp,позволява по-рационално използване на пространството в SAN среда с помощта на Thin Provisioning и в резултат на това ще позволи по-рационално използване на пространството за съхранение с хардуерни моментни снимки. Поддръжката на UNMAP на ниво хипервизор и още повече в операционната система за гости значително ще улесни използването на тези две популярни технологии.

Hardcore conf в C++. Каним само професионалисти.