Малко известни свойства на zfs, Инсталиране, конфигуриране, поддръжка на сървъри

ZFS има много свойства и предимства. Някои редки, но полезни характеристики и свойства са обсъдени по-долу.

1) Забрана за изтриване на моментна снимка

Да кажем, че трябва да предотвратите изтриването на моментна снимка по някаква причина по стандартния начин чрезzfs destroy. За целта има командаhold, която го "защитава" от изтриване. Пример:

Можете да намерите пример в мрежата, че можете да го премахнете чрез недокументирания параметър'-d', но не всичко е толкова просто. Оказва се, че този параметър показва, че моментната снимка ще бъде автоматично изтрита, когатоhold'a бъде премахната от нея. Пример:

Забележка.

Всъщност опцията'-d' задава свойствотоdefer_destroy=on, което маркира нашияzfs за отлагане на изтриването. По подразбиране това свойство е вoff.

Както вече разбрахте, за „освобождаване“ от изтриване се използва командатаzfs release. Като параметър той приема иметоtag'a и името на моментната снимка

Също така ще бъде полезно да знаете, че параметърътzfs -userrefs показва броя наhold моментни снимки за указанияzfs.

2) популяризирайте

Накратко, това е операцията за размяна на клонинга и оригинала. Напълно може да се опише по следния начин. Да приемем, че имате FS (zfs ) и веднъж сте направили клонинг от него (zfsclone ). Времето дойде и оригиналният FS вече не е необходим (или, например, трябва да освободите място) и не е възможно просто да изтриете оригиналния FS, тъй като той има клонинг. Операцията за насърчаване прави клонинга оригинал (сега оригиналнияzfsclone ) и оригиналния клонинг (сега клонингzfs ). Оказва се, че сега смеможем безопасно да премахнем ненужния FS (zfs ), тъй като в момента той е клонинг и клонингът може безопасно да бъде изтрит.

По-долу е извадка от документацията наOracle относно използването на promote.

Следващият пример клонира файловата системаtank/test/productA и след това клонираната системаtank/test/productAbeta става файлова системаtank/test/productA.

От горния резултат на командатаzfs list можете да видите, че информацията за отчитане на пространството на оригиналната файлова системаproductA е заменена от системните данни наproductAbeta. Завършете процеса на подмяна на клониране, като преименувате файловите системи. Пример:

Ако е необходимо, можете да изтриете старата файлова система. Пример:

# zfs унищожи танк/тест/productAlegacy

3) Разлика между моментни снимки/FS

Ако искате да знаете как точно (файловете, папките) се различават между 2 моментни снимки или моментна снимка от оригиналния FS, използвайте командата

4) Наследяване на свойства

Всички персонализирани свойства, с изключение на квотите и запазеното пространство, наследяват стойностите на родителския елемент (освен ако квота или запазено пространство не е изрично указано за дъщерен елемент). Ако родителският елемент няма изрично указан набор от стойности на наследени свойства, се използва стойността по подразбиране на свойството. За да нулирате стойност на свойството, използвайте командатаzfs inherit, която ще наследи настройките на родителския елемент.

Следващият пример използва командатаzfs set за активиране на компресията на файловата системаtank/home/bonwick. След това командатаzfs inherit се изпълнява, за да върне оригиналната стойност на свойствотоcompression. Така че този имот се наследяванастройка по подразбиранеизключено. Тъй катоhome иtank не са посочени на локално ниво, свойствотоcompression се използва по подразбиране. Ако компресията беше активирана и за двата елемента, тогава ще се използва стойността, посочена в най-близкия родителски елемент (home в този пример).

Когато въведете параметъраr, подкомандатаinherit се прилага рекурсивно. В следващия пример тази команда определя стойността на свойствотоcompression, което се наследява отtank/home и всички дъщерни елементи.

# zfs inherit -r компресионен резервоар/дом

Забележка.

Имайте предвид, че когато използвате опцията-r, текущата стойност на свойството за всички дъщерни набори от данни се нулира.

5) Квоти.

Използвайте командитеzfs userquota иzfs groupquota, за да зададете потребителска или групова квота.

# zfs create students/compsci # zfs set userquota@student1=10G students/compsci # zfs create students/labstaff # zfs set groupquota@staff=20GB students/labstaff

Показването на текущата квотаквота илигрупа се извършва по следния начин:

Можете да видите информация за общото използване на пространството на потребител или група, като направите заявка за следните свойства:

Ако искате да получите информация за индивидуалното използване на пространството от потребител или група, използвайте заявка за следните свойства:

Свойствата на квотатаuser иgroup не се показват с помощта на командитеzfs get all dataset, които се използват за изброяване на всички свойства на файловата система.

Премахването на квотиuser илиgroup се извършва по следния начин:

# zfs set userquota@user1=няма студенти/compsci # zfs setgroupquota@staff=няма студенти/лаборант

КвотитеZFS user иgroup имат следните функции:

Когато е конфигуриран на файлова система, квотатапотребител илигрупа, зададена на родителската файлова система, не се наследява автоматично от дъщерната файлова система.

Въпреки това квотатаuser илиgroup се прилага при създаване на клонинг или моментна снимка на файлова система, която има квотаuser илиgroup. По същия начин квотатаuser илиgroup се включва във файловата система, когато се създава поток с командатаzfs send, дори и без опцията-R.

Потребителите без съответните права имат достъп само до собственото си дисково пространство. Потребител от типroot или потребител с привилегииuserused илиgroupused може да получи достъп до информация за пространство за всеки потребител или групов акаунт.

Свойстватаuserquota иgroupquota не могат да бъдат конфигурирани наZFS томове, във версия на файловата система под4 или във версия на пул под15.

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

Старата командаquota може да се използва за преглед на потребителските квоти в средаNFS, например където е монтирана файлова системаZFS. Без опции, когато изпълните командатаквота, изходът се показва само ако квотата на потребителя е надвишена. Пример:

В случай на нулиране на квотата и ако ограничението на квотата вече не е надвишено, за прегледпотребителска квота е необходима за използване на командатаquota -v. Пример:

6) отметка (достъпна въвzpool версия 5000,FreeBSD 10.1 засега)

Ще дам откъс от мана

Отметките могат да се използват за постепенни изпращания дори когато началната моментна снимка вече е била изтрита (стига моментната снимка да е маркирана преди да бъде изтрита), което означава, че можете да освободите всички данни, свързани с моментната снимка.

С други думи, дори след изтриване на моментна снимка, можете да се обърнете към нея, ако е отбелязана с отметка.