ΠžΡΠ½ΠΎΠ²Ρ‹ ZFS: систСма хранСния ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

ΠžΡΠ½ΠΎΠ²Ρ‹ ZFS: систСма хранСния ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

Π­Ρ‚ΠΎΠΉ вСсной ΠΌΡ‹ ΡƒΠΆΠ΅ обсудили Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π²ΠΎΠ΄Π½Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π²Π°ΡˆΠΈΡ… дисков ΠΈ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ RAID. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΌΡ‹ Π΄Π°ΠΆΠ΅ ΠΏΠΎΠΎΠ±Π΅Ρ‰Π°Π»ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… многодисковых Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΉ Π² ZFS. Π­Ρ‚ΠΎ файловая систСма ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ поколСния, которая сСйчас внСдряСтся ΠΏΠΎΠ²ΡΡŽΠ΄Ρƒ: ΠΎΡ‚ Apple Π΄ΠΎ Ubuntu.

Ну Ρ‡Ρ‚ΠΎ ΠΆ, сСгодня самый подходящий дСнь для знакомства с ZFS, Π»ΡŽΠ±ΠΎΠ·Π½Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π·Π½Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎ скромной ΠΎΡ†Π΅Π½ΠΊΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° OpenZFS ΠœΡΡ‚Ρ‚Π° АрСнса, «это Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ слоТно».

Но ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ добСрСмся Π΄ΠΎ Ρ†ΠΈΡ„Ρ€Β β€” Π° ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚, ΠΎΠ±Π΅Ρ‰Π°ΡŽΒ β€” ΠΏΠΎ всСм Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌ восьмидисковой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ZFS, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π²ΠΎΠΎΠ±Ρ‰Π΅ ZFS Ρ…Ρ€Π°Π½ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° дискС.

Zpool, vdev ΠΈ device

ΠžΡΠ½ΠΎΠ²Ρ‹ ZFS: систСма хранСния ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
Π­Ρ‚Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΡƒΠ»Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ‚Ρ€ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… vdev’Π°, ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ класса, ΠΈ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ для RAIDz2

ΠžΡΠ½ΠΎΠ²Ρ‹ ZFS: систСма хранСния ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅Ρ‚ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡƒΠ» ΠΈΠ· Π½Π΅ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² vdevΒ β€” Π½ΠΎ Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Π½ΠΈΡ‡Ρ‚ΠΎ Π½Π΅ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ Π²Π°ΠΌ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму ZFS, Π½ΡƒΠΆΠ½ΠΎ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Π΅Ρ‘ Ρ„Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ZFS ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΡƒΡ€ΠΎΠ²Π½ΠΈ управлСния Ρ‚ΠΎΠΌΠ°ΠΌΠΈ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ копирования ΠΏΡ€ΠΈ записи. Π­Ρ‚ΠΈ особСнности ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ систСма структурно ΠΎΡ‡Π΅Π½ΡŒ отличаСтся ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм ΠΈ RAID-массивов. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ основных ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² для понимания: это ΠΏΡƒΠ» хранСния (zpool), Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ устройство (vdev) ΠΈ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ устройство (device).

zpool

ΠŸΡƒΠ» хранСния zpool β€” самая вСрхняя структура ZFS. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡƒΠ» содСрТит ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ нСсколько Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… устройств. Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· Π½ΠΈΡ… содСрТит ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ нСсколько Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… устройств (device). Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡƒΠ»Ρ‹ β€” это Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ. Один физичСский ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄Π²Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡƒΠ»Π°, Π½ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ нСзависим ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ…. ΠŸΡƒΠ»Ρ‹ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ устройства.

Π˜Π·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ZFS находится Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… устройств, Π° Π½Π΅ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΡƒΠ»ΠΎΠ². На ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΡƒΠ»ΠΎΠ² Π½Π΅Ρ‚ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ избыточности β€” Ссли ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»ΡŒ vdev ΠΈΠ»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ vdev тСряСтся, Ρ‚ΠΎ вмСстС с Π½ΠΈΠΌ тСряСтся ΠΈ вСсь ΠΏΡƒΠ».

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΡƒΠ»Ρ‹ хранСния ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΡ‚ΡŒ ΠΏΠΎΡ‚Π΅Ρ€ΡŽ кэша ΠΈΠ»ΠΈ ΠΆΡƒΡ€Π½Π°Π»Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ устройства — хотя ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ нСбольшоС количСство грязных Π΄Π°Π½Π½Ρ‹Ρ…, Ссли ΠΏΠΎΡ‚Π΅Ρ€ΡΡŽΡ‚ ΠΆΡƒΡ€Π½Π°Π» vdev Π²ΠΎ врСмя ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ питания ΠΈΠ»ΠΈ сбоя систСмы.

Π•ΡΡ‚ΡŒ распространённоС Π·Π°Π±Π»ΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ «полосы Π΄Π°Π½Π½Ρ‹Ρ…Β» (страйпы) ZFS Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· вСсь ΠΏΡƒΠ». Π­Ρ‚ΠΎ Π½Π΅Π²Π΅Ρ€Π½ΠΎ. ZpoolΒ β€” вовсС Π½Π΅ Π·Π°Π±Π°Π²Π½Ρ‹ΠΉ RAID0, это скорСС Π·Π°Π±Π°Π²Π½Ρ‹ΠΉ JBOD со слоТным ΠΈΠ·ΠΌΠ΅Π½Ρ‡ΠΈΠ²Ρ‹ΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ распрСдСлСния.

По большСй части записи Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ доступными Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ устройствами Π² соотвСтствии с ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΡΡ свободным пространством, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ тСорСтичСски всС ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Π’ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… вСрсиях ZFS учитываСтся Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ использованиС (ΡƒΡ‚ΠΈΠ»ΠΈΠ·Π°Ρ†ΠΈΡŽ) vdevΒ β€” Ссли ΠΎΠ΄Π½ΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ устройство Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Π΅Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ·-Π·Π° Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅), Π΅Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ пропустят для записи, нСсмотря Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ самого высокого коэффициСнта свободного пространства.

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ опрСдСлСния ΡƒΡ‚ΠΈΠ»ΠΈΠ·Π°Ρ†ΠΈΠΈ, встроСнный Π² соврСмСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ распрСдСлСния записи ZFS, ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π² ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Ρ‹ Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ высокой Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈΒ β€” Π½ΠΎ это Π½Π΅ ΠΊΠ°Ρ€Ρ‚-бланш Π½Π° нСвольноС смСшиваниС ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Ρ… HDD ΠΈ быстрых SSD Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡƒΠ»Π΅. Π’Π°ΠΊΠΎΠΉ Π½Π΅Ρ€Π°Π²Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ ΠΏΡƒΠ» всё Ρ€Π°Π²Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ самого ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ устройства, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ ΠΎΠ½ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ составлСн ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… устройств.

vdev

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡƒΠ» хранСния состоит ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… устройств (virtual device, vdev). Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ vdev Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ нСсколько Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… устройств. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… устройств ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для простого хранСния Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ сущСствуСт нСсколько Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… классов vdev, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ CACHE, LOG ΠΈ SPECIAL. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих Ρ‚ΠΈΠΏΠΎΠ² vdev ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ· пяти Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΉ: Π΅Π΄ΠΈΠ½ΠΎΠ΅ устройство (single-device), RAIDz1, RAIDz2, RAIDz3 ΠΈΠ»ΠΈ Π·Π΅Ρ€ΠΊΠ°Π»ΠΎ (mirror).

