ZFS መሰረታዊ ነገሮች፡ ማከማቻ እና አፈጻጸም

ZFS መሰረታዊ ነገሮች፡ ማከማቻ እና አፈጻጸም

በዚህ የፀደይ ወቅት አንዳንድ የመግቢያ ርዕሶችን አስቀድመን ተወያይተናል ፣ ለምሳሌ ፣ የአሽከርካሪዎችዎን ፍጥነት እንዴት እንደሚፈትሹ и RAID ምንድን ነው. በሁለተኛው ውስጥ ፣ በ ZFS ውስጥ የተለያዩ የመልቲ-ዲስክ ቶፖሎጂዎችን አፈፃፀም ለማጥናት እንኳን ቃል ገብተናል። ይህ አሁን በየቦታው እየተተገበረ ያለው የሚቀጥለው ትውልድ የፋይል ስርዓት ነው: ከ Apple ወደ ኡቡንቱ.

ደህና ፣ ዛሬ ከ ZFS ፣ ጠያቂ አንባቢዎች ጋር ለመተዋወቅ በጣም ጥሩው ቀን ነው። ልክ በ OpenZFS ገንቢ Matt Ahrens ትሁት አስተያየት "በጣም ከባድ ነው" የሚለውን እወቅ።

ግን ወደ ቁጥሮቹ ከመድረሳችን በፊት - እና እነሱ ቃል እገባለሁ - ለስምንት-ዲስክ ZFS ውቅር አማራጮች ሁሉ ፣ ስለእሱ ማውራት አለብን ። እንዴት በአጠቃላይ, ZFS ውሂብን በዲስክ ላይ ያከማቻል.

Zpool, vdev እና መሣሪያ

ZFS መሰረታዊ ነገሮች፡ ማከማቻ እና አፈጻጸም
ይህ ሙሉ መዋኛ ዲያግራም ሶስት ረዳት ቪዴቭስ፣ ከእያንዳንዱ ክፍል አንድ እና አራት ለRAIDz2 ያካትታል።

ZFS መሰረታዊ ነገሮች፡ ማከማቻ እና አፈጻጸም
ብዙውን ጊዜ የማይዛመዱ የቪዴቭ ዓይነቶች እና መጠኖች ገንዳ ለመፍጠር ምንም ምክንያት የለም - ነገር ግን ከፈለጉ ምንም ነገር ከማድረግ የሚያግድዎት ነገር የለም።

የ ZFS ፋይል ስርዓትን በትክክል ለመረዳት ትክክለኛውን አወቃቀሩን በቅርበት መመልከት አለብዎት. በመጀመሪያ፣ ZFS ባህላዊ የድምጽ መጠን እና የፋይል ስርዓት አስተዳደር ደረጃዎችን አንድ ያደርጋል። በሁለተኛ ደረጃ, የግብይት ቅጅ-በመጻፍ ዘዴን ይጠቀማል. እነዚህ ባህሪያት ስርዓቱ በመዋቅራዊ ሁኔታ ከተለመደው የፋይል ስርዓቶች እና RAID ድርድሮች በጣም የተለየ ነው. ለመረዳት የመጀመሪያው የመሠረታዊ የግንባታ ብሎኮች የማከማቻ ገንዳ (ዝፑል)፣ ቨርቹዋል መሣሪያ (vdev) እና እውነተኛ መሣሪያ (መሣሪያ) ናቸው።

zpool

የዝፑል ማጠራቀሚያ ገንዳ ከፍተኛው የ ZFS መዋቅር ነው። እያንዳንዱ ገንዳ አንድ ወይም ከዚያ በላይ ምናባዊ መሳሪያዎችን ይይዛል። በምላሹ, እያንዳንዳቸው አንድ ወይም ከዚያ በላይ እውነተኛ መሳሪያዎችን (መሳሪያ) ይይዛሉ. ምናባዊ ገንዳዎች ራሳቸውን የቻሉ ብሎኮች ናቸው። አንድ ፊዚካል ኮምፒዩተር ሁለት ወይም ከዚያ በላይ የተለያዩ ገንዳዎችን ሊይዝ ይችላል፣ ነገር ግን እያንዳንዳቸው ከሌሎቹ ሙሉ በሙሉ ነፃ ናቸው። ገንዳዎች ምናባዊ መሳሪያዎችን ማጋራት አይችሉም።

የ ZFS ድግግሞሽ በምናባዊ መሳሪያ ደረጃ እንጂ በመዋኛ ደረጃ አይደለም። በገንዳው ደረጃ ላይ ምንም ድግግሞሽ የለም - ማንኛውም ድራይቭ vdev ወይም ልዩ vdev ከጠፋ ፣ ከዚያ ገንዳው በሙሉ አብሮ ይጠፋል።

ዘመናዊ የማጠራቀሚያ ገንዳዎች የመሸጎጫ ወይም የቨርቹዋል መሳሪያ ሎግ ከጠፋ ሊተርፉ ይችላሉ - ምንም እንኳን በሃይል መቆራረጥ ወይም በስርዓት ብልሽት ወቅት የvdev ምዝግብ ማስታወሻ ቢያጡ ትንሽ የቆሸሸ ውሂብ ሊያጡ ይችላሉ።

ZFS "የውሂብ ጭረቶች" በጠቅላላው ገንዳ ላይ ተጽፈዋል የሚለው የተለመደ የተሳሳተ ግንዛቤ አለ። ይህ እውነት አይደለም. Zpool አስቂኝ RAID0 አይደለም, ይልቅ አስቂኝ ነው ጆቤድ ውስብስብ በሆነ ተለዋዋጭ የማከፋፈያ ዘዴ.

በአብዛኛው, መዝገቦቹ በተገኘው ነፃ ቦታ መሰረት በሚገኙ ምናባዊ መሳሪያዎች መካከል ይሰራጫሉ, ስለዚህ በንድፈ ሀሳብ ሁሉም በአንድ ጊዜ ይሞላሉ. በኋለኞቹ የ ZFS ስሪቶች የአሁኑ የvdev አጠቃቀም (አጠቃቀሙ) ግምት ውስጥ ይገባል - አንድ ምናባዊ መሣሪያ ከሌላው በበለጠ ሁኔታ ከተጨናነቀ (ለምሳሌ ፣ በንባብ ጭነት ምክንያት) ፣ ምንም እንኳን ከፍተኛው ነፃ ቢሆንም ለጊዜው ለመፃፍ ይዘለላል። የቦታ ጥምርታ.

