LINSTOR ማከማቻ እና ከOpenNebula ጋር ያለው ውህደት

LINSTOR ማከማቻ እና ከOpenNebula ጋር ያለው ውህደት

ብዙም ሳይቆይ፣ የ LINBIT ሰዎች አዲሱን የኤስዲኤስ መፍትሄ አቅርበዋል - ሊንስቶር። ይህ በተረጋገጡ ቴክኖሎጂዎች ላይ የተመሰረተ ሙሉ በሙሉ ነፃ ማከማቻ ነው፡ DRBD፣ LVM፣ ZFS። ሊንስተር ቀላል እና በደንብ የተነደፈ አርክቴክቶችን ያጣምራል, ይህም መረጋጋት እና በጣም አስደናቂ ውጤቶችን እንድታገኙ ያስችልዎታል.

ዛሬ ስለ እሱ ትንሽ ማውራት እፈልጋለሁ እና linstor_unን በመጠቀም ከOpenNebula ጋር እንዴት በቀላሉ እንደሚዋሃድ ማሳየት እፈልጋለሁ - ለዚህ ዓላማ ያዘጋጀሁት አዲስ አሽከርካሪ።

Linstor ከ OpenNebula ጋር በማጣመር በራስዎ መሠረተ ልማት ላይ በቀላሉ ሊዘረጋ የሚችል ፈጣን እና አስተማማኝ ደመና እንዲገነቡ ያስችልዎታል።

የሊንስተር አርክቴክቸር

ሊንስቶር በራሱ የፋይል ስርዓትም ሆነ የማጠራቀሚያ ማከማቻ አይደለም፣ ሊንስቶር የኦርኬስትራ ኦርኬስትራ ሲሆን በ 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 ቃላቶች ውስጥ ቀዳሚ ሊሆን ይችላል።

ስለዚህ ለምን ሊንስተር ያስፈልገናል?

ሁሉንም ሀብትን የሚጨምሩ ተግባራትን ለከርነል በአደራ በመስጠት፣ ሊንስቶር የ DRBD ሀብቶችን በቀላሉ በራስ-ሰር እንዲፈጥሩ የሚያስችልዎ መደበኛ የጃቫ መተግበሪያ ነው።
በተመሳሳይ ጊዜ, በእሱ የተፈጠረ እያንዳንዱ ምንጭ የመቆጣጠሪያ-አውሮፕላኑ እና ሌሎች የ DRBD ሀብቶች ሁኔታ ምንም ይሁን ምን, ራሱን የቻለ የ DRBD ክላስተር ይሆናል.

ሊንስተር ሁለት አካላትን ብቻ ያቀፈ ነው-

  • linstor-ተቆጣጣሪ - ሀብቶችን ለመፍጠር እና ለማስተዳደር ኤፒአይ የሚያቀርበው ዋናው መቆጣጠሪያ። በተጨማሪም ከሳተላይቶች ጋር ይገናኛል, በእነሱ ላይ ነፃ ቦታን ይፈትሻል, እና አዳዲስ ሀብቶችን ለመፍጠር እና ለማጥፋት ስራዎችን ይልካል. በአንድ ምሳሌ ውስጥ ይሰራል እና ውስጣዊ (H2) ወይም ውጫዊ (PostgreSQL, MySQL, MariaDB) ሊሆን የሚችል የውሂብ ጎታ ይጠቀማል.
  • linstor-ሳተላይት - በሁሉም የማከማቻ ኖዶች ላይ ተጭኖ ተቆጣጣሪውን ስለ ነፃ ቦታ መረጃ ይሰጣል እንዲሁም አዲስ ጥራዞችን እና DRBD መሳሪያዎችን በላያቸው ላይ ለመፍጠር እና ለማጥፋት ከተቆጣጣሪው የተቀበሉትን ተግባራት ያከናውናል ።

ሊንስቶር በሚከተሉት ቁልፍ ፅንሰ ሀሳቦች ይሰራል።

  • አንጓ - የ DRBD ሀብቶች የሚፈጠሩበት እና የሚጠቀሙበት አካላዊ አገልጋይ።
  • የማከማቻ ገንዳ - የ DRBD ሀብቶች በሚቀመጡበት መስቀለኛ መንገድ ላይ የተፈጠረ LVM ወይም ZFS ገንዳ። ዲስክ የሌለው ገንዳ እንዲሁ ይቻላል - ይህ ዲስክ አልባ ሀብቶች ብቻ የሚቀመጡበት ገንዳ ነው።
  • የመርጃ ፍቺ - የንብረት ፍቺ, በእውነቱ ስሙን እና ሁሉንም ባህሪያቱን የሚገልጽ ምሳሌ ነው.
  • የድምጽ መጠን ትርጉም - የድምጽ መጠን ትርጉም. እያንዳንዱ ሀብት ብዙ ጥራዞችን ሊያካትት ይችላል, እያንዳንዱ መጠን መጠኑ ሊኖረው ይገባል.
  • ምንጭ - የማገጃ መሳሪያን ምሳሌ ፈጥሯል, እያንዳንዱ ሃብት በተወሰነ መስቀለኛ መንገድ እና በአንዳንድ የማከማቻ ገንዳ ውስጥ መቀመጥ አለበት.