RAIDz1, RAIDz2 ΠΈ RAIDz3 β€” это особыС разновидности Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ»Π΄Ρ‹ Π½Π°Π·ΠΎΠ²ΡƒΡ‚ RAID Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ (диагональной) чётности. 1, 2 ΠΈ 3 относятся ΠΊ Ρ‚ΠΎΠΌΡƒ, сколько Π±Π»ΠΎΠΊΠΎΠ² чётности Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ полосы Π΄Π°Π½Π½Ρ‹Ρ…. ВмСсто ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… дисков для обСспСчСния чётности Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ устройства RAIDz ΠΏΠΎΠ»ΡƒΡ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ эту Ρ‡Ρ‘Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎ дискам. Массив RAIDz ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ дисков, сколько Ρƒ Π½Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠΎΠ² чётности; Ссли ΠΎΠ½ потСряСт Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½, Ρ‚ΠΎ Π²Ρ‹ΠΉΠ΄Π΅Ρ‚ ΠΈΠ· строя ΠΈ Π·Π°Π±Π΅Ρ€Π΅Ρ‚ с собой ΠΏΡƒΠ» хранСния.

Π’ Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… устройствах (mirror vdev) ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π»ΠΎΠΊ хранится Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ устройствС Π² vdev. Π₯отя Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространённыС Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ Π·Π΅Ρ€ΠΊΠ°Π»Π° (two-wide), Π² Π·Π΅Ρ€ΠΊΠ°Π»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любоС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ количСство устройств — Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… установках для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ чтСния ΠΈ отказоустойчивости часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚Ρ€ΠΎΠΉΠ½Ρ‹Π΅. Π—Π΅Ρ€ΠΊΠ°Π»ΠΎ vdev ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΡ‚ΡŒ любой сбой, ΠΏΠΎΠΊΠ° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ хотя Π±Ρ‹ ΠΎΠ΄Π½ΠΎ устройство Π² vdev.

ΠžΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹Π΅ vdev ΠΏΠΎ своСй сути опасны. Π’Π°ΠΊΠΎΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ устройство Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΠ²Ρ‘Ρ‚ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ сбоя — ΠΈ Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΈΠ»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ vdev, Ρ‚ΠΎ Π΅Π³ΠΎ сбой ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΡŽ всСго ΠΏΡƒΠ»Π°. Π‘ΡƒΠ΄ΡŒΡ‚Π΅ здСсь ΠΎΡ‡Π΅Π½ΡŒ, ΠΎΡ‡Π΅Π½ΡŒ остороТны.

Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ устройства CACHE, LOG ΠΈ SPECIAL ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ созданы ΠΏΠΎ любой ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΉ β€” Π½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ потСря Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ устройства SPECIAL ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠΎΡ‚Π΅Ρ€ΡŽ ΠΏΡƒΠ»Π°, поэтому Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся избыточная топология.

device

ВСроятно, это самый простой для понимания Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Π² ZFSΒ β€” это Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ Π±Π»ΠΎΡ‡Π½ΠΎΠ΅ устройство ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ доступа. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ устройства состоят ΠΈΠ· ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… устройств, Π° ΠΏΡƒΠ» сдСлан ΠΈΠ· Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… устройств.

Диски β€” ΠΌΠ°Π³Π½ΠΈΡ‚Π½Ρ‹Π΅ ΠΈΠ»ΠΈ Ρ‚Π²Ρ‘Ρ€Π΄ΠΎΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ β€” ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространёнными Π±Π»ΠΎΡ‡Π½Ρ‹ΠΌΠΈ устройствами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² качСствС ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² vdev. Однако ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚ любой дСвайс с дСскриптором Π² /devΒ β€” Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π² качСствС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… устройств ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π΅Π»Ρ‹Π΅ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ RAID-массивы.

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ raw-Ρ„Π°ΠΉΠ» являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· самых Π²Π°ΠΆΠ½Ρ‹Ρ… Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Π±Π»ΠΎΡ‡Π½Ρ‹Ρ… устройств, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ построСн vdev. ВСстовыС ΠΏΡƒΠ»Ρ‹ ΠΈΠ· Ρ€Π°Π·Ρ€Π΅ΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²Β β€” ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΡƒΠ»Π° ΠΈ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, сколько мСста доступно Π² ΠΏΡƒΠ»Π΅ ΠΈΠ»ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ устройствС Π΄Π°Π½Π½ΠΎΠΉ Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ.

ΠžΡΠ½ΠΎΠ²Ρ‹ ZFS: систСма хранСния ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ тСстовый ΠΏΡƒΠ» ΠΈΠ· Ρ€Π°Π·Ρ€Π΅ΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² всСго Π·Π° нСсколько сСкунд — Π½ΠΎ Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΠΎΡ‚ΠΎΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ вСсь ΠΏΡƒΠ» ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

Допустим, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ сСрвСр Π½Π° восСмь дисков ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ диски ΠΏΠΎ 10Β Π’Π‘ (~9300 Π“ΠΈΠ‘)Β β€” Π½ΠΎ Π²Ρ‹ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, какая топология Π»ΡƒΡ‡ΡˆΠ΅ всСго соотвСтствуСт вашим потрСбностям. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π·Π° считанныС сСкунды строим тСстовый ΠΏΡƒΠ» ΠΈΠ· Ρ€Π°Π·Ρ€Π΅ΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²Β β€” ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ RAIDz2 vdev ΠΈΠ· восьми дисков ΠΏΠΎ 10 Π’Π‘ обСспСчиваСт 50Β Π’ΠΈΠ‘ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ёмкости.

Π•Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ особый класс устройств β€” SPARE (запасныС). Устройства горячСй Π·Π°ΠΌΠ΅Π½Ρ‹, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… устройств, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ всСму ΠΏΡƒΠ»Ρƒ, Π° Π½Π΅ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ устройству. Если ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ vdev Π² ΠΏΡƒΠ»Π΅ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· строя, Π° запасноС устройство ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΊ ΠΏΡƒΠ»Ρƒ ΠΈ доступно, Ρ‚ΠΎ ΠΎΠ½ΠΎ автоматичСски присоСдинится ΠΊ ΠΏΠΎΡΡ‚Ρ€Π°Π΄Π°Π²ΡˆΠ΅ΠΌΡƒ vdev.

ПослС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ ΠΏΠΎΡΡ‚Ρ€Π°Π΄Π°Π²ΡˆΠ΅ΠΌΡƒ vdev запасной дСвайс Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΊΠΎΠΏΠΈΠΈ ΠΈΠ»ΠΈ рСконструкции Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π½Π° ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ устройствС. Π’ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΌ RAID это называСтся восстановлСниСм (rebuilding), Π° Π² ZFS это «восстановлСниС избыточности» (resilvering).

Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ запасныС устройства Π½Π΅ навсСгда Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ Π²Ρ‹ΡˆΠ΅Π΄ΡˆΠΈΠ΅ ΠΈΠ· строя устройства. Π­Ρ‚ΠΎ лишь врСмСнная Π·Π°ΠΌΠ΅Π½Π° для сокращСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ дСградация vdev. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ администратор Π·Π°ΠΌΠ΅Π½ΠΈΠ» Π²Ρ‹ΡˆΠ΅Π΄ΡˆΠ΅Π΅ ΠΈΠ· строя устройство vdev, Ρ‚ΠΎ происходит восстановлСниС избыточности Π½Π° это постоянноС устройство, Π° SPARE отсоСдиняСтся ΠΎΡ‚ vdev ΠΈ возвращаСтся ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ запасным Π½Π° вСсь ΠΏΡƒΠ».

