Linux 0.8.0 இல் ZFS வெளியீடு, Linux கர்னலுக்கான ZFS இன் செயலாக்கங்கள்

கிட்டத்தட்ட இரண்டு வருட வளர்ச்சிக்குப் பிறகு வழங்கப்பட்டது வெளியீடு லினக்ஸ் 0.8.0 இல் ZFS, லினக்ஸ் கர்னலுக்கான தொகுதியாக தொகுக்கப்பட்ட ZFS கோப்பு முறைமையின் செயலாக்கம். தொகுதி 2.6.32 முதல் 5.1 வரை லினக்ஸ் கர்னல்கள் மூலம் சோதிக்கப்பட்டது. தயார் நிறுவல் தொகுப்புகள் விரைவில் வரும் தயார் செய்யப்படும் Debian, Ubuntu, Fedora, RHEL/CentOS உள்ளிட்ட முக்கிய லினக்ஸ் விநியோகங்களுக்கு. லினக்ஸ் தொகுதியில் ZFS ஏற்கனவே Debian, Ubuntu, Gentoo, Sabayon Linux மற்றும் ALT லினக்ஸ் விநியோகங்களில் சேர்க்கப்பட்டுள்ளது.

லினக்ஸில் ZFS இன் ஒரு பகுதியாக, கோப்பு முறைமையின் செயல்பாடு மற்றும் தொகுதி மேலாளரின் செயல்பாடு ஆகிய இரண்டிற்கும் தொடர்புடைய ZFS கூறுகளின் செயலாக்கம் தயாரிக்கப்பட்டது. குறிப்பாக, பின்வரும் கூறுகள் செயல்படுத்தப்படுகின்றன: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) மற்றும் ZPL (ZFS POSIX லேயர்). கூடுதலாக, லஸ்டர் கிளஸ்டர் கோப்பு முறைமைக்கான பின்தளமாக ZFS ஐப் பயன்படுத்துவதற்கான திறனை இந்த திட்டம் வழங்குகிறது. திட்டத்தின் பணியானது OpenSolaris திட்டத்தில் இருந்து இறக்குமதி செய்யப்பட்ட அசல் ZFS குறியீட்டை அடிப்படையாகக் கொண்டது மற்றும் Illumos சமூகத்தின் மேம்பாடுகள் மற்றும் திருத்தங்களுடன் மேம்படுத்தப்பட்டது. அமெரிக்க எரிசக்தி துறையுடனான ஒப்பந்தத்தின் கீழ் லிவர்மோர் தேசிய ஆய்வகத்தின் ஊழியர்களின் பங்கேற்புடன் இந்த திட்டம் உருவாக்கப்படுகிறது.

குறியீடு இலவச CDDL உரிமத்தின் கீழ் விநியோகிக்கப்படுகிறது, இது GPLv2 உடன் பொருந்தாது, இது Linux இல் ZFS ஐ Linux கர்னலின் முக்கிய கிளையில் ஒருங்கிணைக்க அனுமதிக்காது, ஏனெனில் GPLv2 மற்றும் CDDL உரிமங்களின் கீழ் குறியீட்டை கலக்க அனுமதி இல்லை. இந்த உரிமப் பொருத்தமின்மையைத் தவிர்க்க, CDDL உரிமத்தின் கீழ் முழுத் தயாரிப்பையும் தனித்தனியாக ஏற்றக்கூடிய தொகுதியாக விநியோகிக்க முடிவு செய்யப்பட்டது, இது மையத்திலிருந்து தனித்தனியாக வழங்கப்படுகிறது. லினக்ஸ் கோட்பேஸில் ZFS இன் நிலைத்தன்மை Linux க்கான மற்ற கோப்பு முறைமைகளுடன் ஒப்பிடத்தக்கதாக மதிப்பிடப்படுகிறது.