በዘመናዊው የ ZFS የአጻጻፍ አሰጣጥ ዘዴዎች ውስጥ የተገነባው የአጠቃቀም ማወቂያ ዘዴ ባልተለመደ ሁኔታ ከፍተኛ ጭነት በሚኖርበት ጊዜ መዘግየትን ሊቀንስ እና የሂደቱን መጠን ሊጨምር ይችላል - ግን አይደለም ። carte blanche በአንድ ገንዳ ውስጥ በቀስታ ኤችዲዲዎች እና ፈጣን ኤስኤስዲዎች ያለፈቃድ መቀላቀል ላይ። እንዲህ ዓይነቱ እኩል ያልሆነ ገንዳ አሁንም በጣም ቀርፋፋ በሆነው መሣሪያ ፍጥነት ይሠራል ፣ ማለትም ፣ እንደነዚህ መሣሪያዎች ሙሉ በሙሉ የተዋቀረ ያህል ነው።

ቪዴቭ

እያንዳንዱ የማከማቻ ገንዳ አንድ ወይም ከዚያ በላይ ምናባዊ መሳሪያዎችን (ምናባዊ መሳሪያ፣ ቬዴቭ) ያካትታል። በምላሹ, እያንዳንዱ vdev አንድ ወይም ከዚያ በላይ እውነተኛ መሳሪያዎችን ይዟል. አብዛኛዎቹ ምናባዊ መሳሪያዎች ለቀላል የውሂብ ማከማቻ ያገለግላሉ፣ ነገር ግን CACHE፣ LOG እና SPECIALን ጨምሮ በርካታ vdev አጋዥ ክፍሎች አሉ። እያንዳንዳቸው የvdev ዓይነቶች ከአምስቱ ቶፖሎጂዎች ውስጥ አንዱ ሊኖራቸው ይችላል-ነጠላ መሣሪያ (ነጠላ-መሣሪያ) ፣ RAIDz1 ፣ RAIDz2 ፣ RAIDz3 ፣ ወይም መስታወት (መስታወት)።

RAIDz1፣ RAIDz2 እና RAIDz3 የድሮ ጊዜ ቆጣሪዎች ድርብ (ሰያፍ) እኩልነት RAID ብለው የሚጠሩት ልዩ ዓይነቶች ናቸው። 1፣ 2 እና 3 ለእያንዳንዱ የመረጃ ቋት ምን ያህል እኩልነት ብሎኮች እንደተመደቡ ያመለክታሉ። ለተመሳሳይ ዲስኮች ከመለያየት ይልቅ፣ RAIDz ቨርቹዋል መሳሪያዎች ይህንን እኩልነት በከፊል በዲስኮች ላይ ያሰራጫሉ። የ RAIDz ድርድር ተመሳሳይ ብሎኮች እንዳለው ያህል ብዙ ዲስኮች ሊያጣ ይችላል። ሌላ ቢያጣው ይወድቃል እና የማከማቻ ገንዳውን ይወስድበታል.

በሚያንጸባርቁ ምናባዊ መሳሪያዎች (መስታወት ቪዴቭ), እያንዳንዱ እገዳ በ vdev ውስጥ በእያንዳንዱ መሳሪያ ላይ ተከማችቷል. ምንም እንኳን ባለ ሁለት ስፋት መስተዋቶች በጣም የተለመዱ ቢሆኑም, ማንኛውም የዘፈቀደ ቁጥር መሳሪያዎች በመስታወት ውስጥ ሊሆኑ ይችላሉ - ለተሻሻለ የንባብ አፈፃፀም እና ስህተት መቻቻል በትልልቅ ጭነቶች ውስጥ ሶስት እጥፍ ይጠቀማሉ. በvdev ውስጥ ቢያንስ አንድ መሳሪያ መስራቱን እስከቀጠለ ድረስ የቪዴቭ መስታወት ማንኛውንም ውድቀት ሊተርፍ ይችላል።

ነጠላ ቪዴቭስ በተፈጥሯቸው አደገኛ ናቸው። እንዲህ ዓይነቱ ምናባዊ መሣሪያ ከአንድ ውድቀት አይተርፍም - እና እንደ ማከማቻ ወይም ልዩ ቪዴቭ ጥቅም ላይ ከዋለ ውድቀቱ መላውን ገንዳ ወደ ጥፋት ይመራል። እዚህ በጣም በጣም ይጠንቀቁ.

መሸጎጫ፣ ሎግ እና ልዩ ቪኤኤዎች ከላይ ከተጠቀሱት ማናቸውንም ቶፖሎጂዎች በመጠቀም ሊፈጠሩ ይችላሉ - ነገር ግን የልዩ ቪኤ መጥፋት ማለት ገንዳውን መጥፋት ማለት መሆኑን አስታውሱ፣ ስለዚህ ተደጋጋሚ ቶፖሎጂ በጣም ይመከራል።

መሣሪያ

ይህ ምናልባት በ ZFS ውስጥ ለመረዳት ቀላሉ ቃል ነው - እሱ በጥሬው የዘፈቀደ መዳረሻ መሣሪያ ነው። ያስታውሱ ምናባዊ መሳሪያዎች በግለሰብ መሳሪያዎች የተገነቡ ናቸው, ገንዳው ደግሞ በምናባዊ መሳሪያዎች የተሰራ ነው.

ዲስኮች - መግነጢሳዊ ወይም ጠንካራ ሁኔታ - በጣም የተለመዱ የማገጃ መሳሪያዎች የvdev የግንባታ ብሎኮች ሆነው ያገለግላሉ። ነገር ግን፣ በ/dev ውስጥ ገላጭ ያለው ማንኛውም መሳሪያ ይሰራል፣ ስለዚህ ሙሉ የሃርድዌር RAID ድርድሮች እንደ የተለየ መሳሪያ መጠቀም ይችላሉ።

ቀላል ጥሬ ፋይል ቪዴቭ ሊገነባ ከሚችል በጣም አስፈላጊ አማራጭ የማገጃ መሳሪያዎች አንዱ ነው። የሙከራ ገንዳዎች ከ ጥቃቅን ፋይሎች á‹¨áˆ˜á‹‹áŠ› ትዕዛዞችን ለመፈተሽ እና በአንድ ቶፖሎጂ ገንዳ ወይም ምናባዊ መሳሪያ ውስጥ ምን ያህል ቦታ እንዳለ ለማየት በጣም ምቹ መንገድ ነው።