የሊንስተር መትከል

ኡቡንቱን እንደ ስርዓት እንድትጠቀም እመክራለሁ, ምክንያቱም. ለእሷ አለች ዝግጁ-የተሰራ PPA:

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

ወይም ዴቢያን፣ ሊንስቶርን ከኦፊሴላዊው የProxmox ማከማቻ ሊጫን የሚችልበት፡-

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-ሳተላይት и drbd-utils:

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

ክላስተር ይፍጠሩ

የማከማቻ ገንዳዎች እና አንጓዎች

እንደ ጀርባ እንወስዳለን ቀጭንLVM, ምክንያቱም በጣም ቀላሉ እና ቅጽበተ-ፎቶዎችን ይደግፋል.
ጫን lvm2እስካሁን ካላደረጉት እና በሁሉም የማከማቻ ኖዶቻችን ላይ 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

ሁሉም ነገር በትክክል ከተሰራ, እንደዚህ ያለ ነገር ማየት አለብን.

------------------------------------------------ ---------------------------------- ----+ | ማከማቻ ገንዳ | መስቀለኛ መንገድ | ሹፌር | የመዋኛ ስም | ነፃ አቅም | አጠቃላይ አቅም | ቅጽበተ-ፎቶዎችን ይደግፋል | | ---------------------------------- ----| | ውሂብ | መስቀለኛ መንገድ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 

------------------------------------------------ ---------------------------------- ---+ | መስቀለኛ መንገድ | ምንጭ | ማከማቻ ገንዳ | ጥራዝNr | 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

ሊንስተር የሚሰራው በዚህ መንገድ ነው፣ከዚህ ተጨማሪ መረጃ ማግኘት ይችላሉ። ኦፊሴላዊ ሰነዶች.

አሁን ከ OpenNebula ጋር እንዴት እንደሚዋሃድ እናገራለሁ

OpenNebula በማዘጋጀት ላይ

በOpenNebula ማዋቀር ሂደት ውስጥ በጣም ጠልቄ አልገባም፣ ምክንያቱም ሁሉም ደረጃዎች በዝርዝር ተገልጸዋል ኦፊሴላዊ ሰነዶች, እንዲያመለክቱ የምመክረው, ስለ OpenNebula ከሊንስተር ጋር ስለመዋሃድ ብቻ እናገራለሁ.

linstor_un

ይህንን ችግር ለመፍታት የራሴን ሾፌር ጻፍኩ - linstor_un, በአሁኑ ጊዜ እንደ ፕለጊን ይገኛል እና በተናጠል መጫን አለበት.

ሙሉው መጫኛ የሚከናወነው ከፊት ለፊት ባለው ክፍት ኔቡላ ኖዶች ላይ ነው እና በኮምፒተር ኖዶች ላይ ተጨማሪ እርምጃዎችን አያስፈልገውም።

በመጀመሪያ ደረጃ, እንዳለን ማረጋገጥ አለብን jq и linstor-ደንበኛ:

apt-get install jq linstor-client

ቡድን linstor node list የአንጓዎች ዝርዝር ማሳየት አለበት. ሁሉም የOpenNebula ስሌት ኖዶች ወደ ሊንስተር ክላስተር መታከል አለባቸው።

ተሰኪውን ያውርዱ እና ይጫኑ፡

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 ውቅር ማከል አለብን, ለዚህም የተገለጹትን ቀላል ደረጃዎች እንከተላለን እዚህ.

ከዚያ 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 የምስል ክሎኒንግ ስራዎችን ለማከናወን የሚያገለግሉትን ሁሉንም አንጓዎች ለመጥቀስ ይመከራል.

ለተሟላ የሚደገፉ አማራጮች ዝርዝር ይመልከቱ README ፕሮጀክት.

ይሄ ማዋቀሩን ያጠናቅቃል, አሁን አንዳንድ መሳሪያዎችን ከኦፊሴላዊው ማውረድ ይችላሉ ኔቡላ የገበያ ቦታን ይክፈቱ እና ከእሱ ምናባዊ ማሽኖችን ይፍጠሩ.

የፕሮጀክት ማገናኛ፡
https://github.com/OpenNebula/addon-linstor_un

ምንጭ: hab.com

አስተያየት ያክሉ