Наборы Π΄Π°Π½Π½Ρ‹Ρ…, Π±Π»ΠΎΠΊΠΈ ΠΈ сСкторы

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π½Π°Π±ΠΎΡ€ ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² нашСм ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠΈ ΠΏΠΎ ZFS, относится Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΌΡƒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ, сколько ΠΊ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΈ хранятся сами Π΄Π°Π½Π½Ρ‹Π΅. ΠœΡ‹ здСсь пропускаСм нСсколько ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ β€” Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ metaslab β€” Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π½Π°Π³Ρ€ΠΎΠΌΠΎΠΆΠ΄Π°Ρ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈ, сохраняя ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΎΠ±Ρ‰Π΅ΠΉ структуры.

Набор Π΄Π°Π½Π½Ρ‹Ρ… (dataset)

ΠžΡΠ½ΠΎΠ²Ρ‹ ZFS: систСма хранСния ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
Когда ΠΌΡ‹ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ создаём Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ½ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ всё доступноС пространство ΠΏΡƒΠ»Π°. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ устанавливаСм ΠΊΠ²ΠΎΡ‚ΡƒΒ β€” ΠΈ мСняСм Ρ‚ΠΎΡ‡ΠΊΡƒ монтирования. Магия!

ΠžΡΠ½ΠΎΠ²Ρ‹ ZFS: систСма хранСния ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
Zvol β€” это ΠΏΠΎ большСй части просто Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…, Π»ΠΈΡˆΡ‘Π½Π½Ρ‹ΠΉ своСго слоя Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ замСняСм здСсь ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой ext4

Набор Π΄Π°Π½Π½Ρ‹Ρ… ZFS ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ стандартной смонтированной Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС. Как ΠΈ обычная файловая систСма, Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд ΠΎΠ½ каТСтся «просто Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΎΠΉΒ». Но Ρ‚Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρƒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм, Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… ZFS собствСнный Π½Π°Π±ΠΎΡ€ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… свойств.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, Ρƒ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ назначСнная ΠΊΠ²ΠΎΡ‚Π°. Если ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ zfs set quota=100G poolname/datasetname, Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ смоТСтС Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΡΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ /poolname/datasetname большС, Ρ‡Π΅ΠΌ 100Β Π“ΠΈΠ‘.

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Β β€” ΠΈ отсутствиС — слэшСй Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки? Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… своё мСсто ΠΊΠ°ΠΊ Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ZFS, Ρ‚Π°ΠΊ ΠΈ Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ систСмного монтирования. Π’ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ZFS Π½Π΅Ρ‚ Π²Π΅Π΄ΡƒΡ‰Π΅Π³ΠΎ ΡΠ»ΡΡˆΠ°Β β€” Π²Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ с ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡƒΠ»Π°, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡƒΡ‚ΠΈ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ. НапримСр, pool/parent/child для Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… с ΠΈΠΌΠ΅Π½Π΅ΠΌ child ΠΏΠΎΠ΄ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… parent Π² ΠΏΡƒΠ»Π΅ с ΠΊΡ€Π΅Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ pool.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ‚ΠΎΡ‡ΠΊΠ° монтирования Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ эквивалСнтна Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ZFS, со слэшСм Π² Π½Π°Ρ‡Π°Π»Π΅Β β€” ΠΏΡƒΠ» с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ pool примонтируСтся ΠΊΠ°ΠΊ /pool, Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… parent монтируСтся Π² /pool/parent, Π° Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… child смонтируСтся Π² /pool/parent/child. Однако ΡΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ монтирования Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ.

Если ΠΌΡ‹ ΡƒΠΊΠ°ΠΆΠ΅ΠΌ zfs set mountpoint=/lol pool/parent/child, Ρ‚ΠΎ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… pool/parent/child смонтируСтся Π² систСму ΠΊΠ°ΠΊ /lol.

Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Π½Π°Π±ΠΎΡ€Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ Ρ‚ΠΎΠΌΠ° (zvols). Π’ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ Π½Π°Π±ΠΎΡ€Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π² Π½Ρ‘ΠΌ фактичСски Π½Π΅Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы — это просто Π±Π»ΠΎΡ‡Π½ΠΎΠ΅ устройство. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ zvol с ΠΈΠΌΠ΅Π½Π΅ΠΌ mypool/myzvol, Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой ext4, Π° Π·Π°Ρ‚Π΅ΠΌ ΡΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму — Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ вас Π΅ΡΡ‚ΡŒ файловая систСма ext4, Π½ΠΎ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ всСх Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ бСзопасности ZFS! Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π³Π»ΡƒΠΏΡ‹ΠΌ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС смысла Π² качСствС бэкСнда ΠΏΡ€ΠΈ экспортировании устройства iSCSI.

Π‘Π»ΠΎΠΊΠΈ

ΠžΡΠ½ΠΎΠ²Ρ‹ ZFS: систСма хранСния ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
Π€Π°ΠΉΠ» прСдставлСн ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ нСсколькими Π±Π»ΠΎΠΊΠ°ΠΌΠΈ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π»ΠΎΠΊ хранится Π½Π° ΠΎΠ΄Π½ΠΎΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ устройствС. Π Π°Π·ΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊΠ° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π²Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ recordsize, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ Π΄ΠΎ 2^ashift, Ссли содСрТит ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ нСбольшой Ρ„Π°ΠΉΠ».

ΠžΡΠ½ΠΎΠ²Ρ‹ ZFS: систСма хранСния ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
ΠœΡ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ ΡˆΡƒΡ‚ΠΈΠΌ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ³ΠΎ ΡƒΡ‰Π΅Ρ€Π±Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ссли ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ слишком малСнький ashift

Π’ ΠΏΡƒΠ»Π΅ ZFS всС Π΄Π°Π½Π½Ρ‹Π΅, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅, хранятся Π² Π±Π»ΠΎΠΊΠ°Ρ…. ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊΠ° для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… опрСдСляСтся Π² свойствС recordsize (Ρ€Π°Π·ΠΌΠ΅Ρ€ записи). Π Π°Π·ΠΌΠ΅Ρ€ записи ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ, Π½ΠΎ это Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈΠ»ΠΈ располоТСниС Π»ΡŽΠ±Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ записаны Π² Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…Β β€” ΠΎΠ½ дСйствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π½ΠΎΠ²Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΠΈΡ… записи.

Если Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΈΠ½ΠΎΠ΅, Ρ‚ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ записи ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π°Π²Π΅Π½ 128Β ΠšΠΈΠ‘. Π­Ρ‚ΠΎ своСго Ρ€ΠΎΠ΄Π° нСпростой компромисс, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ идСальной, Π½ΠΎ ΠΈ Π½Π΅ уТасной Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв. Recordsize ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π° любоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ 4K Π΄ΠΎ 1M (с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ настройками recordsize ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Ρ‰Ρ‘ большС, Π½ΠΎ это Ρ€Π΅Π΄ΠΊΠΎ Π±Ρ‹Π²Π°Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΈΠ΄Π΅Π΅ΠΉ).