ZFS መሰረታዊ ነገሮች፡ ማከማቻ እና አፈጻጸም
በጥቂት ሴኮንዶች ውስጥ የመሞከሪያ ገንዳ ከትንሽ ፋይሎች መፍጠር ይችላሉ - ግን ገንዳውን እና ክፍሎቹን ከዚያ በኋላ መሰረዝዎን አይርሱ

አገልጋይ በስምንት ዲስኮች ላይ ማስቀመጥ እና 10 ቲቢ ዲስኮች (~9300 ጂቢ) ለመጠቀም አቅደሃል እንበል - ግን የትኛው ቶፖሎጂ ለፍላጎትህ እንደሚስማማ እርግጠኛ አይደለህም ። ከላይ በምሳሌው ላይ የመሞከሪያ ገንዳን ከትንሽ ፋይሎች በሰከንዶች ውስጥ እንገነባለን - እና አሁን RAIDz2 vdev ከስምንት 10 ቲቢ ዲስኮች 50 ቲቢ ጥቅም ላይ ሊውል የሚችል አቅም እንደሚሰጥ እናውቃለን።

ሌላው ልዩ የመሳሪያዎች ክፍል SPARE (መለዋወጫ) ነው. ትኩስ-ስዋፕ መሣሪያዎች፣ ከመደበኛ መሣሪያዎች በተለየ፣ የመዋኛው ገንዳ እንጂ የአንድ ምናባዊ መሣሪያ አይደለም። በገንዳው ውስጥ ያለው ቪዴቭ ካልተሳካ እና መለዋወጫ መሳሪያ ከገንዳው ጋር ከተገናኘ እና ካለ ፣ ከዚያ በቀጥታ የተጎዳውን vdev ይቀላቀላል።

ከተጎዳው vdev ጋር ከተገናኘ በኋላ, መለዋወጫ መሳሪያው በጠፋው መሳሪያ ላይ መሆን ያለበትን ቅጂዎች ወይም መልሶ ግንባታዎችን መቀበል ይጀምራል. በባህላዊ RAID ይህ መልሶ መገንባት ይባላል, በ ZFS ውስጥ ግን መልሶ ማቋቋም ይባላል.

መለዋወጫ መሳሪያዎች ያልተሳኩ መሳሪያዎችን በቋሚነት እንደማይተኩ ልብ ሊባል ይገባል. ይህ vdev የተበላሸበትን ጊዜ ለመቀነስ ጊዜያዊ ምትክ ብቻ ነው. አስተዳዳሪው ያልተሳካውን vdev ከተተካ በኋላ, ድግግሞሽ ወደ ቋሚ መሳሪያው ይመለሳል እና SPARE ከvdev ተቆርጦ ወደ ገንዳ-ሰፊ መለዋወጫ ስራ ይመለሳል.

የውሂብ ስብስቦች, ብሎኮች እና ዘርፎች

በZFS ጉዟችን ላይ ለመረዳት የሚቀጥለው የግንባታ ብሎኮች ስብስብ ስለ ሃርድዌር ያነሰ እና የበለጠ መረጃው ራሱ እንዴት እንደተደራጀ እና እንደሚከማች ነው። ስለ አጠቃላይ መዋቅሩ ግንዛቤ እየጠበቅን ዝርዝሮቹን እንዳንይዝ እንደ ሜታስላብ ያሉ - እዚህ ጥቂት ደረጃዎችን እየዘለልን ነው።

የውሂብ ስብስብ (መረጃ ስብስብ)

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 መሰረታዊ ነገሮች፡ ማከማቻ እና አፈጻጸም
ፋይሉ በአንድ ወይም በብዙ ብሎኮች ይወከላል። እያንዳንዱ እገዳ በአንድ ምናባዊ መሣሪያ ላይ ተከማችቷል. የማገጃው መጠን ብዙውን ጊዜ ከመለኪያው ጋር እኩል ነው። የመመዝገቢያ መጠን, ግን ወደ ሊቀንስ ይችላል 2 ^ ለውጥሜታዳታ ወይም ትንሽ ፋይል ከያዘ።

ZFS መሰረታዊ ነገሮች፡ ማከማቻ እና አፈጻጸም
እኛ በእውነት በእውነት። በጣም ትንሽ ሹፌር ካዘጋጁ በትልቅ የአፈፃፀም ቅጣት አለመቀልድ

በZFS ገንዳ ውስጥ፣ ሜታዳታን ጨምሮ ሁሉም መረጃዎች በብሎኮች ውስጥ ይከማቻሉ። ለእያንዳንዱ የውሂብ ስብስብ ከፍተኛው የማገጃ መጠን በንብረቱ ውስጥ ይገለጻል። recordsize (የመዝገብ መጠን). የመመዝገቢያው መጠን ሊለወጥ ይችላል, ነገር ግን ይህ ቀደም ሲል በመረጃ ቋቱ ላይ የተፃፉትን ማገጃዎች መጠን ወይም ቦታ አይለውጥም - አዲስ ብሎኮችን የሚነካው በሚጻፉበት ጊዜ ብቻ ነው.

በሌላ መልኩ ካልተገለጸ በስተቀር፣ አሁን ያለው ነባሪ የመዝገብ መጠን 128 ኪቢ ነው። አፈፃፀሙ ፍፁም ካልሆነ ፣ ግን በአብዛኛዎቹ ጉዳዮችም አስፈሪ ያልሆነበት አስቸጋሪ የንግድ ልውውጥ አይነት ነው። Recordsize ከ4K ወደ 1M (ከላቁ ቅንብሮች ጋር) ወደ ማንኛውም እሴት ሊዋቀር ይችላል። recordsize የበለጠ መጫን ይችላሉ ፣ ግን ይህ በጣም አልፎ አልፎ ጥሩ ሀሳብ ነው)።

ማንኛውም ብሎክ የሚያመለክተው የአንድ ፋይል ብቻ ነው - ሁለት የተለያዩ ፋይሎችን ወደ አንድ ብሎክ መጠቅለል አይችሉም። እያንዳንዱ ፋይል እንደ መጠኑ መጠን አንድ ወይም ከዚያ በላይ ብሎኮችን ያካትታል። የፋይሉ መጠን ከመዝገብ መጠኑ ያነሰ ከሆነ በትንሽ ብሎክ መጠን ይከማቻል - ለምሳሌ 2 ኪቢ ፋይል ያለው ብሎክ በዲስክ ላይ አንድ 4 ኪቢ ሴክተር ብቻ ይይዛል።

