ZFS -файловая система.

Thank you for reading this post, don't forget to subscribe!

ZFS (Zettabyte File System) — copy-on-write фай­ло­вая систе­ма с дере­вом Мерк­ла, создан­ная Sun Microsystems в 2004–2005 годах для опе­ра­ци­он­ной систе­мы Solaris. Эта фай­ло­вая систе­ма под­дер­жи­ва­ет боль­шие объ­ё­мы дан­ных, объ­еди­ня­ет кон­цеп­ции фай­ло­вой систе­мы, мас­си­вов RAID, мене­дже­ра логи­че­ских дис­ков (томов), прин­ци­пы лег­ко­вес­ных фай­ло­вых систем (англ. lightweight filesystems), предо­став­ля­ет про­стое управ­ле­ние тома­ми хра­не­ния данных

Основ­ные пре­иму­ще­ства ZFS — это её пол­ный кон­троль над физи­че­ски­ми носи­те­ля­ми и логи­че­ски­ми тома­ми и посто­ян­ное под­дер­жа­ние кон­си­стент­но­сти фай­ло­вой систе­мы. Опе­ри­руя на раз­ных уров­нях абстрак­ции дан­ных, ZFS спо­соб­на обес­пе­чить высо­кую ско­рость досту­па к ним, кон­троль их целост­но­сти, а так­же мини­ми­за­цию фраг­мен­та­ции дан­ных. ZFS гиб­ко настра­и­ва­ет­ся, поз­во­ля­ет в про­цес­се рабо­ты изме­нять объ­ём дис­ко­во­го про­стран­ства и зада­вать раз­ный раз­мер бло­ков дан­ных для раз­ных при­ме­не­ний, обес­пе­чи­ва­ет парал­лель­ность выпол­не­ния опе­ра­ций чтения-записи.

она име­ет неко­то­рые инте­рес­ные осо­бен­но­сти. Такие, как:

  • Объ­еди­нён­ное хра­ни­ли­ще (Pooled storage)
  • Copy-on-write
  • Снап­шо­ты
  • Про­вер­ка цель­но­сти инфор­ма­ции и авто­ма­ти­че­ская починка
  • RAID-Z
  • Мак­си­маль­ный раз­мер фай­ла в 16 Экс­а­байт (Прим. пере­вод­чи­ка: 10^18 байт)
  • Мак­си­маль­ный раз­мер хра­ни­ли­ща в 256 квад­ри­льо­нов Зет­та­байт (Прим. пере­вод­чи­ка: Квад­ри­льон — миллион^4; Зет­та­байт — 10^21 байт)

Объединённое хранилище

В отли­чие от дру­гих фай­ло­вых систем, ZFS сов­ме­ща­ет воз­мож­но­сти фай­ло­вой систе­мы и мене­дже­ра дис­ков. Это озна­ча­ет что ZFS может создать фай­ло­вую систе­му охва­тив все дис­ки. Но не толь­ко это, мож­но так­же доба­вить хра­ни­ли­ще в систе­му дис­ков. ZFS зай­мет­ся раз­де­ле­ни­ем и фор­ма­ти­ро­ва­ни­ем дисков.

Copy-on-write

Copy-on-write это дру­гая инте­рес­ная осо­бен­ность. Но боль­шин­стве фай­ло­вых систем, если инфор­ма­ция пере­за­пи­са­на, она утра­че­на навсе­гда. В ZFS новая инфор­ма­ция запи­сы­ва­ет­ся в отдель­ный блок. Как толь­ко запись завер­ше­на, мета­дан­ные фай­ло­вой систе­мы обнов­ля­ют­ся к точ­ке новой инфор­ма­ции. Это гаран­ти­ру­ет что если фай­ло­вая систе­ма сло­ма­ет­ся (или слу­чит­ся что-либо подоб­ное) во вре­мя запи­си, ста­рая инфор­ма­ция будет фик­си­ро­ва­на. Это озна­ча­ет что систе­ме не нуж­но запус­кать fsck после сбоя.

Снапшоты