Π›ΡŽΠ±ΠΎΠΉ Π±Π»ΠΎΠΊ ссылаСтся Π½Π° Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°Β β€” Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‚ΠΈΡΠ½ΡƒΡ‚ΡŒ Π΄Π²Π° Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π° Π² ΠΎΠ΄ΠΈΠ½ Π±Π»ΠΎΠΊ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ» состоит ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π±Π»ΠΎΠΊΠΎΠ², Π² зависимости ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. Если Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° мСньшС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° записи, ΠΎΠ½ сохранится Π² Π±Π»ΠΎΠΊΠ΅ мСньшСго Ρ€Π°Π·ΠΌΠ΅Ρ€Π°Β β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π±Π»ΠΎΠΊ с Ρ„Π°ΠΉΠ»ΠΎΠΌ 2Β ΠšΠΈΠ‘ Π·Π°ΠΉΠΌΡ‘Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ сСктор 4Β ΠšΠΈΠ‘ Π½Π° дискС.

Если Ρ„Π°ΠΉΠ» достаточно Π²Π΅Π»ΠΈΠΊ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ нСсколько Π±Π»ΠΎΠΊΠΎΠ², Ρ‚ΠΎ всС записи с этим Ρ„Π°ΠΉΠ»ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ recordsizeΒ β€” Π²ΠΊΠ»ΡŽΡ‡Π°Ρ послСднюю запись, основная Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ пространством.

Π£ Ρ‚ΠΎΠΌΠΎΠ² zvol Π½Π΅Ρ‚ свойства recordsizeΒ β€” вмСсто этого Ρƒ Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ эквивалСнтноС свойство volblocksize.

Π‘Π΅ΠΊΡ‚ΠΎΡ€Ρ‹

ПослСдний, самый Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ β€” сСктор. Π­Ρ‚ΠΎ наимСньшая физичСская Π΅Π΄ΠΈΠ½ΠΈΡ†Π°, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ записана ΠΈΠ»ΠΈ считана с Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ устройства. Π’ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… дСсятилСтий Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ дисков использовались сСкторы ΠΏΠΎ 512 Π±Π°ΠΉΡ‚. Π’ послСднСС врСмя Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ дисков настроСно Π½Π° сСктора 4Β ΠšΠΈΠ‘, Π° Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…Β β€” особСнно SSD — сСктора 8Β ΠšΠΈΠ‘ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ большС.

Π’ систСмС ZFS Π΅ΡΡ‚ΡŒ свойство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ сСктора. Π­Ρ‚ΠΎ свойство ashift. НСсколько Π·Π°ΠΏΡƒΡ‚Π°Π½Π½ΠΎ, Ρ‡Ρ‚ΠΎ ashift являСтся ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒΡŽ Π΄Π²ΠΎΠΉΠΊΠΈ. НапримСр, ashift=9 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ сСктора 2^9, ΠΈΠ»ΠΈ 512 Π±Π°ΠΉΡ‚.

ZFS Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π±Π»ΠΎΡ‡Π½ΠΎΠΌ устройствС, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΎ добавляСтся Π² Π½ΠΎΠ²Ρ‹ΠΉ vdev, ΠΈ тСорСтичСски автоматичСски устанавливаСт ashift Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π° основС этой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. К соТалСнию, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ диски Π»Π³ΡƒΡ‚ ΠΎ своём Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ сСктора, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с Windows XP (которая Π±Ρ‹Π»Π° нСспособна ΠΏΠΎΠ½ΡΡ‚ΡŒ диски с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ сСкторов).

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ администратору ZFS Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся Π·Π½Π°Ρ‚ΡŒ фактичСский Ρ€Π°Π·ΠΌΠ΅Ρ€ сСктора своих устройств ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ashift. Если установлСн слишком малСнький ashift, Ρ‚ΠΎ астрономичСски увСличиваСтся количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ чтСния/записи. Π’Π°ΠΊ, запись 512-Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Ρ… «сСкторов» Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ сСктор 4Β ΠšΠΈΠ‘ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ «сСктор», Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ сСктор 4Β ΠšΠΈΠ‘, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ со Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ 512-Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΌ «сСктором», Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Π½ΠΎΠ²Ρ‹ΠΉ сСктор 4Β ΠšΠΈΠ‘ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ записи.

Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΈΡ€Π΅ Ρ‚Π°ΠΊΠΎΠΉ ΡˆΡ‚Ρ€Π°Ρ„ Π±ΡŒΡ‘Ρ‚ ΠΏΠΎ Ρ‚Π²Ρ‘Ρ€Π΄ΠΎΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ накопитСлям Samsung EVO, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ashift=13, Π½ΠΎ эти SSD Π²Ρ€ΡƒΡ‚ ΠΎ своём Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ сСктора, ΠΈ поэтому ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ устанавливаСтся ashift=9. Если ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ систСмный администратор Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, Ρ‚ΠΎ этот SSD Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ΠΌΠ°Π³Π½ΠΈΡ‚Π½ΠΎΠ³ΠΎ HDD.

Для сравнСния, Π·Π° слишком большой Ρ€Π°Π·ΠΌΠ΅Ρ€ ashift Π½Π΅Ρ‚ практичСски Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡˆΡ‚Ρ€Π°Ρ„Π°. РСального сниТСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π΅Ρ‚, Π° ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ пространства бСсконСчно ΠΌΠ°Π»ΠΎ (ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½ΠΎΠΌ сТатии). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ Π΄Π°ΠΆΠ΅ Ρ‚Π΅ΠΌ дискам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ 512-Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Π΅ сСкторы, ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ashift=12 ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ashift=13, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅.

Бвойство ashift устанавливаСтся для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ устройства vdev, Π° Π½Π΅ для ΠΏΡƒΠ»Π°, ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎ Π΄ΡƒΠΌΠ°ΡŽΡ‚Β β€” ΠΈ Π½Π΅ измСняСтся послС установки. Если Π²Ρ‹ случайно сбили ashift ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ vdev Π² ΠΏΡƒΠ», Ρ‚ΠΎ Π²Ρ‹ Π±Π΅Π·Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π½ΠΎ загрязнили этот ΠΏΡƒΠ» устройством с Π½ΠΈΠ·ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π°, ΠΊΡ€ΠΎΠΌΠ΅ ΠΊΠ°ΠΊ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠΈΡ‚ΡŒ ΠΏΡƒΠ» ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ всё сначала. Π”Π°ΠΆΠ΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ vdev Π½Π΅ спасёт ΠΎΡ‚ сбитой настройки ashift!

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ копирования ΠΏΡ€ΠΈ записи

ΠžΡΠ½ΠΎΠ²Ρ‹ ZFS: систСма хранСния ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
Если ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅Β β€” ΠΎΠ½Π° измСняСт ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π»ΠΎΠΊ Ρ‚Π°ΠΌ, Π³Π΄Π΅ ΠΎΠ½ находится

ΠžΡΠ½ΠΎΠ²Ρ‹ ZFS: систСма хранСния ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
Ѐайловая систСма с ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΈ записи записываСт Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Π±Π»ΠΎΠΊΠ°, Π° Π·Π°Ρ‚Π΅ΠΌ Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ ΡΡ‚Π°Ρ€ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ

ΠžΡΠ½ΠΎΠ²Ρ‹ ZFS: систСма хранСния ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
Π’ абстрактном Π²ΠΈΠ΄Π΅, Ссли ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ физичСскоС располоТСниС Π±Π»ΠΎΠΊΠΎΠ², Ρ‚ΠΎ наша Β«ΠΊΠΎΠΌΠ΅Ρ‚Π° Π΄Π°Π½Π½Ρ‹Ρ…Β» упрощаСтся Π΄ΠΎ «чСрвя Π΄Π°Π½Π½Ρ‹Ρ…Β», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пСрСмСщаСтся слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ ΠΏΠΎ ΠΊΠ°Ρ€Ρ‚Π΅ доступного пространства

ΠžΡΠ½ΠΎΠ²Ρ‹ ZFS: систСма хранСния ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ прСдставлСниС, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΡΠ½Π°ΠΏΡˆΠΎΡ‚Ρ‹ копирования ΠΏΡ€ΠΈ записи β€” ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ΡŒ нСскольким ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π°ΠΌ, ΠΈ сохранится Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½Ρ‹ всС связанныС ΡΠ½Π°ΠΏΡˆΠΎΡ‚Ρ‹

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ копирования ΠΏΡ€ΠΈ записи (Copy on Write, CoW)Β β€” Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ основа Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ZFS Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰Π΅ΠΉ систСмой. Основная концСпция проста — Ссли Π²Ρ‹ попроситС Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΡƒΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ», ΠΎΠ½Π° сдСлаСт ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ просили. Если Π²Ρ‹ попроситС Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму с ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΈ записи ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ самоС, ΠΎΠ½Π° скаТСт Β«Ρ…ΠΎΡ€ΠΎΡˆΠΎΒ»Β β€” Π½ΠΎ соврёт Π²Π°ΠΌ.

ВмСсто этого файловая систСма с ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΈ записи записываСт Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°, Π° Π·Π°Ρ‚Π΅ΠΌ обновляСт ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΎΡ€Π²Π°Ρ‚ΡŒ связь со старым Π±Π»ΠΎΠΊΠΎΠΌ ΠΈ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ с Π½ΠΈΠΌ Π½ΠΎΠ²Ρ‹ΠΉ Π±Π»ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ записали.

ΠžΡ‚ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ старого Π±Π»ΠΎΠΊΠ° ΠΈ связываниС Π½ΠΎΠ²ΠΎΠ³ΠΎ осущСствляСтся Π·Π° ΠΎΠ΄Π½Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, поэтому Π΅Ρ‘ нСльзя ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒΒ β€” Ссли Π²Ρ‹ сбрасываСтС ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ это ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚, Ρƒ вас Π΅ΡΡ‚ΡŒ новая вСрсия Ρ„Π°ΠΉΠ»Π°, Π° Ссли Π²Ρ‹ сбрасываСтС ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ Ρ€Π°Π½ΡŒΡˆΠ΅, Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ старая вСрсия. Π’ любом случаС, Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ².

ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ записи Π² ZFS происходит Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы, Π½ΠΎ ΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ управлСния дисками. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ZFS Π½Π΅ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Π° ΠΏΡ€ΠΎΠ±Π΅Π»Ρƒ Π² записи (Π΄Ρ‹Ρ€Π΅ Π² RAID)Β β€” Ρ„Π΅Π½ΠΎΠΌΠ΅Π½Ρƒ, ΠΊΠΎΠ³Π΄Π° полоса успСла Ρ‚ΠΎΠ»ΡŒΠΊΠΎ частично Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π΄ΠΎ сбоя систСмы, с ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ массива послС ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Π—Π΄Π΅ΡΡŒ полоса ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎ, vdev всСгда послСдоватСлСн, ΠΈ Π‘ΠΎΠ±Β β€” Ρ‚Π²ΠΎΠΉ дядя.

ZIL: ΠΆΡƒΡ€Π½Π°Π» Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ ZFS

ΠžΡΠ½ΠΎΠ²Ρ‹ ZFS: систСма хранСния ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
БистСма ZFS ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ синхронныС записи особым ΠΎΠ±Ρ€Π°Π·ΠΎΠΌΒ β€” ΠΎΠ½Π° Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Π½ΠΎ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ сохраняСт ΠΈΡ… Π² ZIL, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠΎΠ·ΠΆΠ΅ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΡ… Π½Π° постоянной основС вмСстС с асинхронными записями

ΠžΡΠ½ΠΎΠ²Ρ‹ ZFS: систСма хранСния ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π΄Π°Π½Π½Ρ‹Π΅, записанныС Π½Π° ZIL, большС Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ. Но это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ послС сбоя систСмы

ΠžΡΠ½ΠΎΠ²Ρ‹ ZFS: систСма хранСния ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
SLOG, ΠΈΠ»ΠΈ Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½ΠΎΠ΅ LOG-устройство, β€” это просто ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉΒ β€” ΠΈ, ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΡ‡Π΅Π½ΡŒ быстрый — vdev, Π³Π΄Π΅ ZIL ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ основного Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°

ΠžΡΠ½ΠΎΠ²Ρ‹ ZFS: систСма хранСния ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
ПослС сбоя всС грязныС Π΄Π°Π½Π½Ρ‹Π΅ Π² ZIL воспроизводятся — Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ZIL находится Π½Π° SLOG, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ воспроизводятся ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΡ‚Ρ‚ΡƒΠ΄Π°

БущСствуСт Π΄Π²Π΅ основныС ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ записи — синхронныС (sync) ΠΈ асинхронныС (async). Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Π½Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ ΠΏΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ записи ΡΠ²Π»ΡΡŽΡ‚ΡΡ асинхронными — файловая систСма позволяСт Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΈ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ, ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ увСличивая ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ.

Π‘ΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½Ρ‹Π΅ записи β€” ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π΄Π΅Π»ΠΎ. Когда ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΡƒΡŽ запись, ΠΎΠ½ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС: Β«Π’Π΅Π±Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ это Π² энСргонСзависимой памяти прямо сСйчас, Π° Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€ я большС Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠ³Ρƒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒΒ». ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ синхронныС записи Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ зафиксированы Π½Π° дискС — ΠΈ Ссли это ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ, Ρ‚Π°ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΈ Π±Ρ‹Ρ‚ΡŒ.

ZFS ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ синхронныС записи ΠΈΠ½Π°Ρ‡Π΅, Ρ‡Π΅ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ систСмы — вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π·Π°Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, ZFS фиксируСт ΠΈΡ… Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ области хранСния, которая называСтся ΠΆΡƒΡ€Π½Π°Π» Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ ZFSΒ β€” ZFS Intent Log, ΠΈΠ»ΠΈ ZIL. Π₯ΠΈΡ‚Ρ€ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ эти записи Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π² памяти, Π±ΡƒΠ΄ΡƒΡ‡ΠΈ Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ вмСстС с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ асинхронными запросами Π½Π° запись, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·ΠΆΠ΅ Π±Ρ‹Ρ‚ΡŒ ΡΠ±Ρ€ΠΎΡˆΠ΅Π½Π½Ρ‹ΠΌΠΈ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΊΠ°ΠΊ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ TXG (Π³Ρ€ΡƒΠΏΠΏΡ‹ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, Transaction Groups).