ፋይሉ በቂ ከሆነ እና ብዙ ብሎኮችን የሚፈልግ ከሆነ በዚህ ፋይል ውስጥ ያሉ ሁሉም መዛግብት መጠኖቹ ይሆናሉ recordsize - የመጨረሻውን ግቤት ጨምሮ, ዋናው ክፍል ሊሆን ይችላል ጥቅም ላይ ያልዋለ ቦታ.

zvols ንብረት የላቸውም recordsize - ይልቁንስ ተመጣጣኝ ንብረት አላቸው volblocksize.

ዘርፎች

የመጨረሻው, በጣም መሠረታዊ የግንባታ ክፍል ሴክተሩ ነው. ከስር መሳሪያው ሊጻፍ ወይም ሊነበብ የሚችል ትንሹ አካላዊ ክፍል ነው። ለበርካታ አስርት ዓመታት, አብዛኛዎቹ ዲስኮች 512-ባይት ዘርፎችን ይጠቀማሉ. በቅርብ ጊዜ፣ አብዛኞቹ ዲስኮች ለ 4 ኪቢ ሴክተሮች ተዋቅረዋል፣ እና አንዳንዶቹ - በተለይም ኤስኤስዲዎች - 8 ኪቢ ወይም ከዚያ በላይ ዘርፎች አሏቸው።

የ ZFS ስርዓት የሴክተሩን መጠን እራስዎ እንዲያዘጋጁ የሚያስችልዎ ንብረት አለው. ይህ ንብረት ashift. በመጠኑም ቢሆን ግራ የሚያጋባ፣ አሺፍት የሁለት ኃይል ነው። ለምሳሌ, ashift=9 የሴክተሩ መጠን 2^9 ወይም 512 ባይት ማለት ነው።

ZFS ስለ እያንዳንዱ የማገጃ መሳሪያ ወደ አዲስ ቭዴቭ ሲታከል ዝርዝር መረጃ ለማግኘት ኦፐሬቲንግ ሲስተሙን ይጠይቃል እና በንድፈ ሃሳቡም በዚያ መረጃ ላይ ተመርኩዞ አሺፍትን በትክክል ይጭናል። እንደ አለመታደል ሆኖ፣ ከዊንዶውስ ኤክስፒ ጋር ተኳሃኝነትን ለመጠበቅ (ከሌሎች ሴክተር መጠኖች ጋር አሽከርካሪዎችን ለመረዳት ያልቻለው) ብዙ አሽከርካሪዎች ስለ ሴክተር መጠናቸው ይዋሻሉ።

ይህ ማለት የZFS አስተዳዳሪ የመሳሪያዎቻቸውን ትክክለኛ የሴክተር መጠን እንዲያውቅ እና በእጅ እንዲያዘጋጅ በጥብቅ ይመከራል ashift. ashift በጣም ዝቅተኛ ከሆነ፣ የንባብ/የመፃፍ ስራዎች ቁጥር በሥነ ፈለክ ደረጃ ይጨምራል። ስለዚህ 512-ባይት “ሴክተሮችን” ወደ እውነተኛው 4 ኪቢ ሴክተር መፃፍ ማለት የመጀመሪያውን “ሴክተር” መፃፍ አለበት ፣ ከዚያም 4 ኪቢ ሴክተሩን ያንብቡ ፣ በሁለተኛው 512-ባይት “ሴክተር” አሻሽለው ወደ አዲሱ ይፃፉ ። ለእያንዳንዱ ግቤት 4 ኪቢ ዘርፍ እና የመሳሰሉት።

በገሃዱ አለም እንዲህ አይነት ቅጣት የሳምሰንግ ኢቮ ኤስኤስዲዎችን ይነካል። ashift=13ነገር ግን እነዚህ ኤስኤስዲዎች ስለ ሴክተር መጠናቸው ይዋሻሉ፣ እና ስለዚህ ነባሪው ተዘጋጅቷል። ashift=9. ልምድ ያለው የስርዓት አስተዳዳሪ ይህን ቅንብር ካልቀየረ ይህ SSD ይሰራል ዘገምተኛ የተለመደው መግነጢሳዊ ኤችዲዲ.

ለማነፃፀር ፣ በጣም ትልቅ መጠን ashift በተግባር ምንም ቅጣት የለም. ትክክለኛ የአፈጻጸም ቅጣት የለም፣ እና ጥቅም ላይ ያልዋለ ቦታ መጨመር ወሰን የለውም (ወይም ዜሮ ከታመቀ የነቃ) ነው። ስለዚህ 512-ባይት ሴክተሮችን የሚጠቀሙ አሽከርካሪዎች እንኳን እንዲጫኑ አበክረን እንመክራለን ashift=12 ወይም ከዚያ በላይ ashift=13የወደፊቱን በልበ ሙሉነት ለመጋፈጥ.

ንብረት ashift ለእያንዳንዱ vdev ምናባዊ መሣሪያ ተዘጋጅቷል, እና ለመዋኛ ገንዳ አይደለም, ብዙዎች በስህተት እንደሚያስቡ - እና ከተጫነ በኋላ አይለወጥም. በአጋጣሚ ከተመታ ashift አዲስ vdev ወደ ገንዳ ውስጥ ሲጨምሩ ገንዳውን ሊመለስ በማይችል መልኩ ዝቅተኛ አፈፃፀም ባለው መሳሪያ አርክሰዋል እና ብዙውን ጊዜ ገንዳውን ከማጥፋት እና እንደገና ከመጀመር ውጭ ሌላ ምርጫ የለም። vdev ን ማስወገድ እንኳን ከተበላሸ ውቅር አያድንዎትም። ashift!

ቅዳ-በመጻፍ ዘዴ

ZFS መሰረታዊ ነገሮች፡ ማከማቻ እና አፈጻጸም
መደበኛ የፋይል ስርዓት ውሂብን እንደገና መፃፍ ካስፈለገ እያንዳንዱን ብሎክ ባለበት ይለውጠዋል

ZFS መሰረታዊ ነገሮች፡ ማከማቻ እና አፈጻጸም
የቅጂ-ላይ-የፋይል ስርዓት አዲስ የማገጃ እትም ይጽፋል እና የድሮውን ስሪት ይከፍታል።

