ZFS

Урок за снимки на ZFS

Урок за снимки на ZFS

Снимките са важни, независимо дали използвате проста виртуална машина на домашния си компютър или това е корпоративна база данни, която непрекъснато се актуализира и модифицира. Наличието на моментни снимки, т.е. копие на цялата файлова система, каквато е била в даден период от време, е важно.

Хората често губят представа къде нещата са се объркали, файл е изтрит и никой не е забелязал, че го няма. Изминаха няколко резервни копия и сега осъзнавате, че важен файл липсва от всички налични резервни копия от последните 5 седмици. В този урок ще видим как да използваме моментни снимки на ZFS и ще се докоснем до различни правила за моментални снимки, които биха работили оптимално по отношение както на използването на ресурсите, така и на възможността за възстановяване.

Механизъм Copy-On-Write

ZFS разполага както с високо ниво на преглед на файлове и директории, така и разбира как данните се записват на диска. Когато физически записвате данни на диск, това се прави в дискретни блокове. Обикновено размерът на блока може да достигне до 1 MB, но по подразбиране обикновено е 128 KB. Това означава, че всяка модификация (четене, запис или изтриване) ще се случи в отделните блокове.

Механизмът copy-on-write гарантира, че когато блокът бъде модифициран, вместо да модифицира директно блока, той прави копие на блока с необходимите модификации, направени на новия блок.

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

Снимките също разчитат на тази функционалност, и то доста всъщност. Когато направите моментна снимка на даден набор от данни („набор от данни“ е терминът ZFS за файлова система), ZFS просто записва клеймото, когато е направена моментната снимка. Това е! Не се копират данни и не се консумира допълнително място за съхранение.

Само когато файловата система се промени и данните в нея се отклоняват от моментната снимка, моментната снимка започва да консумира допълнително място за съхранение. Това, което се случва под капака е следното - Вместо да рециклира старите блокове с течение на времето, ZFS ги държи наоколо. Това също подобрява използването на съхранението. Ако направите снимка на 20GB набор от данни и промените само няколко текстови файла тук и там, моментната снимка може да отнеме само няколко MB пространство.


Създаване на снимки

За да демонстрираме използването на моментни снимки, нека започнем с набор от данни, който има много текстови файлове, само за да улесним въпроса. Виртуалната машина, която ще използвам за демонстрацията, работи с FreeBSD 11.1-RELEASE-p3, което е най-новата стабилна версия, налична към момента на писане. Коренната файлова система е монтирана на zroot пул по подразбиране и много познати директории като / usr / src, / home, / и т.н са всички свои собствени набори от данни, монтирани на zroot. Ако не знаете какво означава пул (или zpool), в народния език на ZFS, би било добре да го прочетете, преди да продължите.

Една от многото файлови системи или набори от данни, които се предлагат по подразбиране на FreeBSD, е: zroot / usr / src

За да разгледате свойствата му, изпълнете следната команда.

[имейл защитен]: ~ $ zfs list zroot / usr / src

Както можете да видите, той използва 633 MB място за съхранение. Той съдържа цялото дърво на източника за операционната система.

Нека направим моментна снимка на zroot / usr / src

[имейл защитен]: ~ $ zfs моментна снимка zroot / usr / [имейл защитен]

Символът @ действа като разделител между набора от данни и името на моментната снимка, което в нашия случай е моментна снимка1.

Сега нека разгледаме състоянието на моментната снимка при нейното създаване.

Като изпълните командата:

zfs list -rt всички zroot / usr / src

Можете да видите, че моментната снимка не използва допълнително пространство, когато се роди. Няма и налично пространство, тъй като това е строго наборен набор от данни, самата снимка не може да нараства, променя или свива. И накрая, той не е монтиран никъде, което го прави напълно изолиран от дадената йерархия на файловата система.

Сега, нека премахнем sbin директория в / usr / src /

[имейл защитен]: $ rm / usr / src / sbin

Разглеждайки моментната снимка, сега ще видите, че тя е нараснала,

Това се очаква, тъй като тук работи механизмът за копиране и запис и изтриването (или модифицирането) на файловете е довело до това, че повече от данните са свързани само с моментната снимка, а не с набора от данни, който действително се използва.

Забележете колоната REFER в горния изход. Той ви дава количеството достъпни данни за набора от данни, докато колоната USED просто ви показва колко място е заето на физическия диск.

Механизмът на Copy-On-Write на ZFS често дава тези контраинтуитивни резултати, при които изтриването на файл би изглеждало така, сякаш сега се използва повече място от преди. Въпреки това, след като прочетете досега, знаете какво всъщност се случва!

Преди да завършим, нека възстановим sbin от моментна снимка1. За да направите това, просто изпълнете:

[имейл защитен]: / usr / src $ zfs откат zroot / usr / [имейл защитен]

Правила за моментни снимки

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

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

Сега проблемът ще бъде да възстановим нещо, което е загубено преди 49 часа. За да заобиколите този проблем, можете да запазите една или две снимки от тази 48-часова история и да ги съхранявате една седмица. Изчистете ги, когато остареят от това.

И ако можете да продължите по този път, можете да натъпчете снимки до самия генезис на системата, само в намаляващ ред на честотата. И накрая, бих искал да отбележа, че тези моментни снимки са САМО ЧЕТЕНИ, което означава, че ако се заразите от ransomware и получите всичките си данни криптирани (модифицирани). Тези моментни снимки най-вероятно ще останат непокътнати.

Как да използвам Xdotool за стимулиране на кликвания и натискания на мишката в Linux
Xdotool е безплатен инструмент с команден ред с отворен код за симулиране на щраквания и натискания на мишката. Тази статия ще обхване кратко ръководс...
Топ 5 продукти за ергономична компютърна мишка за Linux
Продължителната употреба на компютър причинява ли болка в китката или пръстите? Страдате ли от схванати стави и постоянно ли ви се налага да си ръкува...
Как да променяте настройките на мишката и тъчпада с помощта на Xinput в Linux
Повечето дистрибуции на Linux се доставят с библиотека “libinput” по подразбиране за обработка на входни събития в системата. Той може да обработва вх...