Π’ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ZIL записываСтся ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° большС Π½Π΅ читаСтся. Когда Ρ‡Π΅Ρ€Π΅Π· нСсколько ΠΌΠ³Π½ΠΎΠ²Π΅Π½ΠΈΠΉ записи ΠΈΠ· ZIL Ρ„ΠΈΠΊΡΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² основном Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… TXG ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, ΠΎΠ½ΠΈ ΠΎΡ‚ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ ΠΎΡ‚ ZIL. ЕдинствСнноС, ΠΊΠΎΠ³Π΄Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ считываСтся ΠΈΠ· ZIL β€” это ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ ΠΏΡƒΠ»Π°.

Если происходит сбой ZFSΒ β€” сбой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ питания — ΠΊΠΎΠ³Π΄Π° Π² ZIL Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, эти Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ считаны Π²ΠΎ врСмя ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΏΡƒΠ»Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ пСрСзапускС Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠΉ систСмы). Всё, Ρ‡Ρ‚ΠΎ находится Π² ZIL, Π±ΡƒΠ΄Π΅Ρ‚ считано, объСдинСно Π² Π³Ρ€ΡƒΠΏΠΏΡ‹ TXG, зафиксировано Π² основном Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, Π° Π·Π°Ρ‚Π΅ΠΌ отсоСдинСно ΠΎΡ‚ ZIL Π² процСссС ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°.

Один ΠΈΠ· Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… классов vdev называСтся LOG ΠΈΠ»ΠΈ SLOG, Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½ΠΎΠ΅ устройство LOG. Π£ Π½Π΅Π³ΠΎ ΠΎΠ΄Π½Π° Π·Π°Π΄Π°Ρ‡Π°Β β€” ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΏΡƒΠ» ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ, ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ быстрым, с ΠΎΡ‡Π΅Π½ΡŒ высокой ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒΡŽ ΠΊ записи, устройством vdev для хранСния ZIL, вмСсто хранСния ZIL Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ vdev. Π‘Π°ΠΌ ZIL Π²Π΅Π΄Ρ‘Ρ‚ сСбя ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ нСзависимо ΠΎΡ‚ мСста хранСния, Π½ΠΎ Ссли Ρƒ vdev с LOG ΠΎΡ‡Π΅Π½ΡŒ высокая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ записи, Ρ‚ΠΎ синхронныС записи Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ быстрСС.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ vdev с LOG Π² ΠΏΡƒΠ» Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ асинхронной записи — Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ выполняСтС всС записи Π² ZIL с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ zfs set sync=always, ΠΎΠ½ΠΈ всё Ρ€Π°Π²Π½ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ привязаны ΠΊ основному Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Ρƒ Π² TXG Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ Ρ‚Π΅ΠΌΠΏΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ Π±Π΅Π· ΠΆΡƒΡ€Π½Π°Π»Π°. ЕдинствСнным прямым ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ являСтся Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° синхронной записи (ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ бóльшая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΆΡƒΡ€Π½Π°Π»Π° ускоряСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ sync).

Однако Π² срСдС, которая ΡƒΠΆΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ большого количСства синхронных записСй, vdev LOG ΠΌΠΎΠΆΠ΅Ρ‚ косвСнно ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΡƒΡŽ запись ΠΈ Π½Π΅ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅. Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ° записСй ZIL Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ vdev LOG ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΌΠ΅Π½ΡŒΡˆΡƒΡŽ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ†ΠΈΡŽ Π·Π° IOPS Π² ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ стСпСни ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ всСх ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ чтСния ΠΈ записи.

Π‘Π½Π°ΠΏΡˆΠΎΡ‚Ρ‹

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ копирования ΠΏΡ€ΠΈ записи Ρ‚Π°ΠΊΠΆΠ΅ являСтся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ основой для Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹Ρ… ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… снимков ZFS ΠΈ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ асинхронной Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Π’ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС Π΅ΡΡ‚ΡŒ Π΄Π΅Ρ€Π΅Π²ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΎΡ‚ΠΌΠ΅Ρ‡Π°ΡŽΡ‰Π΅Π΅ всС записи с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈΒ β€” ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ ΡΠ½Π°ΠΏΡˆΠΎΡ‚, Π²Ρ‹ просто Π΄Π΅Π»Π°Π΅Ρ‚Π΅ копию этого Π΄Π΅Ρ€Π΅Π²Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ.

Когда Π² Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС пСрСзаписываСтся запись, ZFS сначала записываСт Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Π±Π»ΠΎΠΊΠ° Π² Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ пространство. Π—Π°Ρ‚Π΅ΠΌ отсоСдиняСт ΡΡ‚Π°Ρ€ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Π±Π»ΠΎΠΊΠ° ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы. Но Ссли ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΡΠ½Π°ΠΏΡˆΠΎΡ‚ ссылаСтся Π½Π° старый Π±Π»ΠΎΠΊ, ΠΎΠ½ всё Ρ€Π°Π²Π½ΠΎ остаСтся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌ. Π‘Ρ‚Π°Ρ€Ρ‹ΠΉ Π±Π»ΠΎΠΊ фактичСски Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ восстановлСн ΠΊΠ°ΠΊ свободноС пространство, ΠΏΠΎΠΊΠ° всС ΡΠ½Π°ΠΏΡˆΠΎΡ‚Ρ‹, ΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° этот Π±Π»ΠΎΠΊ, Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½Ρ‹!

РСпликация

ΠžΡΠ½ΠΎΠ²Ρ‹ ZFS: систСма хранСния ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
Моя Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Steam Π² 2015 Π³ΠΎΠ΄Ρƒ Π·Π°Π½ΠΈΠΌΠ°Π»Π° 158Β Π“ΠΈΠ‘ ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π»Π° 126Β 927 Ρ„Π°ΠΉΠ»ΠΎΠ². Π­Ρ‚ΠΎ довольно Π±Π»ΠΈΠ·ΠΊΠΎ ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ ситуации для rsyncΒ β€” рСпликация ZFS ΠΏΠΎ сСти Π±Ρ‹Π»Π° «всСго лишь» Π½Π° 750% быстрСС.

ΠžΡΠ½ΠΎΠ²Ρ‹ ZFS: систСма хранСния ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
Π’ Ρ‚ΠΎΠΉ ΠΆΠ΅ сСти рСпликация ΠΎΠ΄Π½ΠΎΠ³ΠΎ 40-Π³ΠΈΠ±ΠΈΠ±Π°ΠΉΡ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ€Π°Π·Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Windows 7Β β€” ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ другая история. РСпликация ZFS происходит Π² 289 Ρ€Π°Π· быстрСС, Ρ‡Π΅ΠΌ rsyncΒ β€” ΠΈΠ»ΠΈ «всСго» Π² 161 Ρ€Π°Π· быстрСС, Ссли Π²Ρ‹ достаточно ΠΏΠΎΠ΄ΠΊΠΎΠ²Π°Π½Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ rsync с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ —inplace.