ZFS መሰረታዊ ነገሮች፡ ማከማቻ እና አፈጻጸም
በአብስትራክት የብሎኮችን ትክክለኛ አካላዊ አቀማመጥ ችላ ካልን የእኛ "ዳታ ኮሜት" ቀለል ባለ "ዳታ ትል" ባለው ቦታ ካርታ ላይ ከግራ ወደ ቀኝ የሚንቀሳቀስ ነው.

ZFS መሰረታዊ ነገሮች፡ ማከማቻ እና አፈጻጸም
አሁን የቅጅ-በ-ጽሑፍ ቅጽበተ-ፎቶዎች እንዴት እንደሚሠሩ ጥሩ ሀሳብ ማግኘት እንችላለን - እያንዳንዱ ብሎክ የበርካታ ቅጽበተ-ፎቶዎች ሊሆን ይችላል እና ሁሉም ተዛማጅ ቅጽበተ-ፎቶዎች እስኪጠፉ ድረስ ይቆያሉ

የጽሑፍ ቅጅ (CoW) ዘዴ ZFSን ይህን የመሰለ አስደናቂ ሥርዓት የሚያደርገው መሠረታዊ መሠረት ነው። መሠረታዊው ጽንሰ-ሐሳብ ቀላል ነው - ባህላዊ የፋይል ስርዓት ፋይልን ለመለወጥ ከጠየቁ, የጠየቁትን በትክክል ይሰራል. የፋይል ስርዓት ቅጂ እንዲፃፍ ከጠየቅክ "እሺ" ይላል ግን ይዋሻል።

ይልቁንስ ኮፒ-ላይ የፋይል ስርዓት የተሻሻለውን ብሎክ አዲስ እትም ይጽፋል ከዚያም የፋይሉን ሜታዳታ በማዘመን የድሮውን ብሎክ ማቋረጥ እና የጻፍከውን አዲሱን ብሎክ ለማገናኘት ነው።

የድሮውን ብሎክ ነቅሎ አዲሱን ማገናኘት የሚከናወነው በአንድ ኦፕሬሽን ነው ስለዚህ ሊቋረጥ አይችልም - ይህ ከተከሰተ በኋላ ኃይል ካነሱት አዲስ የፋይሉ ስሪት አለዎት እና ቀደም ብለው ካጠፉት የድሮው ስሪት አለዎት . በማንኛውም ሁኔታ በፋይል ስርዓቱ ውስጥ ምንም ግጭቶች አይኖሩም.

በ ZFS ውስጥ መገልበጥ በፋይል ስርዓት ደረጃ ብቻ ሳይሆን በዲስክ አስተዳደር ደረጃም ይከሰታል. ይህ ማለት ZFS በነጭ ቦታ አይነካም ማለት ነው (በ RAID ውስጥ ቀዳዳ) - ስትሪፕ ስርዓቱ ከመበላሸቱ በፊት በከፊል ለመቅዳት ጊዜ ሲኖረው፣ ዳግም ከተጀመረ በኋላ የድርድር ጉዳት የደረሰበት ክስተት። እዚህ ግርፋት በአቶሚክ ተጽፏል, vdev ሁልጊዜ ቅደም ተከተል ነው, እና ቦብ አጎትህ ነው።.

ZIL፡ ZFS የሐሳብ መዝገብ

ZFS መሰረታዊ ነገሮች፡ ማከማቻ እና አፈጻጸም
የZFS ስርዓት የተመሳሰለ ፅሁፎችን በልዩ መንገድ ይይዛቸዋል - ለጊዜው ግን ወዲያውኑ በZIL ውስጥ ያከማቻል ከማይመሳሰል ፅሁፎች ጋር በቋሚነት ከመፃፍዎ በፊት።

ZFS መሰረታዊ ነገሮች፡ ማከማቻ እና አፈጻጸም
በተለምዶ፣ ወደ ZIL የተጻፈ ውሂብ ዳግም አይነበብም። ነገር ግን የስርዓት ውድቀት በኋላ ይቻላል

ZFS መሰረታዊ ነገሮች፡ ማከማቻ እና አፈጻጸም
SLOG፣ ወይም ሁለተኛ ደረጃ LOG መሣሪያ፣ ልዩ - እና ቢቻል በጣም ፈጣን - vdev፣ ZIL ከዋናው ማከማቻ ተለይቶ የሚቀመጥበት ነው።

ZFS መሰረታዊ ነገሮች፡ ማከማቻ እና አፈጻጸም
ከብልሽት በኋላ በZIL ውስጥ ያለው ቆሻሻ ሁሉ እንደገና ይጫወታል - በዚህ አጋጣሚ ZIL በ SLOG ላይ ነው፣ ስለዚህ ከዚያ እንደገና ይጫወታል።

ሁለት ዋና ዋና የጽሑፍ ክዋኔዎች አሉ - የተመሳሰለ (ማመሳሰል) እና ያልተመሳሰሉ (asynchronous)። ለአብዛኛዎቹ የሥራ ጫናዎች፣ አብዛኞቹ ጽሁፎች የማይመሳሰሉ ናቸው - የፋይል ስርዓቱ ተሰብስበው በቡድን እንዲሰጡ ያስችላቸዋል፣ መቆራረጥን ይቀንሳል እና የውጤት መጠንን በእጅጉ ይጨምራል።

የተመሳሰለ ቅጂዎች ፍጹም የተለየ ጉዳይ ናቸው። አንድ መተግበሪያ የተመሳሰለ ጽሁፍ ሲጠይቅ የፋይል ስርዓቱን ይነግረዋል፡- "ይህን ወደማይለዋወጥ ማህደረ ትውስታ ማስገባት ያስፈልግዎታል አሁንእስከዚያ ድረስ ምንም ማድረግ የምችለው ነገር የለም" ስለዚህ፣ የተመሳሰለ ፅሁፎች ወዲያውኑ በዲስክ ላይ መሰጠት አለባቸው - እና ይህ መከፋፈልን የሚጨምር ከሆነ ወይም ውጤቱን የሚቀንስ ከሆነ ፣ እንደዚያው ይሆናል።

