LINSTOR சேமிப்பு மற்றும் OpenNebula உடன் அதன் ஒருங்கிணைப்பு

LINSTOR சேமிப்பு மற்றும் OpenNebula உடன் அதன் ஒருங்கிணைப்பு

நீண்ட காலத்திற்கு முன்பு, LINBIT இன் தோழர்கள் தங்கள் புதிய SDS தீர்வை வழங்கினர் - Linstor. DRBD, LVM, ZFS: நிரூபிக்கப்பட்ட தொழில்நுட்பங்களின் அடிப்படையில் இது முற்றிலும் இலவச சேமிப்பகமாகும். Linstor எளிமை மற்றும் நன்கு வடிவமைக்கப்பட்ட கட்டிடக்கலை ஆகியவற்றை ஒருங்கிணைக்கிறது, இது ஸ்திரத்தன்மை மற்றும் மிகவும் ஈர்க்கக்கூடிய முடிவுகளை அடைய உங்களை அனுமதிக்கிறது.

இன்று நான் இதைப் பற்றி இன்னும் கொஞ்சம் விரிவாகப் பேச விரும்புகிறேன் மற்றும் linstor_un ஐப் பயன்படுத்தி OpenNebula உடன் எவ்வளவு எளிதாக ஒருங்கிணைக்க முடியும் என்பதைக் காட்ட விரும்புகிறேன் - இந்த நோக்கத்திற்காக நான் குறிப்பாக உருவாக்கிய ஒரு புதிய இயக்கி.

OpenNebula உடன் இணைந்து Linstor ஆனது உங்கள் சொந்த உள்கட்டமைப்பில் எளிதாகப் பயன்படுத்தக்கூடிய வேகமான மற்றும் நம்பகமான மேகக்கணியை உருவாக்க உங்களை அனுமதிக்கிறது.

லின்ஸ்டர் கட்டிடக்கலை

Linstor என்பது ஒரு கோப்பு முறைமை அல்லது தொகுதி சேமிப்பகம் அல்ல, Linstor என்பது ஒரு சுருக்க அடுக்கை வழங்கும் ஒரு ஆர்கெஸ்ட்ரேட்டராகும், இது LVM அல்லது ZFS இல் தொகுதிகளை உருவாக்குவதை தானியங்குபடுத்தவும் மற்றும் DRBD9 ஐப் பயன்படுத்தி அவற்றைப் பிரதிபலிக்கவும் உங்களை அனுமதிக்கிறது.

ஸ்டீரியோடைப்களை உடைத்தல்

ஆனால் காத்திருங்கள், DRBD? — அதை ஏன் தானியக்கமாக்குவது மற்றும் அது எப்படி வேலை செய்ய முடியும்?

DRBD8 மிகவும் பிரபலமாக இருந்த கடந்த காலத்தை நினைவில் கொள்வோம். அதன் நிலையான பயன்பாட்டில், ஒரு பெரிய தொகுதி சாதனத்தை உருவாக்கி, அதே LVMஐப் பயன்படுத்தி பல சிறிய துண்டுகளாக வெட்ட வேண்டும். ஒரு வகையான mdadm RAID-1 ஆனால் பிணையத்தில் பிரதியெடுப்புடன்.

இந்த அணுகுமுறை அதன் குறைபாடுகள் இல்லாமல் இல்லை, எனவே, DRBD9 இன் வருகையுடன், சேமிப்பக வடிவமைப்பின் கொள்கைகள் மாறிவிட்டன; இப்போது ஒவ்வொரு மெய்நிகர் இயந்திரத்திற்கும் ஒரு தனி DRBD சாதனம் உருவாக்கப்பட்டது.