ΠžΡΠ½ΠΎΠ²Ρ‹ ZFS: систСма хранСния ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
Когда ΠΎΠ±Ρ€Π°Π· Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ rsync ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΡŽΡ‚ΡΡ вмСстС с Π½ΠΈΠΌ. Π Π°Π·ΠΌΠ΅Ρ€ 1,9 Π’ΠΈΠ‘ Π½Π΅ Ρ‚Π°ΠΊΠΎΠΉ большой для соврСмСнного ΠΎΠ±Ρ€Π°Π·Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹Β β€” Π½ΠΎ ΠΎΠ½ достаточно Π²Π΅Π»ΠΈΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ рСпликация ZFS оказалась Π² 1148 Ρ€Π°Π· быстрСС, Ρ‡Π΅ΠΌ rsync, Π΄Π°ΠΆΠ΅ с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ rsync —inplace

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ ΠΏΠΎΠΉΠΌΡ‘Ρ‚Π΅, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΡΠ½Π°ΠΏΡˆΠΎΡ‚Ρ‹, Π±ΡƒΠ΄Π΅Ρ‚ нСслоТно ΡƒΠ»ΠΎΠ²ΠΈΡ‚ΡŒ ΡΡƒΡ‚ΡŒ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΡΠ½Π°ΠΏΡˆΠΎΡ‚Β β€” это просто Π΄Π΅Ρ€Π΅Π²ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° записи, ΠΈΠ· этого слСдуСт, Ρ‡Ρ‚ΠΎ Ссли ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ zfs send ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π°, Ρ‚ΠΎ ΠΌΡ‹ отправляСм ΠΈ это Π΄Π΅Ρ€Π΅Π²ΠΎ, ΠΈ всС связанныС с Π½ΠΈΠΌ записи. Когда ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ этот zfs send Π² zfs receive Π½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΎΠ½ записываСт ΠΊΠ°ΠΊ фактичСскоС содСрТимоС Π±Π»ΠΎΠΊΠ°, Ρ‚Π°ΠΊ ΠΈ Π΄Π΅Ρ€Π΅Π²ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ, ΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π½Π° Π±Π»ΠΎΠΊΠΈ, Π² Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ….

Всё становится Π΅Ρ‰Ρ‘ интСрСснСС Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΌ zfs send. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΄Π²Π΅ систСмы, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТит poolname/datasetname@1, Π° Π²Ρ‹ снимаСтС Π½ΠΎΠ²Ρ‹ΠΉ ΡΠ½Π°ΠΏΡˆΠΎΡ‚ poolname/datasetname@2. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² исходном ΠΏΡƒΠ»Π΅ Ρƒ вас datasetname@1 ΠΈ datasetname@2, Π° Π² Ρ†Π΅Π»Π΅Π²ΠΎΠΌ ΠΏΡƒΠ»Π΅ ΠΏΠΎΠΊΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡΠ½Π°ΠΏΡˆΠΎΡ‚ datasetname@1.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠ΅ΠΆΠ΄Ρƒ источником ΠΈ Ρ†Π΅Π»ΡŒΡŽ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΉ ΡΠ½Π°ΠΏΡˆΠΎΡ‚ datasetname@1, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ zfs send ΠΏΠΎΠ²Π΅Ρ€Ρ… Π½Π΅Π³ΠΎ. Когда ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ систСмС zfs send -i poolname/datasetname@1 poolname/datasetname@2, ΠΎΠ½Π° сравниваСт Π΄Π²Π° Π΄Π΅Ρ€Π΅Π²Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ. Π›ΡŽΠ±Ρ‹Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² @2, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° Π½ΠΎΠ²Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈΒ β€” поэтому Π½Π°ΠΌ понадобится содСрТимоС этих Π±Π»ΠΎΠΊΠΎΠ².

Π’ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ систСмС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ send такая ΠΆΠ΅ простая. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ записываСм всС Π½ΠΎΠ²Ρ‹Π΅ записи, Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹Π΅ Π² ΠΏΠΎΡ‚ΠΎΠΊ send, Π° Π·Π°Ρ‚Π΅ΠΌ добавляСм ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° эти Π±Π»ΠΎΠΊΠΈ. Вуаля, Ρƒ нас @2 Π² Π½ΠΎΠ²ΠΎΠΉ систСмС!

Асинхронная ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ рСпликация ZFSΒ β€” это ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ, Π½Π΅ основанными Π½Π° ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π°Ρ…, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ rsync. Π’ ΠΎΠ±ΠΎΠΈΡ… случаях ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅Β β€” Π½ΠΎ rsync Π΄ΠΎΠ»ΠΆΠ΅Π½ сначала ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ с диска всС Π΄Π°Π½Π½Ρ‹Π΅ с ΠΎΠ±Π΅ΠΈΡ… сторон, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ сумму ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π΅Ρ‘. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ этого, рСпликация ZFS Π½Π΅ считываСт Π½ΠΈΡ‡Π΅Π³ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉΒ β€” ΠΈ Π»ΡŽΠ±Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ прСдставлСны Π² ΠΎΠ±Ρ‰Π΅ΠΌ ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π΅.

ВстроСнноС сТатиС

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ копирования ΠΏΡ€ΠΈ записи Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ систСму встроСнного сТатия. Π’ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы сТатиС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎΒ β€” ΠΊΠ°ΠΊ старая вСрсия, Ρ‚Π°ΠΊ ΠΈ новая вСрсия ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… находятся Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ пространствС.

Если Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ… Π² сСрСдинС Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ свою Тизнь ΠΊΠ°ΠΊ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚ Π½ΡƒΠ»Π΅ΠΉ ΠΎΡ‚ 0x00000000 ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅Β β€” Π΅Π³ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ ΡΠΆΠ°Ρ‚ΡŒ Π΄ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ сСктора Π½Π° дискС. Но Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚, Ссли ΠΌΡ‹ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ этот ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚ Π½ΡƒΠ»Π΅ΠΉ Π½Π° ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚ нСсТимаСмых Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ JPEG ΠΈΠ»ΠΈ псСвдослучайный ΡˆΡƒΠΌ? НСоТиданно этому ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… потрСбуСтся Π½Π΅ ΠΎΠ΄ΠΈΠ½, Π° 256 сСкторов ΠΏΠΎ 4Β ΠšΠΈΠ‘, Π° Π² этом мСстС Π½Π° дискС Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ сСктор.

Π£ ZFS Π½Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹Π΅ записи всСгда Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ пространство — исходный Π±Π»ΠΎΠΊ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ сСктор 4Β ΠšΠΈΠ‘, Π° новая запись Π·Π°ΠΉΠΌΡ‘Ρ‚ 256, Π½ΠΎ это Π½Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Β β€” Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΈΠ· «сСрСдины» Ρ„Π°ΠΉΠ»Π° Π±Ρ‹Π» Π±Ρ‹ записан Π² Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ пространство нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, измСнился Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈΠ»ΠΈ Π½Π΅Ρ‚, поэтому для ZFS это Π²ΠΏΠΎΠ»Π½Π΅ ΡˆΡ‚Π°Ρ‚Π½Π°Ρ ситуация.