Copy-on-write при­во­дит к дру­гой инте­рес­ной вещи в ZFS: снап­шо­ты. ZFS исполь­зу­ет сним­ки, для того что­бы сле­дить за изме­не­ни­я­ми в фай­ло­вой систе­ме. Сни­мок хра­нит ори­ги­наль­ную вер­сию фай­ло­вой систе­мы и теку­щую, в кото­рой все изме­не­ния с момен­та созда­ния сним­ка. Ника­ко­го допол­ни­тель­но­го места не исполь­зу­ет­ся. Как толь­ко новая инфор­ма­ция запи­сы­ва­ет­ся в теку­щую фай­ло­вую систе­му, новые бло­ки рас­пре­де­ля­ют­ся для её хра­не­ния. Если же файл был уда­лен, упо­ми­на­ние о нём из сним­ка исче­за­ет. Сним­ки раз­ра­бо­та­ны для слеж­ки за изме­не­ни­я­ми, но не явля­ют­ся допол­не­ни­ем и не созда­ют файлов.

Сним­ки могут быть смон­ти­ро­ва­ны в фор­ма­те read-only для вос­ста­нов­ле­ния ста­рой вер­сии фай­ла. Так­же мож­но отка­тить систе­му к преды­ду­ще­му сним­ку. Все изме­не­ния сде­лан­ные после сним­ка будут утрачены.

Проверка цельности информации и автоматическая починка

Вся­кий раз когда новая инфор­ма­ция запи­сы­ва­ет­ся в ZFS, созда­ет­ся чек-сум­ма (кон­троль­ная сум­ма) для этой инфор­ма­ции. Когда инфор­ма­ция про­чи­та­на, чек-сум­ма под­твер­жда­ет­ся. Если чек-сум­мы не сов­па­да­ют, ZFS заме­ча­ет ошиб­ку и попы­та­ет­ся её исправить.

RAID-Z

ZFS может под­нять RAID без вспо­мо­га­тель­но­го соф­та. Не уди­ви­тель­но, что ZFS предо­став­ля­ет свою реа­ли­за­цию RAID: RAID-Z. RAID-Z это по сути вари­а­ция RAID-5. Тем не менее RAID-Z раз­ра­бо­тан так, что бы пре­взой­ти RAID-5 в плане ошиб­ки, «все дан­ные и инфор­ма­ция о кон­тро­ле по чёт­но­сти ста­но­вит­ся несов­ме­сти­мой после непред­ви­ден­ной пере­за­груз­ки.» Что­бы исполь­зо­вать базо­вый уро­вень (RAID-Z1) вам необ­хо­ди­мо мини­мум два дис­ка для хра­не­ния и один для кон­тро­ля по чёт­но­сти. RAID-Z2 нуж­но как мини­мум два дис­ка для хра­не­ния и два для кон­тро­ля по чёт­но­сти. RAID-Z3 тре­бу­ет два дис­ка для хра­не­ния и три для кон­тро­ля по чёт­но­сти. Как толь­ко дис­ки добав­ле­ны к груп­пам RAID-Z они долж­ны быть крат­ны двум.

Огромные возможности хранилища

Когда ZFS была созда­на, она была спро­ек­ти­ро­ва­на, что­бы стать луч­шей в сво­ем роде. Во вре­мя когда боль­шин­ство фай­ло­вых систем были 64-бит­ны­ми, созда­те­ли ZFS реши­ли сде­лать её 128-бит­ной, для буду­ще­го под­твер­жде­ния это­го. Это озна­ча­ет, что ZFS предо­став­ля­ет емкость 16 мил­ли­о­нов мил­ли­о­нов 32 или 64-бит­ных систем. К тому же, Джеф Бон­вик (один из созда­те­лей) ска­зал что энер­го­снаб­же­ние пол­но­стью запол­нен­но­го 128-бит­но­го пула памя­ти будет бук­валь­но тре­бо­вать боль­ше энер­гии чем для вски­па­ния океанов.

yum install http://download.zfsonlinux.org/epel/zfs-release.el7_6.noarch.rpm

пра­вим репозиторий:

/etc/yum.repos.d/zfs.repo

в пер­вом меня­ем на 0 во вто­ром на 1

yum install zfs -y
reboot