ZFS የተመሳሳይ ፅሁፎችን ከመደበኛ የፋይል ስርዓቶች በተለየ መልኩ ያስተናግዳል—ወዲያውኑ ወደ መደበኛ ማከማቻ ከማስገባት ይልቅ፣ ZFS ወደ ልዩ የማከማቻ ቦታ ZFS Intent Log ወይም ZIL ያስገባቸዋል። ዘዴው እነዚህ መዝገቦች ናቸው እንዲሁም በማህደረ ትውስታ ውስጥ ይቆዩ፣ ከመደበኛ ያልተመሳሰሉ የፅሁፍ ጥያቄዎች ጋር ተደባልቆ፣ በኋላ ላይ እንደ ፍፁም መደበኛ TXGs (የግብይት ቡድኖች) ወደ ማከማቻው እንዲገባ።

በተለመደው አሠራር, ZIL ይፃፋል እና እንደገና አይነበብም. ከጥቂት ጊዜ በኋላ የዚኤል መዝገቦች ከ RAM በመደበኛ TXGs ውስጥ ወደ ዋናው ማከማቻ ሲገቡ ከዚኤል ተለይተዋል። ከዚል አንድ ነገር የሚነበብበት ጊዜ ገንዳው ሲገባ ብቻ ነው።

ZFS ካልተሳካ - የስርዓተ ክወና ብልሽት ወይም የመብራት መቆራረጥ - በዚል ውስጥ ውሂብ ሲኖር ይህ መረጃ በሚቀጥለው ገንዳ በሚያስመጣበት ጊዜ ይነበባል (ለምሳሌ የአደጋ ጊዜ ስርዓቱ እንደገና ሲጀመር)። በZIL ውስጥ ያለ ማንኛውም ነገር ይነበባል፣ ወደ TXGs ይመደባል፣ ለዋናው ማከማቻ ይተገበራል፣ እና ከዚያ በማስመጣት ሂደት ከZIL ይለያል።

ከvdev አጋዥ ክፍሎች አንዱ LOG ወይም SLOG ይባላል። አንድ ዓላማ አለው - ገንዳውን በዋናው የvdev መደብር ላይ ከማስቀመጥ ይልቅ ZIL ን ለማከማቸት የተለየ ፣ እና በተሻለ ፍጥነት ፣ በጣም ፈጣን ፣ በጣም መጻፍ የሚቋቋም ቪዴቭ ለማቅረብ። ZIL ራሱ የትም ቢከማች ተመሳሳይ ባህሪ አለው፣ ነገር ግን LOG vdev በጣም ከፍተኛ የመፃፍ አፈጻጸም ካለው፣ የተመሳሰለ ጽሁፎች ፈጣን ይሆናሉ።

ከ LOG ጋር አንድ vdev ወደ ገንዳው ማከል አይሰራም አልችልም። ያልተመሳሰለ የመጻፍ አፈጻጸምን ያሻሽሉ - ምንም እንኳን ሁሉንም ወደ ZIL እንዲጽፉ ቢያስገድዱም። zfs set sync=always, አሁንም በ TXG ውስጥ ካለው ዋና ማከማቻ ጋር በተመሳሳይ መንገድ እና ያለ ሎግ በተመሳሳይ ፍጥነት ይገናኛሉ. ብቸኛው ቀጥተኛ የአፈፃፀም ማሻሻያ የተመሳሰለ ፅሁፎች መዘግየት ነው (ምክንያቱም ፈጣን የምዝግብ ማስታወሻ ስራዎችን ያፋጥናል)። sync).

ነገር ግን፣ ብዙ የተመሳሳይ ጽሑፎችን በሚፈልግ አካባቢ፣ vdev LOG በተዘዋዋሪ ያልተመሳሰሉ ጽሑፎችን እና ያልተሸጎጡ ንባቦችን ማፋጠን ይችላል። የዚል ግቤቶችን ወደተለየ vdev LOG ማውረድ ማለት ለ IOPS በዋና ማከማቻ ላይ ያለው ውዝግብ ያነሰ ነው፣ ይህም የሁሉንም የማንበብ እና የመፃፍ አፈጻጸም በተወሰነ ደረጃ ያሻሽላል።

ቅጽበተ-ፎቶዎች

የቅጅ-ላይ መፃፍ ዘዴ ለZFS አቶሚክ ቅጽበተ-ፎቶዎች እና ተጨማሪ ያልተመሳሰል ማባዛት አስፈላጊ መሰረት ነው። ገባሪው የፋይል ስርዓት ሁሉንም መዝገቦች በወቅታዊ ውሂብ ምልክት የሚያደርግበት ጠቋሚ ዛፍ አለው - ቅጽበተ-ፎቶ ሲያነሱ በቀላሉ የዚህን የጠቋሚ ዛፍ ቅጂ ይሠራሉ።

መዝገብ በንቁ የፋይል ስርዓት ላይ ሲገለበጥ ZFS መጀመሪያ አዲሱን የማገጃ እትም ወደ ላልተጠቀመ ቦታ ይጽፋል። ከዚያ የድሮውን የማገጃውን ስሪት አሁን ካለው የፋይል ስርዓት ይለያል። ነገር ግን አንዳንድ ቅጽበተ-ፎቶ የድሮውን ብሎክ የሚያመለክት ከሆነ፣ አሁንም ሳይለወጥ ይቀራል። ይህንን ብሎክ የሚያመለክቱ ሁሉም ቅጽበታዊ ገጽ እይታዎች እስኪጠፉ ድረስ የድሮው ብሎክ እንደ ነፃ ቦታ አይመለስም!

ማባዛት

ZFS መሰረታዊ ነገሮች፡ ማከማቻ እና አፈጻጸም
የእኔ የእንፋሎት ቤተ-መጽሐፍት በ2015 158 GiB ነበር እና 126 ፋይሎችን አካትቷል። ይህ ለ rsync ለተመቻቸ ሁኔታ በጣም ቅርብ ነው - በአውታረ መረቡ ላይ ZFS ማባዛት 927% ፈጣን "ብቻ" ነበር።

ZFS መሰረታዊ ነገሮች፡ ማከማቻ እና አፈጻጸም
በተመሳሳዩ አውታረ መረብ ውስጥ አንድ ነጠላ 40 ጂቢ የዊንዶውስ 7 ምናባዊ ማሽን ምስል ፋይልን ማባዛት ፍጹም የተለየ ታሪክ ነው። ZFS ማባዛት ከ rsync በ 289 እጥፍ ፈጣን ነው - ወይም "ብቻ" 161 ጊዜ ፈጣን ነው rsyncን በ --inplace ለመጥራት በቂ እውቀት ካሎት።

