ãã®æ¥ãç§ãã¡ã¯ãã§ã«ããã€ãã®å
¥éçãªãããã¯ã«ã€ããŠèª¬æããŸãããããšãã°ã
ããŠã奜å¥å¿æºçãªèªè
ã®çãããä»æ¥ã¯ ZFS ã«ã€ããŠç¥ãã®ã«æé©ãªæ¥ã§ãã OpenZFS éçºè
Matt Ahrens ã®è¬èãªæèŠãšããŠã¯ããããã¯æ¬åœã«é£ããããšããããšã ãã¯ç¥ã£ãŠãããŠãã ããã
ããããXNUMX ãã£ã¹ã¯ ZFS æ§æã®ãã¹ãŠã®ãªãã·ã§ã³ã®æ°åã«å°éããåã«ããããŠå¿ ããããªããšçŽæããŸãã æ¹æ³ äžè¬ã«ãZFS ã¯ããŒã¿ããã£ã¹ã¯ã«ä¿åããŸãã
Zpoolãvdevãããã€ã¹
ãã®å®å
šãªããŒã«å³ã«ã¯ãåã¯ã©ã¹ã« 2 ã€ãã€ãRAIDzXNUMX çšã« XNUMX ã€ãã€ãåèš XNUMX ã€ã®è£å© vdev ãå«ãŸããŠããŸãã
éåžžãäžäžèŽã® vdev ã¿ã€ããšãµã€ãºã®ããŒã«ãäœæããçç±ã¯ãããŸããããå¿
èŠã«å¿ããŠäœæããããšã劚ãããã®ã¯ãããŸããã
ZFS ãã¡ã€ã«ã·ã¹ãã ãæ¬åœã«ç解ããã«ã¯ããã®å®éã®æ§é ã詳ããèŠãå¿ èŠããããŸãã ãŸããZFS ã¯ãåŸæ¥ã®ã¬ãã«ã®ããªã¥ãŒã ããã³ãã¡ã€ã« ã·ã¹ãã 管çãçµ±åããŸãã XNUMX çªç®ã«ããã©ã³ã¶ã¯ã·ã§ã³ã®ã³ããŒãªã³ã©ã€ã ã¡ã«ããºã ã䜿çšããŸãã ãããã®æ©èœã¯ãã·ã¹ãã ãåŸæ¥ã®ãã¡ã€ã« ã·ã¹ãã ã RAID ã¢ã¬ã€ãšã¯æ§é çã«å€§ããç°ãªãããšãæå³ããŸãã ç解ãã¹ãåºæ¬çãªæ§æèŠçŽ ã®æåã®ã»ããã¯ãã¹ãã¬ãŒãž ããŒã« (zpool)ãä»®æ³ããã€ã¹ (vdev)ãããã³å®ããã€ã¹ (device) ã§ãã
zpool
zpool ã¹ãã¬ãŒãž ããŒã«ã¯ãæäžäœã® ZFS æ§é ã§ãã åããŒã«ã«ã¯ XNUMX ã€ä»¥äžã®ä»®æ³ããã€ã¹ãå«ãŸããŸãã ããã«ããããã®ããããã«ã¯ XNUMX ã€ä»¥äžã®å®ããã€ã¹ (ããã€ã¹) ãå«ãŸããŠããŸãã ä»®æ³ããŒã«ã¯èªå·±å®çµåã®ãããã¯ã§ãã XNUMX å°ã®ç©çã³ã³ãã¥ãŒã¿ãŒã« XNUMX ã€ä»¥äžã®åå¥ã®ããŒã«ãå«ããããšãã§ããŸãããããããã¯ä»ã®ããŒã«ããå®å šã«ç¬ç«ããŠããŸãã ããŒã«ã¯ä»®æ³ããã€ã¹ãå ±æã§ããŸããã
ZFS ã®åé·æ§ã¯ãããŒã« ã¬ãã«ã§ã¯ãªããä»®æ³ããã€ã¹ ã¬ãã«ã§ãã ããŒã« ã¬ãã«ã§ã¯åé·æ§ã¯ãŸã£ãããããŸããããã©ã€ã vdev ãŸãã¯ç¹æ®ãª vdev ã倱ããããšããããšãšãã«ããŒã«å šäœã倱ãããŸãã
ææ°ã®ã¹ãã¬ãŒãž ããŒã«ã¯ããã£ãã·ã¥ãä»®æ³ããã€ã¹ ãã°ã倱ãããŠãçãæ®ãããšãã§ããŸãããåé»ãã·ã¹ãã ã¯ã©ãã·ã¥äžã« vdev ãã°ã倱ãããå Žåã«ã¯ãå°éã®ããŒã㣠ããŒã¿ã倱ãããå¯èœæ§ããããŸãã
ZFS ã®ãããŒã¿ ã¹ãã©ã€ããã¯ããŒã«å
šäœã«æžã蟌ãŸãããšãã誀解ããããããŸãã æ¬åœãããªãã Zpool ã¯å
šç¶é¢çœããªã RAID0ããããé¢çœã
ã»ãšãã©ã®å Žåããšã³ããªã¯å©çšå¯èœãªç©ºãé åã«å¿ããŠå©çšå¯èœãªä»®æ³ããã€ã¹ã«åæ£ããããããçè«äžã¯ãã¹ãŠåæã«åããããŸãã ZFS ã®æ°ããããŒãžã§ã³ã§ã¯ãçŸåšã® vdev ã®äœ¿çšç¶æ³ (䜿çšç) ãèæ ®ãããŸããããä»®æ³ããã€ã¹ãå¥ã®ä»®æ³ããã€ã¹ãããå€§å¹ ã«ããžãŒãªå Žå (ããšãã°ãèªã¿åãè² è·ã«ãã)ã空ã容éãæãå€ãã«ãããããããäžæçã«æžã蟌ã¿ãã¹ããããããŸããã¹ããŒã¹æ¯çã
ææ°ã® ZFS æžã蟌ã¿å²ãåœãŠæ¹æ³ã«çµã¿èŸŒãŸãã䜿çšçæ€åºã¡ã«ããºã ã¯ãç°åžžã«é«è² è·ã®æéäžã®ã¬ã€ãã³ã·ãŒãåæžããã¹ã«ãŒããããåäžãããããšãã§ããŸãããããã§ã¯ãããŸããã çã£çœãªã«ã«ã XNUMX ã€ã®ããŒã«å ã§äœé HDD ãšé«é SSD ãæå³ããæ··åšããããšã«ã€ããŠã ãã®ãããªäžåçãªããŒã«ã¯ãäŸç¶ãšããŠæãé ãããã€ã¹ã®é床ã§åäœããŸããã€ãŸããããŒã«å šäœããã®ãããªããã€ã¹ã§æ§æãããŠãããã®ããã«åäœããŸãã
vdev
åã¹ãã¬ãŒãž ããŒã«ã¯ã1 ã€ä»¥äžã®ä»®æ³ããã€ã¹ (ä»®æ³ããã€ã¹ãvdev) ã§æ§æãããŸãã ããã«ãå vdev ã«ã¯ 2 ã€ä»¥äžã®å®ããã€ã¹ãå«ãŸããŸãã ã»ãšãã©ã®ä»®æ³ããã€ã¹ã¯åçŽãªããŒã¿ ã¹ãã¬ãŒãžã«äœ¿çšãããŸãããCACHEãLOGãSPECIAL ãªã©ã® vdev ãã«ã㌠ã¯ã©ã¹ãããã€ããããŸãã ãããã® vdev ã¿ã€ãã®ããããã¯ãåäžããã€ã¹ (åäžããã€ã¹)ãRAIDz3ãRAIDzXNUMXãRAIDzXNUMXããŸãã¯ãã©ãŒ (ãã©ãŒ) ã® XNUMX ã€ã®ããããžã®ãããããæã€ããšãã§ããŸãã
RAIDz1ãRAIDz2ãããã³ RAIDz3 ã¯ãæããããã« (察è§) ããªã㣠RAID ãšåŒã°ããŠãããã®ã®ç¹å¥ãªçš®é¡ã§ãã 1ã2ãããã³ 3 ã¯ãåããŒã¿ ã¹ããªããã«å²ãåœãŠãããããªã㣠ãããã¯ã®æ°ã瀺ããŸãã ããªãã£çšã«åå¥ã®ãã£ã¹ã¯ã䜿çšãã代ããã«ãRAIDz ä»®æ³ããã€ã¹ã¯ãã®ããªãã£ããã£ã¹ã¯å šäœã«ã»ãŒåçã«åæ£ããŸãã RAIDz ã¢ã¬ã€ã§ã¯ãããªã㣠ãããã¯ãšåæ°ã®ãã£ã¹ã¯ã倱ãããå¯èœæ§ããããŸãã ãã XNUMX ã€ã倱ããšã¯ã©ãã·ã¥ããã¹ãã¬ãŒãž ããŒã«ãäžç·ã«å¥ªãããŸãã
ãã©ãŒãªã³ã°ãããä»®æ³ããã€ã¹ (ãã©ãŒ vdev) ã§ã¯ãåãããã¯ã¯ vdev å ã®åããã€ã¹ã«ä¿åãããŸãã XNUMX å¹ ã®ãã©ãŒãæãäžè¬çã§ãããä»»æã®æ°ã®ããã€ã¹ããã©ãŒå ã«å«ããããšãã§ããŸããèªã¿åãããã©ãŒãã³ã¹ãšãã©ãŒã«ã ãã¬ã©ã³ã¹ãåäžãããããã«ã倧èŠæš¡ãªã€ã³ã¹ããŒã«ã§ã¯ããªãã«ããã䜿çšãããŸãã vdev å ã®å°ãªããšã XNUMX ã€ã®ããã€ã¹ãæ©èœãç¶ããéããvdev ãã©ãŒã¯é害ãçºçããŠãåç¶ã§ããŸãã
åäžã® vdev ã¯æ¬è³ªçã«å±éºã§ãã ãã®ãããªä»®æ³ããã€ã¹ã¯äžåºŠé害ãçºçãããšåç¶ã§ããŸããããŸããã¹ãã¬ãŒãžãŸãã¯ç¹æ®ãª vdev ãšããŠäœ¿çšãããŠããå Žåããã®é害ã¯ããŒã«å šäœã®ç Žå£ã«ã€ãªãããŸãã ããã¯éåžžã«æ³šæããŠãã ããã
CACHEãLOGãããã³ SPECIAL VA ã¯ãäžèšã®ããããžã®ããããã䜿çšããŠäœæã§ããŸãããSPECIAL VA ã®æ倱ã¯ããŒã«ã®æ倱ãæå³ãããããåé·ããããžã匷ããå§ãããŸãã
ããã€ã¹
ããã¯ãããã ZFS ã§æãç解ããããçšèªã§ããæåéããããã㯠ã©ã³ãã ã¢ã¯ã»ã¹ ããã€ã¹ã§ãã ä»®æ³ããã€ã¹ã¯åã ã®ããã€ã¹ã§æ§æãããŠããã®ã«å¯ŸããããŒã«ã¯ä»®æ³ããã€ã¹ã§æ§æãããŠããããšã«æ³šæããŠãã ããã
ç£æ°ãã£ã¹ã¯ãŸãã¯ãœãªãã ã¹ããŒãã®ãã£ã¹ã¯ã¯ãvdev ã®æ§æèŠçŽ ãšããŠäœ¿çšãããæãäžè¬çãªããã㯠ããã€ã¹ã§ãã ãã ãã/dev ã«èšè¿°åãæã€ããã€ã¹ã¯ã©ãã§ã䜿çšã§ãããããããŒããŠã§ã¢ RAID ã¢ã¬ã€å šäœãåå¥ã®ããã€ã¹ãšããŠäœ¿çšã§ããŸãã
ã·ã³ãã«ãª RAW ãã¡ã€ã«ã¯ãvdev ãæ§ç¯ããããã®æãéèŠãªä»£æ¿ããã㯠ããã€ã¹ã® XNUMX ã€ã§ãã ããã®ãã¹ãããŒã«
ãããæ°ç§ã§ã¹ããŒã¹ ãã¡ã€ã«ãããã¹ã ããŒã«ãäœæã§ããŸããããã®åŸãããŒã«å
šäœãšãã®ã³ã³ããŒãã³ããåé€ããããšãå¿ããªãã§ãã ããã
ãµãŒããŒã 10 ã€ã®ãã£ã¹ã¯äžã«é 眮ãã9300 TB ãã£ã¹ã¯ (çŽ 2 GiB) ã䜿çšããäºå®ã§ãããšããŸããããããã©ã®ããããžãããŒãºã«æé©ã§ãããããããŸããã äžã®äŸã§ã¯ãã¹ããŒã¹ ãã¡ã€ã«ãããã¹ã ããŒã«ãæ°ç§ã§æ§ç¯ããŠããŸããããã§ã10 å°ã® 50 TB ãã£ã¹ã¯ãããªã RAIDzXNUMX vdev ã XNUMX TiB ã®äœ¿çšå¯èœãªå®¹éãæäŸããããšãããããŸããã
ãã XNUMX ã€ã®ç¹å¥ãªã¯ã©ã¹ã®ããã€ã¹ã¯ SPARE (ã¹ãã¢) ã§ãã ãããã¹ã¯ãã ããã€ã¹ã¯ãéåžžã®ããã€ã¹ãšã¯ç°ãªããåäžã®ä»®æ³ããã€ã¹ã§ã¯ãªããããŒã«å šäœã«å±ããŸãã ããŒã«å ã® vdev ã«é害ãçºçããã¹ã㢠ããã€ã¹ãããŒã«ã«æ¥ç¶ãããŠäœ¿çšå¯èœãªå Žåããã®ããã€ã¹ã¯åœ±é¿ãåãã vdev ã«èªåçã«åå ããŸãã
圱é¿ãåãã vdev ã«æ¥ç¶ããåŸãã¹ã㢠ããã€ã¹ã¯ã倱ãããããã€ã¹äžã«ããã¯ãã®ããŒã¿ã®ã³ããŒãŸãã¯åæ§ç¯ã®åä¿¡ãéå§ããŸãã åŸæ¥ã® RAID ã§ã¯ãããåæ§ç¯ãšåŒã³ãŸãããZFS ã§ã¯ååæåãšåŒã³ãŸãã
ã¹ã㢠ããã€ã¹ã¯æ éããããã€ã¹ãæ°žä¹ ã«çœ®ãæãããã®ã§ã¯ãªãããšã«æ³šæããããšãéèŠã§ãã ããã¯ãvdev ã®æ©èœãäœäžããæéãççž®ããããã®äžæçãªçœ®ãæãã«ãããŸããã 管çè ãé害ãçºçãã vdev ã亀æãããšããã®æ°žç¶ããã€ã¹ã«åé·æ§ã埩å ãããSPARE ã vdev ããåæãããããŒã«å šäœã®ã¹ãã¢ãšããŠåäœããããã«æ»ããŸãã
ããŒã¿ã»ããããããã¯ãã»ã¯ã¿ãŒ
ZFS ã®åãçµã¿ã§ç解ãã¹ã次ã®æ§æèŠçŽ ã¯ãããŒããŠã§ã¢ã«ã€ããŠã§ã¯ãªããããŒã¿èªäœãã©ã®ããã«ç·šæãããä¿åããããã«ã€ããŠã§ãã å šäœçãªæ§é ã®ç解ãç¶æããªãã詳现ãä¹±éã«ãªããªãããã«ãããã§ã¯ã¡ã¿ã¹ã©ããªã©ã®ããã€ãã®ã¬ãã«ãã¹ãããããŠããŸãã
ããŒã¿ã»ãã (ããŒã¿ã»ãã)
æåã«ããŒã¿ã»ãããäœæãããšãå©çšå¯èœãªãã¹ãŠã®ããŒã« ã¹ããŒã¹ã衚瀺ãããŸãã 次ã«ãã¯ã©ãŒã¿ãèšå®ããããŠã³ã ãã€ã³ããå€æŽããŸãã éæ³ïŒ
Zvol ã®å€§éšåã¯ããã¡ã€ã«ã·ã¹ãã å±€ãåãé€ããåãªãããŒã¿ã»ããã§ãããããã§ã¯å®å
šã«éåžžã® ext4 ãã¡ã€ã«ã·ã¹ãã ã«çœ®ãæããŠããŸãã
ZFS ããŒã¿ã»ããã¯ãæšæºã®ããŠã³ãããããã¡ã€ã« ã·ã¹ãã ãšã»ãŒåãã§ãã éåžžã®ãã¡ã€ã«ã·ã¹ãã ãšåæ§ãäžèŠãããšããã ã®ãã©ã«ããŒãã«èŠããŸãã ãã ããéåžžã®ããŠã³ãå¯èœãªãã¡ã€ã«ã·ã¹ãã ãšåæ§ã«ãå ZFS ããŒã¿ã»ããã«ã¯ç¬èªã®åºæ¬ããããã£ã®ã»ããããããŸãã
ãŸã第äžã«ãããŒã¿ã»ããã«ã¯å²ãåœãŠãå²ãåœãŠãããšãã§ããŸãã èšå®ãããŠããå Žå zfs set quota=100G poolname/datasetname
ãããããšãããŠã³ãããããã©ã«ããŒã«æžã蟌ãããšãã§ããªããªããŸãã /poolname/datasetname
100 GiB ãè¶
ããã
åè¡ã®å
é ã«ã¹ã©ãã·ã¥ãååšãããååšããªãããšã«æ³šæããŠãã ããã åããŒã¿ã»ããã¯ã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
.
ããŒã¿ã»ããã«å ããŠãããªã¥ãŒã (zvol) ã«ã€ããŠãèšåããå¿
èŠããããŸãã ããªã¥ãŒã ã¯ããŒã¿ã»ãããšã»ãŒåãã§ãããå®éã«ã¯ãã¡ã€ã« ã·ã¹ãã ãæãããåãªãããã㯠ããã€ã¹ã§ããç¹ãç°ãªããŸãã ããšãã°ã次ã®ããã«äœæã§ããŸãã zvol
åå㧠mypool/myzvol
次ã«ãext4 ãã¡ã€ã« ã·ã¹ãã ã§ãã©ãŒããããããã®ãã¡ã€ã« ã·ã¹ãã ãããŠã³ãããŸããããã§ãext4 ãã¡ã€ã« ã·ã¹ãã ãå®æããŸããããZFS ã®ãã¹ãŠã®ã»ãã¥ãªãã£æ©èœãåããããŠããŸãã ããã¯åäžãã·ã³ã§ã¯ã°ãããŠããããã«æãããããããŸããããiSCSI ããã€ã¹ããšã¯ã¹ããŒããããšãã®ããã¯ãšã³ããšããŠã¯ã¯ããã«çã«ããªã£ãŠããŸãã
ãããã¯
ãã¡ã€ã«ã¯ XNUMX ã€ä»¥äžã®ãããã¯ã§è¡šãããŸãã åãããã¯ã¯ XNUMX ã€ã®ä»®æ³ããã€ã¹ã«ä¿åãããŸãã éåžžãããã㯠ãµã€ãºã¯ãã©ã¡ãŒã¿ãšåãã§ãã ã¬ã³ãŒããµã€ãºããã ãã次ã®ããã«æžããããšãã§ããŸãã 2^ã·ããã¡ã¿ããŒã¿ãŸãã¯å°ããªãã¡ã€ã«ãå«ãŸããŠããå Žåã
ç§ãã¡ã¯æ¬åœã« æ¬åœã« å°ããããã·ãããèšå®ãããšãããã©ãŒãã³ã¹ã倧å¹
ã«äœäžãããšããã®ã¯åè«ã§ã¯ãããŸããã
ZFS ããŒã«ã§ã¯ãã¡ã¿ããŒã¿ãå«ããã¹ãŠã®ããŒã¿ããããã¯ã«ä¿åãããŸãã åããŒã¿ã»ããã®æ倧ãããã¯ãµã€ãºã¯ããããã£ã§å®çŸ©ãããŸãã recordsize
(ã¬ã³ãŒããµã€ãº)ã ã¬ã³ãŒã ãµã€ãºã¯å€æŽã§ããŸãããããŒã¿ã»ããã«æ¢ã«æžã蟌ãŸããŠãããããã¯ã®ãµã€ãºãäœçœ®ã¯å€æŽãããŸãããæ°ãããããã¯ãæžã蟌ãŸãããšãã«ã®ã¿åœ±é¿ããŸãã
ç¹ã«æå®ããªãéããçŸåšã®ããã©ã«ãã®ã¬ã³ãŒã ãµã€ãºã¯ 128 KiB ã§ãã ããã©ãŒãã³ã¹ãå®ç§ã§ã¯ãªãå Žåãããã¯äžçš®ã®ããªãããŒãªãã¬ãŒããªãã§ãããã»ãšãã©ã®å Žåãããã»ã©ã²ã©ãããšã§ã¯ãããŸããã Recordsize
4K ãã 1M ãŸã§ã®ä»»æã®å€ã«èšå®ã§ããŸã (詳现èšå®ãã) recordsize
ããã«å€ãã€ã³ã¹ããŒã«ããããšãã§ããŸããããããè¯ãèãã«ãªãããšã¯ã»ãšãã©ãããŸãã)ã
ã©ã®ãããã¯ã 2 ã€ã®ãã¡ã€ã«ã®ããŒã¿ã®ã¿ãåç §ããŸãã4 ã€ã®ç°ãªããã¡ã€ã«ã XNUMX ã€ã®ãããã¯ã«è©°ã蟌ãããšã¯ã§ããŸããã åãã¡ã€ã«ã¯ããµã€ãºã«å¿ã㊠XNUMX ã€ä»¥äžã®ãããã¯ã§æ§æãããŸãã ãã¡ã€ã« ãµã€ãºãã¬ã³ãŒã ãµã€ãºããå°ããå Žåããã¡ã€ã«ã¯ããå°ããããã㯠ãµã€ãºã§ä¿åãããŸããããšãã°ãXNUMX KiB ãã¡ã€ã«ã®ãããã¯ã¯ããã£ã¹ã¯äžã® XNUMX KiB ã»ã¯ã¿ãŒã XNUMX ã€ã ãå æããŸãã
ãã¡ã€ã«ãååã«å€§ãããããã€ãã®ãããã¯ãå¿
èŠãªå Žåããã®ãã¡ã€ã«ã®ãã¹ãŠã®ã¬ã³ãŒãã¯æ¬¡ã®ãµã€ãºã«ãªããŸãã recordsize
- æåŸã®ãšã³ããªãå«ã¿ããã®äž»èŠéšåã¯æ¬¡ã®ãšããã§ããå¯èœæ§ããããŸãã
zvols ã«ã¯ããããã£ããããŸãã recordsize
â 代ããã«åçã®ããããã£ãæã¡ãŸã volblocksize
.
ã»ã¯ã¿ãŒ
æåŸã®æãåºæ¬çãªæ§æèŠçŽ ã¯ã»ã¯ã¿ãŒã§ãã ããã¯ãåºç€ãšãªãããã€ã¹ã«å¯ŸããŠæžã蟌ã¿ãŸãã¯èªã¿åããã§ããæå°ã®ç©çåäœã§ãã æ°å幎éãã»ãšãã©ã®ãã£ã¹ã¯ã¯ 512 ãã€ãã®ã»ã¯ã¿ãŒã䜿çšããŠããŸããã æè¿ã§ã¯ãã»ãšãã©ã®ãã£ã¹ã¯ã 4 KiB ã»ã¯ã¿ãŒã«æ§æãããŠãããäžéšã®ãã£ã¹ã¯ (ç¹ã« SSD) ã«ã¯ 8 KiB 以äžã®ã»ã¯ã¿ãŒããããŸãã
ZFS ã·ã¹ãã ã«ã¯ãã»ã¯ã¿ãŒ ãµã€ãºãæåã§èšå®ã§ããããããã£ããããŸãã ãã®ç©ä»¶ ashift
ã å°ãçŽããããã§ãããashft 㯠XNUMX ã®çŽ¯ä¹ã§ãã äŸãã°ã ashift=9
ã»ã¯ã¿ ãµã€ãºã 2^9ãã€ãŸã 512 ãã€ãã§ããããšãæå³ããŸãã
ZFS ã¯ãåãããã¯ããã€ã¹ãæ°ãã vdev ã«è¿œå ããããšãã«ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«ã¯ãšãªãå®è¡ããŠãåãããã¯ããã€ã¹ã«é¢ãã詳现æ å ±ãååŸããçè«çã«ã¯ãã®æ å ±ã«åºã¥ã㊠ashift ãèªåçã«é©åã«ã€ã³ã¹ããŒã«ããŸãã æ®å¿µãªãããWindows XP ãšã®äºææ§ãç¶æããããã«ãå€ãã®ãã©ã€ãã¯ã»ã¯ã¿ ãµã€ãºãåœã£ãŠããŸã (Windows XP ã¯ä»ã®ã»ã¯ã¿ ãµã€ãºã®ãã©ã€ããèªèã§ããŸããã§ãã)ã
ããã¯ãZFS 管çè
ãããã€ã¹ã®å®éã®ã»ã¯ã¿ãŒ ãµã€ãºãææ¡ããæåã§èšå®ããããšã匷ããå§ãããããšãæå³ããŸãã ashift
ã ashift ã®èšå®ãäœããããšãèªã¿åã/æžã蟌ã¿æäœã®æ°ã倩æåŠçã«å¢å ããŸãã ãããã£ãŠã512 ãã€ãã®ãã»ã¯ã¿ããå®éã® 4 KiB ã»ã¯ã¿ã«æžã蟌ããšããããšã¯ãæåã®ãã»ã¯ã¿ããæžã蟌ã¿ã次㫠4 KiB ã»ã¯ã¿ãèªã¿åãã512 çªç®ã® 4 ãã€ãã®ãã»ã¯ã¿ãã§å€æŽããæ°ããã»ã¯ã¿ã«æžãæ»ãå¿
èŠãããããšãæå³ããŸãããšã³ããªããšã« XNUMX KiB ã»ã¯ã¿ãŒãªã©ã
çŸå®ã®äžçã§ã¯ããã®ãããªããã«ãã£ã¯ Samsung EVO SSD ã«èª²ããããŸãã ashift=13
ãã ãããããã® SSD ã¯ã»ã¯ã¿ãŒ ãµã€ãºã«ã€ããŠåãã€ããŠãããããããã©ã«ãã¯æ¬¡ã®ããã«èšå®ãããŠããŸãã ashift=9
ã çµéšè±å¯ãªã·ã¹ãã 管çè
ããã®èšå®ãå€æŽããªãå Žåããã® SSD ã¯æ©èœããŸãã é
ã åŸæ¥ã®ç£æ°HDDã
æ¯èŒçšããµã€ãºã倧ããããå Žå ashift
å®è³ªçã«çœ°åã¯ãããŸããã å®éã®ããã©ãŒãã³ã¹ã®äœäžã¯ãªããæªäœ¿çšã¹ããŒã¹ã®å¢å ã¯ãããããã§ã (å§çž®ãæå¹ãªå Žåã¯ãŒã)ã ãããã£ãŠã512 ãã€ãã®ã»ã¯ã¿ãŒã䜿çšãããã©ã€ãã§ãã ashift=12
ããã㯠ashift=13
èªä¿¡ãæã£ãŠæªæ¥ã«åããããã«ã
ãããã㣠ashift
vdev ä»®æ³ããã€ã¹ããšã«èšå®ããã ããŒã«çšã§ã¯ãããŸãããå€ãã®äººã誀解ããŠããããã«ãã€ã³ã¹ããŒã«åŸãå€åããŸããã ãã£ããã¶ã€ããŠããŸã£ãã ashift
æ°ãã vdev ãããŒã«ã«è¿œå ãããšããã®ããŒã«ãäœããã©ãŒãã³ã¹ã®ããã€ã¹ã§åãè¿ãã®ã€ããªãã»ã©æ±æãããŠããŸããããéåžžã¯ããŒã«ãç Žæ£ããŠæåããããçŽã以å€ã«éžæè¢ã¯ãããŸããã vdev ãåé€ããŠããå£ããæ§æããã¯æãããŸãã ashift
!
ã³ããŒãªã³ã©ã€ãã¡ã«ããºã
éåžžã®ãã¡ã€ã« ã·ã¹ãã ãããŒã¿ãäžæžãããå¿
èŠãããå ŽåãããŒã¿ãååšããåãããã¯ãå€æŽããŸãã
ã³ããŒãªã³ã©ã€ã ãã¡ã€ã« ã·ã¹ãã ã¯ãæ°ããããã㯠ããŒãžã§ã³ãæžã蟌ã¿ãå€ãããŒãžã§ã³ã®ããã¯ã解é€ããŸãã
èŠçŽãããšããããã¯ã®å®éã®ç©ççãªäœçœ®ãç¡èŠãããšããããŒã¿åœæãã¯ãå©çšå¯èœãªã¹ããŒã¹ã®ãããäžãå·Šããå³ã«ç§»åãããããŒã¿ ã¯ãŒã ãã«åçŽåãããŸãã
ããã§ãã³ããŒãªã³ã©ã€ã ã¹ãããã·ã§ãããã©ã®ããã«æ©èœãããã«ã€ããŠããç解ã§ããããã«ãªããŸãããåãããã¯ã¯è€æ°ã®ã¹ãããã·ã§ããã«å±ããããšãã§ããé¢é£ä»ãããããã¹ãŠã®ã¹ãããã·ã§ãããç Žæ£ããããŸã§ä¿æãããŸãã
Copy on Write (CoW) ã¡ã«ããºã ã¯ãZFS ãããã»ã©çŽ æŽãããã·ã¹ãã ã«ããåºæ¬çãªåºç€ã§ãã åºæ¬çãªæŠå¿µã¯åçŽã§ããåŸæ¥ã®ãã¡ã€ã« ã·ã¹ãã ã«ãã¡ã€ã«ã®å€æŽãèŠæ±ãããšãèŠæ±ããããšããã«å®è¡ãããŸãã ã³ããŒãªã³ã©ã€ã ãã¡ã€ã« ã·ã¹ãã ã«åãããšãèŠæ±ãããšããOKããšã¯èšããŸãããåãã€ããŸãã
代ããã«ãã³ããŒãªã³ã©ã€ã ãã¡ã€ã« ã·ã¹ãã ã¯ãå€æŽããããããã¯ã®æ°ããããŒãžã§ã³ãæžã蟌ã¿ããã¡ã€ã«ã®ã¡ã¿ããŒã¿ãæŽæ°ããŠå€ããããã¯ã®ãªã³ã¯ã解é€ããæžã蟌ãã ã°ããã®æ°ãããããã¯ãé¢é£ä»ããŸãã
å€ããããã¯ã®åãé¢ããšæ°ãããããã¯ã®ãªã³ã¯ã¯ XNUMX åã®æäœã§è¡ããããããäžæããããšã¯ã§ããŸããããããèµ·ãã£ãåŸã«é»æºãåããšããã¡ã€ã«ã®æ°ããããŒãžã§ã³ãäœæãããæ©ãã«é»æºãåããšãå€ãããŒãžã§ã³ãä¿æãããŸãã ã ãããã®å Žåãããã¡ã€ã« ã·ã¹ãã å ã§ç«¶åã¯çºçããŸããã
ZFS ã®ã³ããŒãªã³ã©ã€ãã¯ããã¡ã€ã« ã·ã¹ãã ã¬ãã«ã ãã§ãªãããã£ã¹ã¯ç®¡çã¬ãã«ã§ãçºçããŸãã ããã¯ãZFS ã空çœæåã®åœ±é¿ãåããªãããšãæå³ããŸã (
ZIL: ZFS ã€ã³ãã³ã ãã°
ZFS ã·ã¹ãã ã¯åææžã蟌ã¿ãç¹å¥ãªæ¹æ³ã§æ±ããŸããåææžã蟌ã¿ã¯äžæçã§ã¯ãããŸããããã« ZIL ã«ä¿åãããåŸã§éåææžã蟌ã¿ãšãšãã«æ°žç¶çã«æžã蟌ãŸããŸãã
éåžžãZIL ã«æžã蟌ãŸããããŒã¿ã¯å床èªã¿åãããããšã¯ãããŸããã ãã ããã·ã¹ãã ã¯ã©ãã·ã¥ã®åŸã¯å¯èœæ§ããããŸã
SLOG (ã»ã«ã³ã㪠LOG ããã€ã¹) ã¯ãZIL ãã¡ã€ã³ ã¹ãã¬ãŒãžãšã¯å¥ã«ä¿åã§ããç¹æ®ãª (ã§ããã°éåžžã«é«éãª) vdev ã§ãã
ã¯ã©ãã·ã¥åŸãZIL å
ã®ãã¹ãŠã®ããŒã㣠ããŒã¿ãåçãããŸãããã®å ŽåãZIL 㯠SLOG äžã«ãããããããããåçãããŸãã
æžã蟌ã¿æäœã«ã¯ãåæ (sync) ãšéåæ (async) ã® XNUMX ã€ã®äž»ãªã«ããŽãªããããŸãã ã»ãšãã©ã®ã¯ãŒã¯ããŒãã§ã¯ãæžã蟌ã¿ã®å€§éšåãéåæã§ãããã¡ã€ã« ã·ã¹ãã ã«ãããæžã蟌ã¿ãéçŽããŠãããã§çºè¡ã§ãããããæçåã軜æžãããã¹ã«ãŒããããå€§å¹ ã«åäžããŸãã
åæé²é³ã¯ãŸã£ããå¥ã®åé¡ã§ãã ã¢ããªã±ãŒã·ã§ã³ãåææžã蟌ã¿ããªã¯ãšã¹ããããšããã¡ã€ã« ã·ã¹ãã ã«æ¬¡ã®ããã«æ瀺ããŸããããããäžæ®çºæ§ã¡ã¢ãªã«ã³ãããããå¿ èŠããããŸãã ä»ãããããŸã§ã¯ãä»ã«ã§ããããšã¯äœããããŸãããã ãããã£ãŠãåææžã蟌ã¿ã¯ããã«ãã£ã¹ã¯ã«ã³ããããããå¿ èŠããããŸãããããã«ãã£ãŠæçåãå¢å ããããã¹ã«ãŒããããäœäžãããããå Žåã¯ãããã¯åé¡ãããŸããã
ZFS ã¯ãåææžã蟌ã¿ãéåžžã®ãã¡ã€ã« ã·ã¹ãã ãšã¯ç°ãªãæ¹æ³ã§åŠçããŸããåææžã蟌ã¿ãéåžžã®ã¹ãã¬ãŒãžã«å³åº§ã«ã³ãããããã®ã§ã¯ãªããZFS ã€ã³ãã³ã ãã° (ZIL) ãšåŒã°ããç¹å¥ãªã¹ãã¬ãŒãžé åã«ã³ãããããŸãã éèŠãªã®ã¯ããããã®ã¬ã³ãŒãã ãŸã ã¡ã¢ãªå ã«æ®ããéåžžã®éåææžã蟌ã¿ãªã¯ãšã¹ããšãšãã«éçŽãããåŸã§å®å šã«éåžžã® TXG (ãã©ã³ã¶ã¯ã·ã§ã³ ã°ã«ãŒã) ãšããŠã¹ãã¬ãŒãžã«ãã©ãã·ã¥ãããŸãã
éåžžã®åäœã§ã¯ãZIL ã¯æžã蟌ãŸããå床èªã¿åãããããšã¯ãããŸããã ãã°ããããŠãZIL ããã®ã¬ã³ãŒãã RAM ããéåžžã® TXG å ã®ã¡ã€ã³ ã¹ãã¬ãŒãžã«ã³ãããããããšããããã®ã¬ã³ãŒã㯠ZIL ããåãé¢ãããŸãã ZIL ããäœããèªã¿åãããã®ã¯ãããŒã«ãã€ã³ããŒãããããšãã®ã¿ã§ãã
ZIL å ã«ããŒã¿ããããšãã« ZFS ã«é害ãçºçããå Žå (ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã®ã¯ã©ãã·ã¥ãåé»ãªã©)ããã®ããŒã¿ã¯æ¬¡åã®ããŒã«ã®ã€ã³ããŒãäž (ããšãã°ãç·æ¥ã·ã¹ãã ã®åèµ·åæ) ã«èªã¿åãããŸãã ZIL å ã®ãã¹ãŠã®ãã®ãèªã¿åãããTXG ã«ã°ã«ãŒãåãããã¡ã€ã³ ã¹ãã¬ãŒãžã«ã³ããããããåŸãã€ã³ããŒã ããã»ã¹äžã« ZIL ããåãé¢ãããŸãã
vdev ãã«ã㌠ã¯ã©ã¹ã® XNUMX ã€ã¯ãLOG ãŸã㯠SLOG (LOG ã®ã»ã«ã³ã㪠ããã€ã¹) ãšåŒã°ããŸãã ããã«ã¯ XNUMX ã€ã®ç®çããããŸããããã¯ãZIL ãã¡ã€ã³ã® vdev ã¹ãã¢ã«ä¿åããã®ã§ã¯ãªããZIL ãä¿åããããã®å¥ã®ãã§ããã°é«éã§æžã蟌ã¿èæ§ã®é«ã vdev ãããŒã«ã«æäŸããããšã§ãã ZIL èªäœã¯ãæ ŒçŽå Žæã«é¢ä¿ãªãåãããã«åäœããŸãããLOG vdev ã®æžã蟌ã¿ããã©ãŒãã³ã¹ãéåžžã«é«ãå Žåã¯ãåææžã蟌ã¿ãé«éã«ãªããŸãã
LOG ãå«ã vdev ãããŒã«ã«è¿œå ããŠãæ©èœããªã ã§ããªã éåææžã蟌ã¿ããã©ãŒãã³ã¹ãåäžããã - ããšããã¹ãŠã®æžã蟌ã¿ã ZIL ã«åŒ·å¶ãããšããŠã zfs set sync=always
ããã°ããªãå Žåãšåãæ¹æ³ããã³åãããŒã¹ã§ TXG ã®ã¡ã€ã³ ã¹ãã¬ãŒãžã«ãªã³ã¯ãããŸãã å¯äžã®çŽæ¥çãªããã©ãŒãã³ã¹ã®åäžã¯ãåææžã蟌ã¿ã®ã¬ã€ãã³ã·ãŒã§ã (ãã°ãé«éã«ãªããšæäœãé«éåããããã)ã sync
).
ãã ãããã§ã«å€§éã®åææžã蟌ã¿ãå¿ èŠãªç°å¢ã§ã¯ãvdev LOG ã¯éåææžã蟌ã¿ãšéãã£ãã·ã¥èªã¿åããéæ¥çã«é«éåã§ããŸãã ZIL ãšã³ããªãå¥ã® vdev LOG ã«ãªãããŒããããšããã©ã€ã㪠ã¹ãã¬ãŒãžäžã® IOPS ã®ç«¶åãæžãããã¹ãŠã®èªã¿åããšæžã蟌ã¿ã®ããã©ãŒãã³ã¹ãããçšåºŠåäžããŸãã
ã¹ãããã·ã§ãã
ã³ããŒãªã³ã©ã€ã ã¡ã«ããºã ã¯ãZFS ã¢ããã㯠ã¹ãããã·ã§ãããšå¢åéåæã¬ããªã±ãŒã·ã§ã³ã«å¿ èŠãªåºç€ã§ããããŸãã ã¢ã¯ãã£ããªãã¡ã€ã« ã·ã¹ãã ã«ã¯ããã¹ãŠã®ã¬ã³ãŒãã«çŸåšã®ããŒã¿ãããŒã¯ãããã€ã³ã¿ ããªãŒããããŸããã¹ãããã·ã§ãããäœæãããšãã¯ããã®ãã€ã³ã¿ ããªãŒã®ã³ããŒãäœæããã ãã§ãã
ã¢ã¯ãã£ããªãã¡ã€ã«ã·ã¹ãã ã§ã¬ã³ãŒããäžæžãããããšãZFS ã¯æåã«æ°ãããããã¯ããŒãžã§ã³ãæªäœ¿çšã®ã¹ããŒã¹ã«æžã蟌ã¿ãŸãã 次ã«ãå€ãããŒãžã§ã³ã®ãããã¯ãçŸåšã®ãã¡ã€ã« ã·ã¹ãã ããåãé¢ããŸãã ãã ããã¹ãããã·ã§ãããå€ããããã¯ãåç §ããŠããå Žåããã®ãããã¯ã¯å€æŽãããªããŸãŸã«ãªããŸãã å€ããããã¯ã¯ããã®ãããã¯ãåç §ããŠãããã¹ãŠã®ã¹ãããã·ã§ãããç Žæ£ããããŸã§ãå®éã«ã¯ç©ºãé åãšããŠåŸ©å ãããŸããã
è€è£œ
2015 幎ã®ç§ã® Steam ã©ã€ãã©ãªã¯ 158 GiB ã§ã126 åã®ãã¡ã€ã«ãå«ãŸããŠããŸããã ãã㯠rsync ã«ãšã£ãŠæé©ãªç¶æ³ã«ããªãè¿ãããããã¯ãŒã¯äžã® ZFS ã¬ããªã±ãŒã·ã§ã³ã¯ããããã 927% é«éã§ããã
åããããã¯ãŒã¯äžã§ãåäžã® 40 GB Windows 7 ä»®æ³ãã·ã³ ã€ã¡ãŒãž ãã¡ã€ã«ãã¬ããªã±ãŒãããå Žåã¯ããŸã£ããå¥ã®è©±ã«ãªããŸãã ZFS ã¬ããªã±ãŒã·ã§ã³ã¯ rsync ãã 289 åé«éã§ãã --inplace 㧠rsync ãåŒã³åºãããšãã§ããã»ã©ç²ŸéããŠããå Žåã¯ãããããã 161 åé«éã§ãã
VM ã€ã¡ãŒãžãã¹ã±ãŒãªã³ã°ããããšãrsync ã¯ããã«åãããŠã¹ã±ãŒãªã³ã°ãçºè¡ããŸãã 1,9 TiB ã¯ãææ°ã® VM ã€ã¡ãŒãžãšããŠã¯ããã»ã©å€§ãããããŸããããrsync ã® --inplace åŒæ°ã䜿çšããå Žåã§ããZFS ã¬ããªã±ãŒã·ã§ã³ã rsync ããã 1148 åé«éã«ãªãã«ã¯ååãªå€§ããã§ã
ã¹ãããã·ã§ããã®ä»çµã¿ãç解ããã°ãã¬ããªã±ãŒã·ã§ã³ã®æ¬è³ªãç°¡åã«ç解ã§ããã¯ãã§ãã ã¹ãããã·ã§ããã¯ã¬ã³ãŒããžã®ãã€ã³ã¿ã®ããªãŒã«ãããªãããã次ã®ããã«ãããšæ¬¡ã®ããã«ãªããŸãã zfs send
ã¹ãããã·ã§ãããäœæããåŸããã®ããªãŒãšããã«é¢é£ä»ãããããã¹ãŠã®ã¬ã³ãŒãã®äž¡æ¹ãéä¿¡ããŸãã ãããéä¿¡ãããšã zfs send
в zfs receive
ã¿ãŒã²ããäžã§ã¯ããããã¯ã®å®éã®å
容ãšããããã¯ãåç
§ãããã€ã³ã¿ãŒã®ããªãŒã®äž¡æ¹ãã¿ãŒã²ãã ããŒã¿ã»ããã«æžã蟌ãŸããŸãã
XNUMXçªç®ã§ã¯ããã«é¢çœããªããŸã zfs send
ã çŸåšãXNUMX ã€ã®ã·ã¹ãã ããããããããã«ä»¥äžãå«ãŸããŠããŸãã 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
ãXNUMX ã€ã®ãã€ã³ã¿ãŒ ããªãŒãæ¯èŒããŸãã ã«ã®ã¿ååšãããã€ã³ã¿ @2
ãæããã«æ°ãããããã¯ãåç
§ããŠããããããããã®ãããã¯ã®å
容ãå¿
èŠã§ãã
ãªã¢ãŒã ã·ã¹ãã ã§å¢åãåŠçãã send
åæ§ã«ã·ã³ãã«ã§ãã ãŸããã¹ããªãŒã ã«å«ãŸãããã¹ãŠã®æ°ãããšã³ããªãæžã蟌ã¿ãŸã send
ããããŠãããã®ãããã¯ãžã®ãã€ã³ã¿ãŒãè¿œå ããŸãã ã»ããã§ããŸããã @2
æ°ã·ã¹ãã ã§ïŒ
ZFS ã®éåæå¢åã¬ããªã±ãŒã·ã§ã³ã¯ãrsync ãªã©ã®ä»¥åã®éã¹ãããã·ã§ããããŒã¹ã®æ¹æ³ã«æ¯ã¹ãŠå€§å¹ ã«æ¹åãããŠããŸãã ã©ã¡ãã®å Žåããå€æŽãããããŒã¿ã®ã¿ã転éãããŸãããæåã« rsync ãå®è¡ããå¿ èŠããããŸãã èªã ãã£ã¹ã¯ããäž¡é¢ã®ãã¹ãŠã®ããŒã¿ãåãåºããŠåèšã確èªããæ¯èŒããŸãã å¯Ÿç §çã«ãZFS ã¬ããªã±ãŒã·ã§ã³ã¯ãã€ã³ã¿ãŒ ããªãŒãšå ±æã¹ãããã·ã§ããã«ååšããªããããã¯ã®ã¿ãèªã¿åããŸãã
å èµå§çž®æ©èœ
ã³ããŒãªã³ã©ã€ã ã¡ã«ããºã ã«ãããã€ã³ã©ã€ã³å§çž®ã·ã¹ãã ãç°¡çŽ åãããŸãã åŸæ¥ã®ãã¡ã€ã« ã·ã¹ãã ã§ã¯ãå§çž®ã«åé¡ããããŸããå€æŽãããããŒã¿ã®å€ãããŒãžã§ã³ãšæ°ããããŒãžã§ã³ã®äž¡æ¹ãåãã¹ããŒã¹ã«ååšããŸãã
ãã¡ã€ã«ã®éäžã«ããããŒã¿ã 0x00000000 ãªã©ããå§ãŸãã¡ã¬ãã€ãã®ãŒãã§ãããšèãããšãããããã£ã¹ã¯äžã® 256 ã»ã¯ã¿ãŒã«å§çž®ããã®ã¯éåžžã«ç°¡åã§ãã ãããããã®ã¡ã¬ãã€ãã®ãŒãããJPEG ãç䌌ã©ã³ãã ãã€ãºãªã©ã®éå§çž®ããŒã¿ã®ã¡ã¬ãã€ãã«çœ®ãæãããšã©ããªãã§ãããã? äºæ³å€ãªããšã«ããã®ã¡ã¬ãã€ãã®ããŒã¿ã«ã¯ 4 ã€ã§ã¯ãªã XNUMX åã® XNUMX KiB ã»ã¯ã¿ãŒãå¿ èŠã§ããããã£ã¹ã¯äžã®ãã®å Žæã«ã¯ XNUMX ã€ã®ã»ã¯ã¿ãŒã ããäºçŽãããŠããŸãã
ZFS ã§ã¯ãå€æŽãããã¬ã³ãŒãã¯åžžã«æªäœ¿çšã®ã¹ããŒã¹ã«æžã蟌ãŸããããããã®åé¡ã¯çºçããŸãããå ã®ãããã¯ã¯ 4 KiB ã»ã¯ã¿ãŒã 256 ã€ã ãå æããæ°ããã¬ã³ãŒã㯠XNUMX ã»ã¯ã¿ãŒãå æããŸãããããã¯åé¡ã§ã¯ãããŸãããããããæè¿å€æŽããããã©ã°ã¡ã³ãã§ãããã¡ã€ã«ã®ãmiddleãã¯ããµã€ãºãå€æŽããããã©ããã«é¢ä¿ãªããæªäœ¿çšã®é åã«æžã蟌ãŸãããããZFS ã§ã¯ããã¯éåžžã«äžè¬çãªç¶æ³ã§ãã
ãã€ãã£ã ZFS å§çž®ã¯ããã©ã«ãã§ç¡å¹ã«ãªã£ãŠãããã·ã¹ãã ã¯ãã©ã°å¯èœãªã¢ã«ãŽãªãºã (çŸåšã¯ LZ4ãgzip (1-9)ãLZJBãããã³ ZLE) ãæäŸããŠããŸãã
- LZ4 ã¯ãéåžžã«é«éãªå§çž®ãšè§£åãæäŸããã»ãšãã©ã®ãŠãŒã¹ã±ãŒã¹ (ããªãé ã CPU äžã§ã) ã§ããã©ãŒãã³ã¹äžã®å©ç¹ãæäŸããã¹ããªãŒãã³ã° ã¢ã«ãŽãªãºã ã§ãã
- GZIP ã¯ããã¹ãŠã® Unix ãŠãŒã¶ãŒãç¥ã£ãŠãããæçšããŠããç±ç·ããã¢ã«ãŽãªãºã ã§ãã å§çž®ã¬ãã« 1 ïœ 9 ã§å®è£ ã§ããã¬ãã« 9 ã«è¿ã¥ãã«ã€ããŠå§çž®çãš CPU 䜿çšçãå¢å ããŸãããã®ã¢ã«ãŽãªãºã ã¯ãã¹ãŠã®ããã¹ã (ãŸãã¯ãã®ä»ã®é«å§çž®æ§) ã®äœ¿çšäŸã«é©ããŠããŸããããã以å€ã®å Žå㯠CPU ã®åé¡ãé »ç¹ã«çºçããŸãããã®ã¢ã«ãŽãªãºã ã䜿çšããŠãã ãããç¹ã«é«ãã¬ãã«ã§ã¯æ³šæããŠãã ããã
- LZJB ZFS ã®ç¬èªã®ã¢ã«ãŽãªãºã ã§ãã ããã¯æ代é ãã§ããããã䜿çšãã¹ãã§ã¯ãããŸãããLZ4 ã¯ããããç¹ã§ãããäžåã£ãŠããŸãã
- ã²ã©ã - ãŒãã¬ãã«ãšã³ã³ãŒãã£ã³ã°ããŒãã¬ãã«ãšã³ã³ãŒãã£ã³ã°ã éåžžã®ããŒã¿ã«ã¯ãŸã£ãã圱é¿ããŸãããã倧ããªãŒãã®ã·ãŒã±ã³ã¹ãå§çž®ãããŸãã éå§çž®ããŒã¿ã¯ç¡èŠãããŸãããçµæã®ã¬ã³ãŒãå ã®æªäœ¿çšã¹ããŒã¹ãå§çž®ããããããå®å šã«éå§çž®ã®ããŒã¿ã»ãã (JPEGãMP4ããŸãã¯ãã®ä»ã®æ¢ã«å§çž®ããã圢åŒãªã©) ã«åœ¹ç«ã¡ãŸãã
ã»ãŒãã¹ãŠã®ãŠãŒã¹ã±ãŒã¹ã« LZ4 å§çž®ããå§ãããŸãã éå§çž®ããŒã¿ã«ééããå Žåã®ããã©ãŒãã³ã¹ã®äœäžã¯éåžžã«å°ããã§ãã ã€ã³ã¯ãªã¡ã³ã äžè¬çãªããŒã¿ã®ããã©ãŒãã³ã¹ã¯éèŠã§ãã Windows ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã®æ°èŠã€ã³ã¹ããŒã«çšã®ä»®æ³ãã·ã³ ã€ã¡ãŒãž (æ°ããã€ã³ã¹ããŒã«ããã OSããŸã å
éšã«ããŒã¿ããªã) ãã³ããŒãã compression=lz4
ããã 27% æ©ãåæ Œ compression=none
ã§
ARC - é©å¿å眮æãã£ãã·ã¥
ZFS ã¯ãæè¿èªã¿åããããããã¯ã®ã³ããŒã RAM ã«ä¿åããããã«ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã®ããŒãž ãã£ãã·ã¥ã«äŸåããã®ã§ã¯ãªããç¬èªã®èªã¿åããã£ãã·ã¥ ã¡ã«ããºã ã䜿çšãããç§ãã¡ãç¥ãéãå¯äžã®ææ°ã®ãã¡ã€ã« ã·ã¹ãã ã§ãã
ãã€ãã£ã ãã£ãã·ã¥ã«ãåé¡ããªãããã§ã¯ãããŸããããZFS ã¯ã«ãŒãã«ã»ã©æ©ãæ°ããã¡ã¢ãªå²ãåœãŠèŠæ±ã«å¿çã§ããªããããæ°ããªèª²é¡ãçºçããŸãã malloc()
ARC ãçŸåšå æããŠãã RAM ãå¿
èŠãªå Žåãã¡ã¢ãªå²ãåœãŠã倱æããå¯èœæ§ããããŸãã ããããå°ãªããšãçŸæç¹ã§ã¯ãç¬èªã®ãã£ãã·ã¥ã䜿çšããååãªçç±ããããŸãã
MacOSãWindowsãLinuxãBSD ãªã©ã®æ¢ç¥ã®ææ°ã®ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã¯ãã¹ãŠãLRU (Least Recent Used) ã¢ã«ãŽãªãºã ã䜿çšããŠããŒãž ãã£ãã·ã¥ãå®è£ ããŠããŸãã ããã¯ãèªã¿åãã®ãã³ã«ãã£ãã·ã¥ããããããã¯ãããã¥ãŒã®äžãã«ããã·ã¥ããæ°ãããã£ãã·ã¥ ãã¹ (ãã£ãã·ã¥ããã§ã¯ãªããã£ã¹ã¯ããèªã¿åãããã¹ããããã¯) ãè¿œå ããããã«å¿ èŠã«å¿ããŠãããã¯ãããã¥ãŒã®äžãã«ããã·ã¥ããåå§çãªã¢ã«ãŽãªãºã ã§ããäžã
éåžžããã®ã¢ã«ãŽãªãºã ã¯æ£åžžã«åäœããŸããã倧èŠæš¡ãªäœæ¥ããŒã¿ã»ãããå«ãã·ã¹ãã ã§ã¯ãLRU ã«ãã£ãŠã¹ã©ãã·ã³ã°ãçºçãããããªããŸããã€ãŸãããã£ãã·ã¥ããäºåºŠãšèªã¿åãããªããããã¯çšã®ã¹ããŒã¹ã確ä¿ããããã«ãé »ç¹ã«å¿ èŠãªãããã¯ãæé€ãããŸãã
ããããã¹ãŠã®æçµçµæã¯ããã£ãã·ã¥ ããã (ãã£ãã·ã¥ããå®è¡ãããèªã¿åã) ãšãã£ãã·ã¥ ãã¹ (ãã£ã¹ã¯ããã®èªã¿åã) ã®æ¯çã§ãããããçãã¯ããã«é«ããã£ãã·ã¥ã«ãªããŸãã ããã¯éåžžã«éèŠãªçµ±èšã§ãããã£ãã·ã¥ ãããèªäœãæ¡éãã«éãåŠçãããã ãã§ãªãããã£ãã·ã¥ ããããå¢ããã»ã©åæãã£ã¹ã¯ ãªã¯ãšã¹ããæžããæ®ãã®ãã¹ã®åŸ ã¡æéãçããªãããããã£ãã·ã¥ ãã¹ãããéãåŠçãããŸãããã£ã¹ã¯ãšäžç·ã«æäŸããå¿ èŠããããŸãã
ãŸãšã
ZFS ã®åºæ¬çãªã»ãã³ãã£ã¯ã¹ (ã³ããŒãªã³ã©ã€ãã®ä»çµã¿ãã¹ãã¬ãŒãž ããŒã«ãä»®æ³ããã€ã¹ããããã¯ãã»ã¯ã¿ãŒããã¡ã€ã«éã®é¢ä¿) ãåŠç¿ããããå®éã®ããã©ãŒãã³ã¹ã«ã€ããŠå®æ°ã䜿ã£ãŠè°è«ããæºåãæŽããŸãã
次ã®ããŒãã§ã¯ããã©ãŒãªã³ã°ããã vdev ãš RAIDz ãåããããŒã«ã®å®éã®ããã©ãŒãã³ã¹ãçžäºã«æ¯èŒãããŸãããããŸã§èª¿æ»ããŠããåŸæ¥ã® Linux ã«ãŒãã« RAID ããããžãšæ¯èŒããŠèŠãŠãããŸãã
åœåã¯ãZFS ããããžèªäœã®åºæ¬ã ãã説æããããšèããŠããŸãããã ãã®ãã㪠L2ARCãSLOGãç¹å¥ãªå²ãåœãŠãªã©ã®è£å© vdev ã¿ã€ãã®äœ¿çšãå«ããZFS ã®ããé«åºŠãªã»ããã¢ãããšãã¥ãŒãã³ã°ã«ã€ããŠèª¬æããæºåãããŸãããã
åºæïŒ habr.com