முக்கிய மாற்றங்கள்:

  • கோப்பு முறைமை மற்றும் பகிர்வுகளின் மட்டத்தில் சேமிக்கப்பட்ட தரவின் குறியாக்கத்திற்கான உள்ளமைக்கப்பட்ட ஆதரவு சேர்க்கப்பட்டது. இயல்பு குறியாக்க அல்காரிதம் aes-256-ccm ஆகும். குறியாக்க விசைகளை ஏற்றுவதற்கு "zfs load-key" கட்டளை முன்மொழியப்பட்டது;
  • 'zfs send' மற்றும் 'zfs receive' கட்டளைகளை இயக்கும் போது மறைகுறியாக்கப்பட்ட தரவை மாற்றும் திறன் செயல்படுத்தப்பட்டது. "-w" விருப்பத்தை குறிப்பிடும்போது, ​​ஏற்கனவே குளத்தில் குறியாக்கம் செய்யப்பட்ட தரவு, இடைநிலை மறைகுறியாக்கம் இல்லாமல் மற்றொரு குளத்திற்கு மாற்றப்படும். அத்தகைய நகலெடுப்பின் மூலம், தரவு அனுப்புநரின் விசையால் பாதுகாக்கப்படுகிறது, இது நம்பத்தகாத அமைப்புகளுக்கு காப்புப் பிரதி எடுக்க இந்த பயன்முறையைப் பயன்படுத்த அனுமதிக்கிறது (பெறுநரின் சமரசம் ஏற்பட்டால், தாக்குபவர் விசை இல்லாமல் தரவை அணுக முடியாது);
  • சேமிப்பகக் குளத்திலிருந்து முதன்மை இயக்கிகளை அகற்றுவதற்கான ஆதரவு சேர்க்கப்பட்டது, தனித்தனியாகவும் கண்ணாடியின் ஒரு பகுதியாகவும் இணைக்கப்பட்டுள்ளது. அகற்றுதல் "zpool remove" கட்டளையுடன் மேற்கொள்ளப்படுகிறது. நீக்குதல் செயல்முறையானது விலக்கப்பட்ட இயக்ககத்தில் இருந்து குளத்தில் மீதமுள்ள முதன்மை இயக்ககங்களுக்கு தரவை நகலெடுக்கிறது;
  • குளத்தின் தற்போதைய நிலையைச் சேமிக்க "zpool சோதனைச் சாவடி" கட்டளையைச் சேர்த்தது, மேலும் மாற்றங்களைச் சேமித்த புள்ளியில் மீண்டும் மாற்றும் திறனுடன் (முழு குளத்தின் ஸ்னாப்ஷாட் உருவாக்கப்பட்டுள்ளது). ஆபத்தான சிக்கலான நிர்வாகப் பணிகளைச் செய்யும் செயல்பாட்டில் இந்த அம்சம் பயனுள்ளதாக இருக்கும், இது சாதாரண நிலைமைகளின் கீழ் மாற்ற முடியாத மாற்றங்களுக்கு வழிவகுக்கிறது (உதாரணமாக, புதிய ZFS செயல்பாட்டிற்கான கொடிகளை செயல்படுத்துதல் அல்லது தரவை அழிப்பது);
  • "zpool trim" கட்டளையானது பூலில் பயன்படுத்தப்படும் டிரைவ்களுக்கு பயன்பாட்டில் இல்லாத பிரிவுகளைப் பற்றி தெரிவிக்க சேர்க்கப்பட்டுள்ளது. TRIM செயல்பாட்டின் பயன்பாடு SSD களின் செயல்திறனை அதிகரிக்கவும் அவற்றின் செயல்திறன் குறைவதைத் தடுக்கவும் உதவுகிறது. TRIM கட்டளைகளை அனுப்பும் தொடர்ச்சியான பின்னணி செயல்முறையை செயல்படுத்த ஒரு புதிய "autotrim" பண்பு முன்மொழியப்பட்டது;
  • ஒதுக்கப்படாத அனைத்து வட்டு இடத்தையும் துவக்குவதற்கு "zpool initialize" கட்டளை சேர்க்கப்பட்டது, இது முதல் அணுகலில் செயல்திறன் சிதைவு இல்லாமல் உடனடியாக பயன்பாட்டிற்கு தயாராக இருக்க அனுமதிக்கிறது (எடுத்துக்காட்டாக, VMware VMDK போன்ற மெய்நிகராக்கப்பட்ட சேமிப்பகங்களை ஹோஸ்ட் செய்யும் போது);
  • கணக்கியல் மற்றும் திட்ட-நிலை ஒதுக்கீடுகளுக்கான ஆதரவு சேர்க்கப்பட்டது, முன்பு கிடைக்கக்கூடிய பயனர் மற்றும் குழு-நிலை ஒதுக்கீடுகளுக்கு கூடுதலாக. சாராம்சத்தில், திட்டங்கள் என்பது ஒரு தனி அடையாளங்காட்டியுடன் (திட்டம் ஐடி) தொடர்புடைய பொருட்களின் தனி இடமாகும். பிணைப்பு என்பது 'chattr -p' செயல்பாட்டின் மூலம் அல்லது பண்பு மரபு வழியாக வரையறுக்கப்படுகிறது. திட்ட நிர்வாகத்திற்கு, "zfs திட்டம்" மற்றும் "zfs ப்ராஜெக்ட்ஸ்பேஸ்" கட்டளைகள் வழங்கப்படுகின்றன, இது திட்டங்களின் உருவாக்கத்தை நிர்வகிக்கவும் அவற்றுக்கான வட்டு இட வரம்புகளை அமைக்கவும் உங்களை அனுமதிக்கிறது;
  • ZFS உடன் பல்வேறு வேலைகளை தானியக்கமாக்க லுவா ஸ்கிரிப்ட்களை உருவாக்கும் திறன் சேர்க்கப்பட்டது. ஸ்கிரிப்டுகள் "zpool நிரல்" கட்டளையைப் பயன்படுத்தி சிறப்பு தனிமைப்படுத்தப்பட்ட சூழல்களில் இயக்கப்படுகின்றன;
  • புதிய நூலகம் செயல்படுத்தப்பட்டது pyzfs, இது பைதான் பயன்பாடுகளிலிருந்து ZFS ஐ நிர்வகிப்பதற்கான நிலையான API ஐ வழங்குகிறது. நூலகம் libzfs_core ஐச் சுற்றி ஒரு ரேப்பர் மற்றும் ஒரே மாதிரியான செயல்பாடுகளை வழங்குகிறது, ஆனால் நெருக்கமான பைதான் வகைகளைப் பயன்படுத்துகிறது;
  • arcstat, arcsummary மற்றும் dbufstat பயன்பாடுகள் Python 3 உடன் இணக்கமாக செய்யப்பட்டுள்ளன. arcstat.py, arc_summary.py மற்றும் dbufstat.py பயன்பாடுகள் ".py" நீட்டிப்பு இல்லாமல் பதிப்புகளுக்கு மறுபெயரிடப்பட்டுள்ளன;
  • Linux Direct IO (O_DIRECT) கர்னல் இடைமுகத்திற்கான ஆதரவு சேர்க்கப்பட்டது, இது இடையகப்படுத்தாமல் தரவை அணுகவும் மற்றும் தற்காலிக சேமிப்பைத் தவிர்க்கவும் அனுமதிக்கிறது;
  • செயல்திறன் மேம்படுத்தல்கள் அறிமுகப்படுத்தப்பட்டன:
    • "ஸ்க்ரப்" மற்றும் "ரெசில்வர்" கட்டளைகளின் பணி இரண்டு கட்டங்களாகப் பிரிவதால் துரிதப்படுத்தப்பட்டது (மெட்டாடேட்டாவை ஸ்கேன் செய்வதற்கும் வட்டில் உள்ள தரவுகளுடன் தொகுதிகளின் இருப்பிடத்தை நிர்ணயிப்பதற்கும் ஒரு தனி கட்டம் ஒதுக்கப்பட்டுள்ளது, இது வரிசையான தரவைப் பயன்படுத்தி மேலும் சரிபார்க்க அனுமதிக்கிறது. வாசிப்பு);
    • ஒதுக்கீடு வகுப்புகளுக்கான ஆதரவு சேர்க்கப்பட்டது,
      ஒப்பீட்டளவில் சிறிய SSD களை ஒருங்கிணைத்து, மெட்டாடேட்டா, DDT தரவு மற்றும் சிறிய கோப்புத் தொகுதிகள் போன்ற பொதுவாகப் பயன்படுத்தப்படும் சில வகையான தொகுதிகளை மட்டுமே சேமிக்கப் பயன்படுகிறது;

    • போன்ற நிர்வாக கட்டளைகளின் மேம்படுத்தப்பட்ட செயல்திறன்
      "zfs பட்டியல்" மற்றும் "zfs get", அவற்றின் செயல்பாட்டிற்கு தேவையான மெட்டாடேட்டாவை தேக்ககப்படுத்துவதன் மூலம்;

    • ஒவ்வொரு மெட்டாஸ்லேப் குழுவிற்கும் தனித்தனி ஒதுக்கீட்டு செயல்முறைகளை இயக்குவதன் மூலம் தொகுதி ஒதுக்கீடு செயல்பாடுகளை இணைப்பதற்கான ஆதரவு சேர்க்கப்பட்டது. வழக்கமான அமைப்புகளில், 5-10% செயல்திறன் அதிகரிப்பு உள்ளது, ஆனால் பெரியவற்றில் (8 128 ஜிபி எஸ்எஸ்டி, 24 கோர் நியூஎம்ஏ, 256 ஜிபி ரேம்), தொகுதி ஒதுக்கீடு செயல்பாடுகளின் அதிகரிப்பு 25% ஐ எட்டும்;
    • “ரெசில்வர்” கட்டளையை ஒத்திவைப்பதற்கான சாத்தியக்கூறு சேர்க்கப்பட்டது (டிரைவ்களின் உள்ளமைவில் ஏற்படும் மாற்றங்களை கணக்கில் எடுத்துக்கொண்டு தரவு விநியோகத்தை மீண்டும் உருவாக்குதல்) - புதிய செயல்பாட்டைத் தொடங்கும் போது முந்தையது இன்னும் முடிக்கப்படவில்லை என்றால், புதிய கையாளுதல் அதன் பிறகுதான் செயல்படுத்தத் தொடங்கும். முந்தைய ஒன்றின் முடிவு;
    • சேமிப்பகத்தால் இன்னும் செயலாக்கப்படும் தொகுதிகளின் முன்னிலையில் தொகுதிகளை உருவாக்க மற்றும் செயலாக்க அனுமதிக்க ZIL (ZFS இன்டென்ட் லாக்) இல் மேம்படுத்தல்கள் சேர்க்கப்பட்டுள்ளன;
    • கணினியில் பகிர்வுகளுக்கான (zvol) பதிவு நேரம் குறைக்கப்பட்டது. ஒரு குளத்தில் அதிக எண்ணிக்கையிலான பகிர்வுகள் இருந்தால், அவை இப்போது "zpool இறக்குமதி" செய்த உடனேயே கிடைக்கும்;
    • இன்டெல் QAT (விரைவு உதவி தொழில்நுட்பம்) சில்லுகளைப் பயன்படுத்தி SHA256 ஹாஷ்கள் மற்றும் AES-GSM குறியாக்க செயல்பாடுகளின் வன்பொருள் துரிதப்படுத்தப்பட்ட கணக்கீட்டிற்கான ஆதரவு சேர்க்கப்பட்டது. Intel C62x சிப்செட் மற்றும் CPU ஆட்டம் C3000 ஆகியவற்றின் வன்பொருள் முடுக்கத்திற்கான ஆதரவு சேர்க்கப்பட்டது.

ஆதாரம்: opennet.ru

கருத்தைச் சேர்