ZFS መሰረታዊ ነገሮች፡ ማከማቻ እና አፈጻጸም
የቪኤም ምስል ሲመዘን ፣ rsync ከእሱ ጋር ልኬትን ያወጣል። 1,9 ቲቢ ለዘመናዊ ቪኤም ምስል ያን ያህል ትልቅ አይደለም - ነገር ግን የ ZFS ማባዛት ከ rsync በ 1148 እጥፍ ፈጣን ነው ፣ በ 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እና ከዚያ ወደ እነዚያ ብሎኮች ጠቋሚዎችን ያክሉ። Voila, አለን @2 በአዲሱ ስርዓት!

ZFS ያልተመሳሰለ ተጨማሪ ማባዛት እንደ rsync ካሉ ቀደምት ቅጽበተ-ፎቶ ያልሆኑ ዘዴዎች ላይ ትልቅ መሻሻል ነው። በሁለቱም ሁኔታዎች የተለወጠው ውሂብ ብቻ ነው የሚተላለፈው - ግን rsync መጀመሪያ መሆን አለበት። ያንብቡ ድምርን ለማጣራት እና ለማነፃፀር ከዲስክ በሁለቱም በኩል ያሉት ሁሉም መረጃዎች. በአንጻሩ የZFS ማባዛት ከጠቋሚ ዛፎች በስተቀር ምንም አያነብም - እና በጋራ ቅጽበታዊ እይታ ውስጥ የሌሉ ብሎኮች።

አብሮ የተሰራ መጭመቂያ

የመገልበጥ የመጻፍ ዘዴም የውስጠ-መስመር መጭመቂያ ስርዓቱን ቀላል ያደርገዋል። በባህላዊ የፋይል ስርዓት ውስጥ መጭመቅ ችግር አለበት - ሁለቱም የአሮጌው ስሪት እና የተሻሻለው ውሂብ አዲሱ ስሪት በተመሳሳይ ቦታ ውስጥ ይኖራሉ።

በፋይል መሃከል ህይወትን እንደ ሜጋባይት ዜሮ ከ0x00000000 እና ከመሳሰሉት የሚጀምር ዳታ ብናስብ በዲስክ ላይ ወደ አንድ ሴክተር መጭመቅ በጣም ቀላል ነው። ግን ያንን ሜጋባይት ዜሮዎች በሜጋባይት በማይጨበጥ ዳታ እንደ JPEG ወይም የውሸት የዘፈቀደ ጫጫታ ብንተካው ምን ይሆናል? ባልተጠበቀ ሁኔታ ይህ ሜጋባይት መረጃ አንድ ሳይሆን 256 4 ኪቢ ሴክተሮችን ይፈልጋል እና በዚህ ቦታ በዲስክ ላይ አንድ ሴክተር ብቻ ይጠበቃል።

የተሻሻሉ መዝገቦች ሁል ጊዜ ጥቅም ላይ ያልዋሉ ቦታዎች ላይ ስለሚፃፉ ZFS ይህ ችግር የለበትም - የመጀመሪያው ብሎክ አንድ 4 ኪቢ ሴክተር ብቻ ነው የሚይዘው ፣ እና አዲሱ መዝገብ 256 ይይዛል ፣ ግን ይህ ችግር አይደለም - በቅርብ ጊዜ የተሻሻለ ቁራጭ ከ " የፋይሉ መካከለኛ" መጠኑ ቢቀየርም ባይቀየርም ጥቅም ላይ ላልዋለ ቦታ ይፃፋል፣ ስለዚህ ለZFS ይህ በጣም የተለመደ ሁኔታ ነው።

የቤተኛ ZFS መጭመቂያ በነባሪነት ተሰናክሏል፣ እና ስርዓቱ ሊሰካ የሚችል ስልተ ቀመሮችን ያቀርባል-በአሁኑ ጊዜ LZ4፣ gzip (1-9)፣ LZJB እና ZLE።

  • LZ4 እጅግ በጣም ፈጣን መጭመቂያ እና መጨናነቅ እና የአፈጻጸም ጥቅማጥቅሞችን ለአብዛኛዎቹ ጥቅም ጉዳዮች የሚያቀርብ የዥረት ስልተ-ቀመር ነው - በተመጣጣኝ ቀርፋፋ ሲፒዩዎች ላይም ቢሆን።
  • GZIP ሁሉም የዩኒክስ ተጠቃሚዎች የሚያውቁት እና የሚወዱት የተከበረ ስልተ ቀመር ነው። ወደ ደረጃ 1 ሲቃረብ የጨመቅ ሏሞ እና የሲፒዩ አጠቃቀም እየጨመረ በ9-9 ከጨመቀ ደረጃ ጋር ሊተገበር ይችላል። ስልተ ቀመሩ ለሁሉም የጽሑፍ (ወይም ሌላ በጣም ሊታመቁ የሚችሉ) መጠቀሚያ ጉዳዮች ተስማሚ ነው፣ ካልሆነ ግን ብዙ ጊዜ የሲፒዩ ችግሮችን ያስከትላል - ይጠቀሙበት። በጥንቃቄ, በተለይም በከፍተኛ ደረጃ.
  • LZJB በ ZFS ውስጥ የመጀመሪያው ስልተ ቀመር ነው። ተቋርጧል እና ከአሁን በኋላ ጥቅም ላይ መዋል የለበትም, LZ4 በሁሉም መንገድ ይበልጣል.
  • መጥፎ - ዜሮ ደረጃ ኢንኮዲንግ፣ ዜሮ ደረጃ ኢንኮዲንግ። መደበኛውን መረጃ በጭራሽ አይነካውም ፣ ግን ትላልቅ የዜሮ ቅደም ተከተሎችን ይጭናል ። የማይጨበጥ መረጃን ችላ ስለሚል ነገር ግን በውጤቱ መዝገቦች ውስጥ ጥቅም ላይ ያልዋለ ቦታን ስለሚጨምቅ ሙሉ ለሙሉ ለማይጨበጥ የውሂብ ስብስቦች (እንደ JPEG፣ MP4 ወይም ሌሎች ቀድሞ የተጨመቁ ቅርጸቶች) ጠቃሚ ነው።