ВстроСнноС сТатиС ZFS ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΈ систСма ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹Β β€” сСйчас срСди Π½ΠΈΡ… LZ4, gzip (1-9), LZJB ΠΈ ZLE.

  • LZ4 β€” это ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰ΠΈΠΉ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ быстроС сТатиС ΠΈ Π΄Π΅ΠΊΠΎΠΌΠΏΡ€Π΅ΡΡΠΈΡŽ ΠΈ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° случаСв ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡΒ β€” Π΄Π°ΠΆΠ΅ Π½Π° довольно ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Ρ… CPU.
  • GZIP β€” ΠΏΠΎΡ‡Ρ‚Π΅Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π½Π°ΡŽΡ‚ ΠΈ Π»ΡŽΠ±ΡΡ‚ всС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Unix-систСм. Он ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ с уровнями сТатия 1-9, с ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ стСпСни сТатия ΠΈ использования CPU ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ приблиТСния ΠΊ ΡƒΡ€ΠΎΠ²Π½ΡŽ 9. Алгоритм Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для всСх тСкстовых (ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ сТимаСмых) Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования, Π½ΠΎ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС часто Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ c CPUΒ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ с ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ, особСнно Π½Π° Π±ΠΎΠ»Π΅Π΅ высоких уровнях.
  • LZJB β€” ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π² ZFS. Он устарСл ΠΈ большС Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, LZ4 прСвосходит Π΅Π³ΠΎ ΠΏΠΎ всСм показатСлям.
  • ZLE β€” ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ уровня, Zero Level Encoding. Она Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Ρ‚Ρ€ΠΎΠ³Π°Π΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Π½ΠΎ сТимаСт большиС ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½ΡƒΠ»Π΅ΠΉ. ПолСзно для ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ нСсТимаСмых Π½Π°Π±ΠΎΡ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, JPEG, MP4 ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡƒΠΆΠ΅ сТатых Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ²), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ нСсТимаСмыС Π΄Π°Π½Π½Ρ‹Π΅, Π½ΠΎ сТимаСт Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ пространство Π² ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹Ρ… записях.

ΠœΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ сТатиС LZ4 практичСски для всСх Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования; ΡˆΡ‚Ρ€Π°Ρ„ Π·Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ встрСчС с нСсТимаСмыми Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ°Π», Π° прирост ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ для Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π΅Π½. ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π·Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ для Π½ΠΎΠ²ΠΎΠΉ инсталляции ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Windows (свСТСустановлСнная ОБ, Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΅Ρ‰Ρ‘ Π½Π΅Ρ‚) с compression=lz4 ΠΏΡ€ΠΎΡˆΠ»ΠΎ Π½Π° 27% быстрСС, Ρ‡Π΅ΠΌ с compression=none, Π² этом тСстС 2015 Π³ΠΎΠ΄Π°.

ARCΒ β€” кэш Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠΉ Π·Π°ΠΌΠ΅Π½Ρ‹

ZFSΒ β€” это СдинствСнная извСстная Π½Π°ΠΌ соврСмСнная файловая систСма, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ собствСнный ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ чтСния, Π° Π½Π΅ полагаСтся Π½Π° кэш страниц ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы для хранСния ΠΊΠΎΠΏΠΈΠΉ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти.

Π₯отя собствСнный кэш Π½Π΅ Π»ΠΈΡˆΡ‘Π½ своих ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΒ β€” ZFS Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π½ΠΎΠ²Ρ‹Π΅ запросы ΠΎ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ памяти Ρ‚Π°ΠΊ ΠΆΠ΅ быстро, ΠΊΠ°ΠΊ ядро, поэтому Π½ΠΎΠ²Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² malloc() Π½Π° распрСдСлСниС памяти ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Π΅Ρ€ΠΏΠ΅Ρ‚ΡŒ Π½Π΅ΡƒΠ΄Π°Ρ‡Ρƒ, Ссли Π΅ΠΌΡƒ потрСбуСтся опСративная ΠΏΠ°ΠΌΡΡ‚ΡŒ, занятая Π² настоящСС врСмя ARC. Но Π΅ΡΡ‚ΡŒ вСскиС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ собствСнный кэш, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ сСйчас.

ВсС извСстныС соврСмСнныС ОБ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ MacOS, Windows, Linux ΠΈ BSD, для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ кэша страниц ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ LRU (Least Recently Used). Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Β«Π²Π²Π΅Ρ€Ρ… ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈΒ» послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ чтСния ΠΈ вытСсняСт Π±Π»ΠΎΠΊΠΈ Β«Π²Π½ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈΒ» ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΎΠΌΠ°Ρ…ΠΈ кэша (Π±Π»ΠΎΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Ρ‹ с диска, Π° Π½Π΅ ΠΈΠ· кэша) Π²Π²Π΅Ρ€Ρ….

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, Π½ΠΎ Π² систСмах с большими Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌΠΈ Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… LRU Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚Ρ€ΡΡˆΠΈΠ½Π³Ρƒ β€” Π²Ρ‹Ρ‚Π΅ΡΠ½Π΅Π½ΠΈΡŽ часто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ мСсто для Π±Π»ΠΎΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° большС ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΈΠ· кэша.

ARCΒ β€” Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΌΠ΅Π½Π΅Π΅ Π½Π°ΠΈΠ²Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Β«Π²Π·Π²Π΅ΡˆΠ΅Π½Π½Ρ‹ΠΉΒ» кэш. ПослС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ считывании ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΎΠ½ становится Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ «тяТСлСС» ΠΈ Π΅Π³ΠΎ становится Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅ Π²Ρ‹Ρ‚Π΅ΡΠ½ΠΈΡ‚ΡŒΒ β€” ΠΈ Π΄Π°ΠΆΠ΅ послС вытСснСния Π±Π»ΠΎΠΊ отслСТиваСтся Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π‘Π»ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» вытСснСн, Π½ΠΎ Π·Π°Ρ‚Π΅ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ считан ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² кэш, Ρ‚Π°ΠΊΠΆΠ΅ станСт «тяТСлСС».

ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ всСго этого являСтся кэш с Π³ΠΎΡ€Π°Π·Π΄ΠΎ большим коэффициСнтом попадания (hit ratio)Β β€” ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ попаданиями Π² кэш (Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, выполняСмоС ΠΈΠ· кэша) ΠΈ ΠΏΡ€ΠΎΠΌΠ°Ρ…Π°ΠΌΠΈ (Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ с диска). Π­Ρ‚ΠΎ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ваТная статистика — ΠΌΠ°Π»ΠΎ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ сами Ρ…ΠΈΡ‚Ρ‹ кэша ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° порядки быстрСС, ΠΏΡ€ΠΎΠΌΠ°Ρ…ΠΈ кэша Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ быстрСС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‡Π΅ΠΌ большС Ρ…ΠΈΡ‚ΠΎΠ² ΠΊΡΡˆΠ°Β β€” Ρ‚Π΅ΠΌ мСньшС ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… запросов ΠΊ диску ΠΈ Ρ‚Π΅ΠΌ мСньшС Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° для Ρ‚Π΅Ρ… ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ ΠΏΡ€ΠΎΠΌΠ°Ρ…ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ с диска.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ПослС изучСния основной сСмантики ZFSΒ β€” ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ записи, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡƒΠ»Π°ΠΌΠΈ хранСния, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ устройствами, Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, сСкторами ΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ,Β β€” ΠΌΡ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΎΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ с Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ числами.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ части ΠΌΡ‹ рассмотрим Ρ„Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡƒΠ»ΠΎΠ² с Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ vdev ΠΈ RAIDz, Π΄Ρ€ΡƒΠ³ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ RAID-топологиями ядра Linux, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ исслСдовали Ρ€Π°Π½Π΅Π΅.

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ основы — сами Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ ZFS β€” Π½ΠΎ послС Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅ΠΌ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΠΎΠΉ настройкС ΠΈ Ρ‚ΡŽΠ½ΠΈΠ½Π³Π΅ ZFS, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ использованиС Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² vdev, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ L2ARC, SLOG ΠΈ Special Allocation.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com