சுயாதீன தொகுதி சாதனங்களுடனான அணுகுமுறை கிளஸ்டரில் உள்ள இடத்தை சிறப்பாகப் பயன்படுத்த அனுமதிக்கிறது, மேலும் பல கூடுதல் அம்சங்களையும் சேர்க்கிறது. எடுத்துக்காட்டாக, அத்தகைய ஒவ்வொரு சாதனத்திற்கும் நீங்கள் பிரதிகளின் எண்ணிக்கை, அவற்றின் இருப்பிடம் மற்றும் தனிப்பட்ட அமைப்புகளைத் தீர்மானிக்கலாம். அவற்றை உருவாக்க/நீக்க, ஸ்னாப்ஷாட்களை எடுக்க, மறுஅளவிடுதல், குறியாக்கத்தை இயக்குதல் மற்றும் பலவற்றைச் செய்வது எளிது. DRBD9 கோரத்தையும் ஆதரிக்கிறது என்பது குறிப்பிடத்தக்கது, இது பிளவு-மூளை சூழ்நிலைகளைத் தவிர்க்க உங்களை அனுமதிக்கிறது.

வளங்கள் மற்றும் பின்தளங்கள்

புதிய பிளாக் சாதனத்தை உருவாக்கும் போது, ​​லின்ஸ்டர் தேவையான எண்ணிக்கையிலான பிரதிகளை கிளஸ்டரில் உள்ள வெவ்வேறு முனைகளில் வைக்கிறது. அத்தகைய ஒவ்வொரு பிரதியையும் DRBD ஆதாரம் என்று அழைப்போம்.

இரண்டு வகையான வளங்கள் உள்ளன:

  • தரவு வளம் — ஒரு LVM அல்லது ZFS குளத்தில் உள்ள முனையில் அமைந்துள்ள DRBD சாதனம்.
    இந்த நேரத்தில் பல பின்தளங்களுக்கு ஆதரவு உள்ளது மற்றும் அவற்றின் எண்ணிக்கை தொடர்ந்து வளர்ந்து வருகிறது. LVM, ThinLVM மற்றும் ZFS ஆகியவற்றிற்கான ஆதரவு உள்ளது. கடைசி இரண்டு ஸ்னாப்ஷாட்களை உருவாக்கவும் பயன்படுத்தவும் உங்களை அனுமதிக்கிறது.
  • வட்டு இல்லாத வளம் — ஒரு DRBD சாதனம் பின்தளத்தில் இல்லாமல் ஒரு முனையில் வைக்கப்படுகிறது, ஆனால் அதை ஒரு வழக்கமான தொகுதி சாதனமாக கருத அனுமதிக்கிறது; அனைத்து படிக்க/எழுதும் செயல்பாடுகள் தரவு ஆதாரங்களுக்கு திருப்பி விடப்படும். வட்டு இல்லாத ஆதாரங்களுக்கு மிக நெருக்கமான அனலாக் iSCSI LUN ஆகும்.

ஒவ்வொரு DRBD ஆதாரமும் 8 பிரதிகள் வரை இருக்கலாம், அவற்றில் ஒன்று மட்டுமே இயல்பாக செயலில் இருக்கும் - முதன்மை, மற்ற அனைவரும் இருப்பார்கள் இரண்டாம் குறைந்தபட்சம் ஒரு முதன்மை இருக்கும் வரை அவற்றின் பயன்பாடு சாத்தியமற்றதாக இருக்கும், அதாவது, அவை தங்களுக்கு இடையேயான தரவை வெறுமனே பிரதிபலிக்கும்.

கணினியில் DRBD சாதனத்தை நிறுவுவதன் மூலம், அது தானாகவே மாறும் முதன்மை, இதனால் DRBD சொற்களில் ஒரு Diskless ஆதாரம் கூட முதன்மையாக இருக்கலாம்.

உங்களுக்கு ஏன் லின்ஸ்டர் தேவை?