ለሁሉም ማለት ይቻላል አጠቃቀም ጉዳዮች LZ4 መጭመቂያ እንመክራለን; የማይጨበጥ ውሂብ ሲያጋጥመው የአፈጻጸም ቅጣቱ በጣም ትንሽ ነው, እና እድገት ለተለመደው መረጃ አፈጻጸም በጣም አስፈላጊ ነው. የቨርቹዋል ማሽን ምስልን ለአዲስ የዊንዶውስ ኦፐሬቲንግ ሲስተም ጭነት (በአዲስ የተጫነ ስርዓተ ክወና፣ እስካሁን ምንም መረጃ የለም) በመቅዳት ላይ compression=lz4 ጋር ሲነጻጸር 27% በፍጥነት አልፏል compression=none, በ ውስጥ ይህ ፈተና በ 2015.

ARC - የሚለምደዉ ምትክ መሸጎጫ

በቅርብ ጊዜ የተነበቡ ብሎኮችን በ RAM ውስጥ ለማከማቸት በስርዓተ ክወናው ገጽ መሸጎጫ ላይ ከመታመን ይልቅ የራሱን የማንበብ መሸጎጫ ዘዴ የሚጠቀም ZFS የምናውቀው ብቸኛው ዘመናዊ የፋይል ስርዓት ነው።

ምንም እንኳን ቤተኛ መሸጎጫ ከችግር ነፃ ባይሆንም - ZFS ለአዳዲስ የማስታወሻ ምደባ ጥያቄዎች እንደ ከርነል በፍጥነት ምላሽ መስጠት አይችልም ፣ ስለዚህ አዲሱ ፈተና malloc() የማህደረ ትውስታ ድልድል በአሁኑ ጊዜ በኤአርሲ የተያዘው ራም የሚያስፈልገው ከሆነ ሊሳካ ይችላል። ግን ቢያንስ ለአሁኑ የራስዎን መሸጎጫ ለመጠቀም ጥሩ ምክንያቶች አሉ።

ሁሉም የታወቁ ዘመናዊ ኦፕሬቲንግ ሲስተሞች፣ ማክሮስ፣ ዊንዶውስ፣ ሊኑክስ እና ቢኤስዲ የገጹን መሸጎጫ ለመተግበር LRU (በቅርብ ጊዜ ጥቅም ላይ ያልዋለ) አልጎሪዝምን ይጠቀማሉ። ይህ ከእያንዳንዱ ንባብ በኋላ የተሸጎጠውን ብሎክ "ወደ ወረፋው ከፍ" የሚገፋ እና እንደ አስፈላጊነቱ አዲስ መሸጎጫ ሚስቶችን ለመጨመር ብሎኮችን "ከወረፋው ላይ" የሚገፋ ጥንታዊ ስልተ-ቀመር ነው (ብሎኮች ከዲስክ መነበብ የነበረባቸው እንጂ ከካሼው አይደለም) ወደ ላይ

አልጎሪዝም ብዙውን ጊዜ በጥሩ ሁኔታ ይሰራል፣ ነገር ግን ትልቅ የሚሰሩ የውሂብ ስብስቦች ባሉባቸው ስርዓቶች ላይ፣ LRU በቀላሉ ወደ መጨፍጨፍ ያመራል - በተደጋጋሚ የሚፈለጉ ብሎኮችን በማስወጣት ከመሸጎጫው ዳግመኛ የማይነበቡ ብሎኮችን ቦታ ለማድረግ።

ARC áŠĽáŠ•á‹° "ክብደት ያለው" መሸጎጫ ተደርጎ ሊወሰድ የሚችል በጣም ያነሰ የዋህ ስልተ-ቀመር ነው። የተሸጎጠ ብሎክ በተነበበ ቁጥር ትንሽ "ክብድ" እና ማስወጣት ከባድ ይሆናል - ብሎክን ካስወጣም በኋላ ተከታትሏል በተወሰነ ጊዜ ውስጥ. የተባረረ ነገር ግን ወደ መሸጎጫው ተመልሶ መነበብ ያለበት ብሎክ እንዲሁ "ክብደት" ይሆናል።

የዚህ ሁሉ የመጨረሻ ውጤት መሸጎጫ በጣም ከፍ ያለ የመምታት ሬሾ ያለው መሸጎጫ ነው፣ በመሸጎጫ ስኬቶች መካከል ያለው ሬሾ (ከካሼው የተከናወኑ ንባቦች) እና መሸጎጫ ይጎድላሉ (ከዲስክ ይነበባል)። ይህ እጅግ በጣም ጠቃሚ ስታቲስቲክስ ነው - መሸጎጫዎቹ እራሳቸውን በፍጥነት ማዘዛቸው ብቻ ሳይሆን መሸጎጫ ማጣት በፍጥነት ሊቀርብ ይችላል፣ ምክንያቱም ብዙ መሸጎጫ ሲመታ፣ በተመሳሳይ ጊዜ የሚነሱ የዲስክ ጥያቄዎች እየቀነሱ ይሄዳሉ እና የቀሩት ያመለጡ የቆይታ ጊዜ ይቀንሳል። በዲስክ መቅረብ.

መደምደሚያ

የ ZFS መሰረታዊ የትርጓሜ ትምህርቶችን ከተማርን በኋላ - ኮፒ-ላይ-ጽሑፍ እንዴት እንደሚሰራ ፣ እንዲሁም በማከማቻ ገንዳዎች ፣ በምናባዊ መሣሪያዎች ፣ በብሎኮች ፣ በሴክተሮች እና በፋይሎች መካከል ያሉ ግንኙነቶች - በእውነተኛ ቁጥሮች የእውነተኛውን ዓለም አፈፃፀም ለመወያየት ዝግጁ ነን።

በሚቀጥለው ክፍል፣ የተንጸባረቀባቸው ቬዴቭስ እና RAIDz ያላቸው የመዋኛ ገንዳዎች ትክክለኛ አፈጻጸም፣ እርስ በርስ ሲነፃፀሩ እና እንዲሁም ከመረመርናቸው ባህላዊ የሊኑክስ ከርነል RAID ቶፖሎጂዎች አንፃር እንመለከታለን። ቀደም ብሎ.

መጀመሪያ ላይ መሰረታዊ ነገሮችን ብቻ ለመሸፈን እንፈልጋለን - የ ZFS topologies እራሳቸው - ግን በኋላ እንደዚህ ያለ እንደ L2ARC፣ SLOG እና ልዩ ድልድል ያሉ ረዳት vdev አይነቶችን መጠቀምን ጨምሮ ስለ ZFS የበለጠ የላቀ ማዋቀር እና ማስተካከል ለመነጋገር እንዘጋጅ።

ምንጭ: hab.com

አስተያየት ያክሉ