அனைத்து வள-தீவிர பணிகளையும் கர்னலுக்கு ஒப்படைப்பதன் மூலம், Linstor அடிப்படையில் ஒரு வழக்கமான ஜாவா பயன்பாடாகும், இது DRBD வளங்களை உருவாக்குவதை எளிதாக தானியங்குபடுத்த அனுமதிக்கிறது.
மேலும், அவரால் உருவாக்கப்பட்ட ஒவ்வொரு வளமும் ஒரு சுயாதீனமான DRBD கிளஸ்டராக இருக்கும், இது கட்டுப்பாட்டு விமானம் மற்றும் பிற DRBD வளங்களின் நிலை எதுவாக இருந்தாலும் அது சுயாதீனமாக இயங்கும்.

Linstor இரண்டு கூறுகளை மட்டுமே கொண்டுள்ளது:

  • லின்ஸ்டர்-கண்ட்ரோலர் - முக்கிய கட்டுப்படுத்தி, இது வளங்களை உருவாக்குவதற்கும் நிர்வகிப்பதற்கும் API ஐ வழங்குகிறது. இது செயற்கைக்கோள்களுடன் தொடர்பு கொள்கிறது, அவற்றில் உள்ள இலவச இடத்தை சரிபார்க்கிறது, மேலும் புதிய ஆதாரங்களை உருவாக்க மற்றும் நீக்குவதற்கான பணிகளை அனுப்புகிறது. இது ஒரு நிகழ்வில் இயங்குகிறது மற்றும் ஒரு தரவுத்தளத்தைப் பயன்படுத்துகிறது, இது உள் (H2) அல்லது வெளிப்புறமாக (PostgreSQL, MySQL, MariaDB) இருக்கலாம்.
  • லின்ஸ்டர்-செயற்கைக்கோள் — அனைத்து சேமிப்பக முனைகளிலும் நிறுவப்பட்டு, இலவச இடத்தைப் பற்றிய தகவலைக் கட்டுப்படுத்திக்கு வழங்குகிறது, மேலும் புதிய தொகுதிகள் மற்றும் DRBD சாதனங்களை அவற்றின் மேல் உருவாக்க மற்றும் நீக்குவதற்கு கட்டுப்படுத்தியிலிருந்து பெறப்பட்ட பணிகளைச் செய்கிறது.

Linstor பின்வரும் முக்கிய கருத்துகளுடன் செயல்படுகிறது:

  • கணு - ஒரு இயற்பியல் சேவையகத்தில் DRBD வளங்கள் உருவாக்கப்பட்டு பயன்படுத்தப்படும்.
  • சேமிப்புக் குளம் — LVM அல்லது ZFS பூல் DRBD ஆதாரங்கள் இருக்கும் முனையில் உருவாக்கப்பட்டது. வட்டு இல்லாத குளமும் சாத்தியமாகும் - இது ஒரு குளம், இதில் வட்டு இல்லாத வளங்கள் மட்டுமே இருக்கும்.
  • வள வரையறை - ஒரு வளத்தின் வரையறை அடிப்படையில் பெயர் மற்றும் அதன் அனைத்து பண்புகளையும் விவரிக்கும் ஒரு முன்மாதிரி ஆகும்.
  • தொகுதி வரையறை - தொகுதி வரையறை. ஒவ்வொரு வளமும் பல தொகுதிகளைக் கொண்டிருக்கலாம், ஒவ்வொரு தொகுதிக்கும் ஒரு அளவு இருக்க வேண்டும்.
  • வள — ஒரு தொகுதி சாதனத்தின் உருவாக்கப்பட்ட நிகழ்வு, ஒவ்வொரு வளமும் ஒரு குறிப்பிட்ட முனையிலும் சில சேமிப்பகக் குளத்திலும் வைக்கப்பட வேண்டும்.

லின்ஸ்டர் நிறுவல்

உபுண்டுவை ஒரு அமைப்பாகப் பயன்படுத்த பரிந்துரைக்கிறேன், ஏனெனில்... அவளுக்காக உள்ளது தயார் பிபிஏ:

add-apt-repository ppa:linbit/linbit-drbd9-stack
apt-get update

அல்லது டெபியன், ப்ராக்ஸ்மாக்ஸின் அதிகாரப்பூர்வ களஞ்சியத்திலிருந்து லின்ஸ்டரை நிறுவலாம்:

wget -O- https://packages.linbit.com/package-signing-pubkey.asc | apt-key add -
PVERS=5 && echo "deb http://packages.linbit.com/proxmox/ proxmox-$PVERS drbd-9.0" > 
    /etc/apt/sources.list.d/linbit.list
apt-get update

கட்டுப்படுத்தி

இங்கே எல்லாம் எளிது:

apt-get install linstor-controller linstor-client
systemctl enable linstor-controller
systemctl start linstor-controller

சேமிப்பக முனைகள்

லினக்ஸ் கர்னல் தற்போது மரத்தில் உள்ள கர்னல் தொகுதியுடன் அனுப்பப்படுகிறது DRBD8, துரதிருஷ்டவசமாக இது எங்களுக்கு பொருந்தாது மற்றும் நாம் நிறுவ வேண்டும் DRBD9:

apt-get install drbd-dkms

நடைமுறையில் காண்பிக்கிறபடி, DRBD8 தொகுதி கணினியில் ஏற்றப்பட்டதால், பெரும்பாலான சிரமங்கள் துல்லியமாக எழுகின்றன, DRBD9 அல்ல. அதிர்ஷ்டவசமாக, இதை இயக்குவதன் மூலம் சரிபார்க்க எளிதானது:

modprobe drbd
cat /proc/drbd

நீங்கள் பார்த்தால் பதிப்பு: 9 - என்றால் எல்லாம் நன்றாக இருக்கிறது என்று அர்த்தம் பதிப்பு: 8 - ஏதோ தவறாகிவிட்டது என்று அர்த்தம், காரணங்களைக் கண்டறிய கூடுதல் நடவடிக்கைகளை எடுக்க வேண்டும்.

இப்போது நிறுவுவோம் linstor-satellite и drbd-utils:

apt-get install linstor-satellite drbd-utils
systemctl enable linstor-satellite
systemctl start linstor-satellite

ஒரு கிளஸ்டரை உருவாக்கவும்

சேமிப்பு குளங்கள் மற்றும் முனைகள்

ஒரு பின்தளமாக நாம் எடுப்போம் தின்எல்விஎம், ஏனெனில் இது எளிமையானது மற்றும் ஸ்னாப்ஷாட்களை ஆதரிக்கிறது.
நிறுவ எல்விஎம் 2, நீங்கள் ஏற்கனவே அவ்வாறு செய்யவில்லை என்றால், எங்கள் எல்லா சேமிப்பக முனைகளிலும் ThinLVM பூலை உருவாக்குவோம்:

sudo vgcreate drbdpool /dev/sdb
sudo lvcreate -L 800G -T drbdpool/thinpool

மேலும் அனைத்து செயல்களும் கட்டுப்படுத்தியில் நேரடியாக செய்யப்படலாம்:

எங்கள் முனைகளைச் சேர்ப்போம்:

linstor node create node1 127.0.0.11
linstor node create node2 127.0.0.12
linstor node create node3 127.0.0.13

சேமிப்புக் குளங்களை உருவாக்குவோம்:

linstor storage-pool create lvmthin node1 data drbdpool/thinpool
linstor storage-pool create lvmthin node2 data drbdpool/thinpool
linstor storage-pool create lvmthin node3 data drbdpool/thinpool

இப்போது உருவாக்கப்பட்ட குளங்களைச் சரிபார்க்கலாம்:

linstor storage-pool list

எல்லாம் சரியாக செய்யப்பட்டால், பின்வருவனவற்றைப் பார்க்க வேண்டும்:

+------------------------------------------------ ------------------------------------------------- ----+ | StoragePool | முனை | டிரைவர் | பூல் பெயர் | இலவச திறன் | மொத்த கொள்ளளவு | Snapshots ஆதரிக்கிறது | |------------------------------------------------ ------------------------------------------------- ---| | தரவு | முனை1 | LVM_THIN | drbdpool/thinpool | 64 ஜிபி | 64 ஜிபி | உண்மை | | தரவு | முனை2 | LVM_THIN | drbdpool/thinpool | 64 ஜிபி | 64 ஜிபி | உண்மை | | தரவு | முனை3 | LVM_THIN | drbdpool/thinpool | 64 ஜிபி | 64 ஜிபி | உண்மை | +------------------------------------------------ ------------------------------------------------- ----+

DRBD வளங்கள்

இப்போது எங்கள் புதிய DRBD வளத்தை உருவாக்க முயற்சிப்போம்:

linstor resource-definition create myres
linstor volume-definition create myres 1G
linstor resource create myres --auto-place 2

உருவாக்கப்பட்ட ஆதாரங்களை சரிபார்க்கவும்:

linstor resource list 

+------------------------------------------------ ------------------------------------------------- ---+ | முனை | வளம் | StoragePool | VolumeNr | MinorNr | சாதனப் பெயர் | ஒதுக்கப்பட்டது | பயன்பாடு | மாநிலம் | |------------------------------------------------ ------------------------------------------------- --| | முனை1 | myres | தரவு | 0 | 1084 | /dev/drbd1084 | 52 கிபி | பயன்படுத்தப்படாத | இன்றுவரை | | முனை2 | myres | தரவு | 0 | 1084 | /dev/drbd1084 | 52 கிபி | பயன்படுத்தப்படாத | இன்றுவரை | +------------------------------------------------ ------------------------------------------------- ---+

நன்று! — முதல் இரண்டு முனைகளில் ஆதாரம் உருவாக்கப்பட்டிருப்பதைக் காண்கிறோம், மூன்றாவதாக ஒரு வட்டு இல்லாத வளத்தை உருவாக்க முயற்சி செய்யலாம்:

linstor resource create --diskless node3 myres

முனைகளில் இந்தச் சாதனத்தை நீங்கள் எப்போதும் இவ்வாறு காணலாம் /dev/drbd1084 அல்லது /dev/drbd/by-res/myres/0

Linstor இப்படித்தான் செயல்படுகிறது, மேலும் தகவல்களை நீங்கள் பெறலாம் அதிகாரப்பூர்வ ஆவணங்கள்.

OpenNebula உடன் அதை எவ்வாறு ஒருங்கிணைப்பது என்பதை இப்போது நான் உங்களுக்கு சொல்கிறேன்

OpenNebula ஐ அமைக்கிறது

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

linstor_un

இந்த சிக்கலை தீர்க்க, நான் என் சொந்த இயக்கி எழுதினேன் - linstor_un, இது தற்போது ஒரு செருகுநிரலாகக் கிடைக்கிறது மற்றும் தனித்தனியாக நிறுவப்பட வேண்டும்.

முழு நிறுவலும் முன்பகுதி ஓபன்நெபுலா முனைகளில் மேற்கொள்ளப்படுகிறது மற்றும் கம்ப்யூட் முனைகளில் கூடுதல் செயல்கள் தேவையில்லை.

முதலில், நம்மிடம் இருப்பதை உறுதி செய்ய வேண்டும் jq и லின்ஸ்டர்-கிளையன்ட்:

apt-get install jq linstor-client

அணி linstor node list முனைகளின் பட்டியலைக் காட்ட வேண்டும். அனைத்து OpenNebula கம்ப்யூட் முனைகளும் Linstor கிளஸ்டரில் சேர்க்கப்பட வேண்டும்.

செருகுநிரலைப் பதிவிறக்கி நிறுவவும்:

curl -L https://github.com/OpenNebula/addon-linstor_un/archive/master.tar.gz | tar -xzvf - -C /tmp

mv /tmp/addon-linstor_un-master/vmm/kvm/* /var/lib/one/remotes/vmm/kvm/

mkdir -p /var/lib/one/remotes/etc/datastore/linstor_un
mv /tmp/addon-linstor_un-master/datastore/linstor_un/linstor_un.conf /var/lib/one/remotes/etc/datastore/linstor_un/linstor_un.conf

mv /tmp/addon-linstor_un-master/datastore/linstor_un /var/lib/one/remotes/datastore/linstor_un
mv /tmp/addon-linstor_un-master/tm/linstor_un /var/lib/one/remotes/tm/linstor_un

rm -rf /tmp/addon-linstor_un-master

இப்போது நாம் அதை OpenNebula கட்டமைப்பில் சேர்க்க வேண்டும், இதைச் செய்ய, விவரிக்கப்பட்டுள்ள எளிய வழிமுறைகளைப் பின்பற்றுகிறோம் இங்கே.

பின்னர் ஓபன்நெபுலாவை மறுதொடக்கம் செய்யுங்கள்:

systemctl restart opennebula

எங்கள் டேட்டாஸ்டோர்கள், கணினியைச் சேர்க்கவும்:

cat > system-ds.conf <<EOT
NAME="linstor-system"
TYPE="SYSTEM_DS"
STORAGE_POOL="data"
AUTO_PLACE="2"
CLONE_MODE="snapshot"
CHECKPOINT_AUTO_PLACE="1"
BRIDGE_LIST="node1 node2 node3"
TM_MAD="linstor_un"
EOT

onedatastore create system-ds.conf

மற்றும் படக் கடை:

cat > images-ds.conf <<EOT
NAME="linstor-images"
TYPE="IMAGE_DS"
STORAGE_POOL="data"
AUTO_PLACE="2"
BRIDGE_LIST="node1 node2 node3"
DISK_TYPE="BLOCK"
DS_MAD="linstor_un"
TM_MAD="linstor_un"
EOT

onedatastore create images-ds.conf

  • அளவுரு AUTO_PLACE OpenNebula இல் ஒவ்வொரு புதிய படத்திற்கும் உருவாக்கப்படும் தரவுப் பிரதிகளின் எண்ணிக்கையைக் காட்டுகிறது.
  • அளவுரு CLONE_MODE புதிய மெய்நிகர் இயந்திரங்களை உருவாக்கும் போது படங்கள் எவ்வாறு குளோன் செய்யப்படும் என்பதைக் குறிக்கிறது, snapshot - படத்தின் ஸ்னாப்ஷாட்டை உருவாக்கி, ஸ்னாப்ஷாட்டில் இருந்து ஒரு மெய்நிகர் இயந்திரத்தை வரிசைப்படுத்தும், copy — ஒவ்வொரு மெய்நிகர் இயந்திரத்திற்கும் படத்தின் முழுமையான நகலை உருவாக்கும்.
  • В BRIDGE_LIST பட குளோனிங் செயல்பாடுகளைச் செய்யப் பயன்படுத்தப்படும் அனைத்து முனைகளையும் குறிப்பிட பரிந்துரைக்கப்படுகிறது.

ஆதரிக்கப்படும் அளவுருக்களின் முழுமையான பட்டியலுக்கு, பார்க்கவும் என்னை தெரிந்து கொள் திட்டம்.

இது அமைப்பை நிறைவு செய்கிறது, இப்போது நீங்கள் சில சாதனங்களை அதிகாரப்பூர்வத்திலிருந்து பதிவிறக்கம் செய்யலாம் OpenNebula Marketplace அதிலிருந்து மெய்நிகர் இயந்திரங்களை உருவாக்கவும்.

திட்ட இணைப்பு:
https://github.com/OpenNebula/addon-linstor_un

ஆதாரம்: www.habr.com

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