ນີ້ແມ່ນຄໍາສັ່ງ hbal ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
hbal - ຕົວດຸ່ນດ່ຽງກຸ່ມສໍາລັບ Ganeti
ສະຫຼຸບສັງລວມ
hbal {backend options...} [algorithm options...] [ຕົວເລືອກການລາຍງານ...]
hbal - ການປ່ຽນແປງ
ຕົວເລືອກດ້ານຫຼັງ:
{ -m ກຸ່ມ | -L[ ເສັ້ນທາງ ] [-X] | -t ໄຟລ໌ຂໍ້ມູນ | -I ເສັ້ນທາງ }
ຕົວເລືອກສູດການຄິດໄລ່:
[ --max-cpu ອັດຕາສ່ວນ CPU ] [ --min-disk ອັດຕາສ່ວນແຜ່ນ ] [ -l ກໍານົດຂອບເຂດ ] [ -e ຄະແນນ ] [ -g delta ] [
--min-gain- limit threshold ] [ -O ຊື່ ... ] [ --no-disk-moves ] [ --no-instance-moves ] [
-U util-file ] [ --ignore-dynu ] [ --ignore-soft-errors ] [ --ມອນ ແມ່ນ|ບໍ່ ] [ --mond-xen ]
[ --exit-on-missing-mond-data ] [ --evac-mode ] [ --ການເຄື່ອນຍ້າຍທີ່ຖືກຈໍາກັດ ] [
--select-instances inst... ] [ --exclude-instances inst... ]
ທາງເລືອກໃນການລາຍງານ:
[ -C[ ເອກະສານ ] ] [ -p[ ທົ່ງນາ ] ] [ --print-instances ] [ -S ເອກະສານ ] [ -v... | -q ]
ລາຍລະອຽດ
hbal ແມ່ນຕົວດຸ່ນດ່ຽງກຸ່ມທີ່ເບິ່ງສະຖານະປະຈຸບັນຂອງກຸ່ມ (nodes ກັບ
ທັງຫມົດແລະຟຣີ disk ຂອງເຂົາເຈົ້າ, ຄວາມຈໍາ, ແລະອື່ນໆ) ແລະການວາງຕົວຢ່າງແລະການຄິດໄລ່ຊຸດຂອງ
ຂັ້ນຕອນທີ່ຖືກອອກແບບເພື່ອນໍາເອົາກຸ່ມໄປສູ່ສະຖານະທີ່ດີກວ່າ.
ສູດການຄິດໄລ່ທີ່ໃຊ້ໄດ້ຖືກອອກແບບມາເພື່ອໃຫ້ມີຄວາມຫມັ້ນຄົງ (ເຊັ່ນວ່າມັນຈະໃຫ້ທ່ານຜົນໄດ້ຮັບດຽວກັນເມື່ອ
restarting ມັນຈາກກາງຂອງການແກ້ໄຂ) ແລະໄວສົມເຫດສົມຜົນ. ມັນບໍ່ແມ່ນ, ຢ່າງໃດກໍຕາມ,
ຖືກອອກແບບໃຫ້ເປັນສູດການຄິດໄລ່ທີ່ສົມບູນແບບ: ມັນເປັນໄປໄດ້ທີ່ຈະເຮັດໃຫ້ມັນເຂົ້າໄປໃນມຸມໃດ
ມັນບໍ່ສາມາດຊອກຫາການປັບປຸງໄດ້, ເພາະວ່າມັນເບິ່ງພຽງແຕ່ຫນຶ່ງ "ຂັ້ນຕອນ" ຂ້າງຫນ້າ.
ໂປຣແກຣມເຂົ້າເຖິງລັດກຸ່ມຜ່ານ Rapi ຫຼື Luxi. ມັນຍັງຮ້ອງຂໍຂໍ້ມູນໃນໄລຍະ
ເຄືອຂ່າຍຈາກ MonDs ທັງໝົດດ້ວຍຕົວເລືອກ --mond. ໃນປັດຈຸບັນມັນໃຊ້ພຽງແຕ່ຂໍ້ມູນທີ່ຜະລິດໂດຍ
ຕົວເກັບ CPUload.
ໂດຍຄ່າເລີ່ມຕົ້ນ, ໂປຣແກຣມຈະສະແດງການແກ້ໄຂເທື່ອລະກ້າວຕາມທີ່ມັນຖືກຄິດໄລ່, ໃນ a
ຮູບແບບ cryptic ເລັກນ້ອຍ; ສໍາລັບການໄດ້ຮັບບັນຊີລາຍຊື່ຄໍາສັ່ງ Ganeti ຕົວຈິງ, ໃຫ້ໃຊ້ -C ທາງເລືອກ.
ອັລເກີຣິດ
ໂຄງການເຮັດວຽກຢູ່ໃນຂັ້ນຕອນເອກະລາດ; ໃນແຕ່ລະຂັ້ນຕອນ, ພວກເຮົາຄິດໄລ່ການຍ້າຍຕົວຢ່າງທີ່ດີທີ່ສຸດ
ທີ່ເຮັດໃຫ້ຄະແນນກຸ່ມຕໍ່າລົງ.
ປະເພດການເຄື່ອນໄຫວທີ່ເປັນໄປໄດ້ສໍາລັບຕົວຢ່າງແມ່ນການປະສົມປະສານຂອງຄວາມລົ້ມເຫລວ / ການເຄື່ອນຍ້າຍແລະ
replace-disks ດັ່ງທີ່ພວກເຮົາປ່ຽນຫນຶ່ງໃນ instance nodes, ແລະອີກອັນຫນຶ່ງຍັງຄົງຢູ່
(ແຕ່ອາດຈະມີການປ່ຽນແປງພາລະບົດບາດ, ເຊັ່ນ: ຈາກປະຖົມມັນກາຍເປັນມັດທະຍົມ). ບັນຊີລາຍຊື່ແມ່ນ:
· ລົ້ມເຫລວ (f)
· ທົດແທນຮອງ (r)
· ທົດແທນການປະຖົມ, ເປັນການເຄື່ອນໄຫວປະສົມ (f, r, f)
· ລົ້ມເຫຼວແລະທົດແທນການມັດທະຍົມ, ຍັງ composite (f, r)
· ທົດແທນການມັດທະຍົມແລະຄວາມລົ້ມເຫຼວ, ຍັງ composite (r, f)
ພວກເຮົາບໍ່ໄດ້ເຮັດພຽງແຕ່ຄວາມເປັນໄປໄດ້ທີ່ຍັງເຫຼືອຂອງການທົດແທນທັງສອງ nodes (r,f,r,f ຫຼື the
ທຽບເທົ່າ f, r, f, r) ນັບຕັ້ງແຕ່ການເຄື່ອນໄຫວເຫຼົ່ານີ້ຕ້ອງການການຄົ້ນຫາທີ່ຄົບຖ້ວນກວ່າຜູ້ສະຫມັກທັງສອງ
ໂຫນດປະຖົມແລະມັດທະຍົມ, ແລະແມ່ນ O(n*n) ໃນຈໍານວນຂອງ nodes. ນອກຈາກນັ້ນ, ມັນ
ເບິ່ງຄືວ່າບໍ່ໄດ້ໃຫ້ຄະແນນດີກວ່າແຕ່ຈະສົ່ງຜົນໃຫ້ມີການທົດແທນ disk ຫຼາຍ.
ສະຖານທີ່ ຄວາມຕ້ອງການ
ໃນແຕ່ລະຂັ້ນຕອນ, ພວກເຮົາປ້ອງກັນການເຄື່ອນໄຫວຕົວຢ່າງຖ້າຫາກວ່າມັນຈະເຮັດໃຫ້:
· node ທີ່ຈະເຂົ້າໄປໃນສະຖານະຄວາມລົ້ມເຫຼວ N+1
· ເປັນຕົວຢ່າງເພື່ອຍ້າຍໄປຫາ node ອອບໄລນ໌ (ຂໍ້ອອບໄລນ໌ແມ່ນອ່ານຈາກກຸ່ມ
ຫຼືປະກາດດ້ວຍ -O; nodes drained ພິຈາລະນາ offline)
· ການຂັດແຍ້ງໂດຍອີງໃສ່ແທັກການຍົກເວັ້ນ (ແທັກການຍົກເວັ້ນແມ່ນອ່ານຈາກກຸ່ມ ແລະ/ຫຼືກຳນົດ
ຜ່ານ --exclusion-tags ທາງເລືອກ)
· ອັດຕາສ່ວນ vcpu/pcpu ສູງສຸດທີ່ຈະເກີນ (ປັບຄ່າຜ່ານ --max-cpu)
· ອັດຕາສ່ວນບໍ່ເສຍຂອງແຜ່ນ min ໄປຂ້າງລຸ່ມນີ້ຂອບເຂດຈໍາກັດການຕັ້ງຄ່າ (configured ຜ່ານ --min-disk)
ປິດ ຄະແນນ
ດັ່ງທີ່ໄດ້ກ່າວກ່ອນ, ສູດການຄິດໄລ່ພະຍາຍາມຫຼຸດຜ່ອນຄະແນນກຸ່ມໃນແຕ່ລະຂັ້ນຕອນ. ໃນປັດຈຸບັນ
ຄະແນນນີ້ຖືກຄິດໄລ່ເປັນຜົນລວມນ້ໍາຫນັກຂອງອົງປະກອບດັ່ງຕໍ່ໄປນີ້:
·ມາດຕະຖານ deviation ຂອງເປີເຊັນຂອງຄວາມຊົງຈໍາຟຣີ
·ມາດຕະຖານ deviation ຂອງເປີເຊັນຂອງຄວາມຊົງຈໍາສະຫງວນ
·ຜົນລວມຂອງອັດຕາສ່ວນຂອງຄວາມຊົງຈໍາສະຫງວນ
·ມາດຕະຖານ deviation ຂອງເປີເຊັນຂອງ free disk
·ນັບຂອງ nodes ລົ້ມເຫລວ N+1 ກວດສອບ
· ການນັບຂອງຕົວຢ່າງທີ່ມີຊີວິດຢູ່ (ບໍ່ວ່າຈະເປັນປະຖົມ ຫຼືມັດທະຍົມ) ໃນໂນດອອບໄລນ໌; ໃນ
ຄວາມຮູ້ສຶກຂອງ hbal (ແລະ htools ອື່ນໆ) drained nodes ຖືກພິຈາລະນາ offline
·ນັບຂອງຕົວຢ່າງທີ່ມີຊີວິດຢູ່ (ເປັນຕົ້ນຕໍ) ໃນ nodes ອອບໄລນ໌; ນີ້ແຕກຕ່າງຈາກຂ້າງເທິງ
metric ໂດຍການຊ່ວຍເຫຼືອການລົ້ມເຫລວຂອງຕົວຢ່າງດັ່ງກ່າວໃນ 2-node clusters
·ມາດຕະຖານ deviation ຂອງອັດຕາສ່ວນຂອງ virtual-to-physical cpus (ສໍາລັບຕົວຢ່າງຕົ້ນຕໍຂອງ
node)
·ມາດຕະຖານ deviation ຂອງສ່ວນຫນຶ່ງຂອງ spindles ທີ່ມີຢູ່ (ໃນຮູບແບບທີ່ອຸທິດຕົນ,
spindles ເປັນຕົວແທນ spindles ທາງດ້ານຮ່າງກາຍ; ຖ້າບໍ່ດັ່ງນັ້ນມາດຕະການທີ່ເກີນການຈອງນີ້ສໍາລັບ IO
ໂຫຼດ, ແລະປັດໄຈ oversubscription ໄດ້ຖືກພິຈາລະນາໃນເວລາທີ່ຄິດໄລ່ຈໍານວນຂອງ
spindles ທີ່ມີຢູ່)
·ມາດຕະຖານ deviation ຂອງການໂຫຼດໄດນາມິກໃນ nodes, ສໍາລັບ cpus, ຫນ່ວຍຄວາມຈໍາ, disk ແລະເຄືອຂ່າຍ
· ການບ່ຽງເບນມາດຕະຖານຂອງການໂຫຼດ CPU ທີ່ສະໜອງໃຫ້ໂດຍ MonD
·ການນັບຂອງຕົວຢ່າງທີ່ມີປະຖົມແລະມັດທະຍົມໃນໂດເມນທີ່ລົ້ມເຫລວດຽວກັນ
ໜ່ວຍຄວາມຈຳຟຣີ ແລະຄ່າຂອງແຜ່ນຟຣີຊ່ວຍຮັບປະກັນວ່າທຸກ nodes ມີຄວາມສົມດູນໃນບາງສ່ວນ
ການນໍາໃຊ້ຊັບພະຍາກອນຂອງເຂົາເຈົ້າ. ຫນ່ວຍຄວາມຈໍາທີ່ສະຫງວນໄວ້ຊ່ວຍໃຫ້ແນ່ໃຈວ່າ nodes ບາງຢ່າງ
ມີຄວາມສົມດູນໃນການຖືຕົວຢ່າງທີສອງ, ແລະບໍ່ມີ node ຮັກສາຄວາມຊົງຈໍາຫຼາຍເກີນໄປ
ສໍາລັບ N+1. ແລະສຸດທ້າຍ, ອັດຕາສ່ວນ N + 1 ຊ່ວຍແນະນໍາ algorithm ໄປສູ່ການກໍາຈັດ
N+1 ລົ້ມເຫລວ, ຖ້າເປັນໄປໄດ້.
ຍົກເວັ້ນການລົ້ມເຫລວ N+1, ການນັບຕົວຢ່າງອອຟໄລ, ແລະການລະເມີດໂດເມນທີ່ລົ້ມເຫລວ
counts, ພວກເຮົາໃຊ້ມາດຕະຖານ deviation ນັບຕັ້ງແຕ່ເມື່ອນໍາໃຊ້ກັບຄ່າພາຍໃນຂອບເຂດຄົງທີ່ (ພວກເຮົາ
ໃຊ້ອັດຕາສ່ວນທີ່ສະແດງອອກເປັນຄ່າລະຫວ່າງສູນແລະຫນຶ່ງ) ມັນໃຫ້ຜົນໄດ້ຮັບທີ່ສອດຄ່ອງກັນ
metrics ທັງຫມົດ (ມີບາງບັນຫາຂະຫນາດນ້ອຍທີ່ກ່ຽວຂ້ອງກັບວິທີການທີ່ແຕກຕ່າງກັນ, ແຕ່ມັນເຮັດວຽກ
ໂດຍທົ່ວໄປແລ້ວ). ຄ່າປະເພດ 'ນັບ' ຈະມີຄະແນນສູງກວ່າແລະດັ່ງນັ້ນຈຶ່ງຈະມີຄວາມສໍາຄັນຫຼາຍ
ສໍາລັບການດຸ່ນດ່ຽງ; ດັ່ງນັ້ນສິ່ງເຫຼົ່ານີ້ແມ່ນດີກວ່າສໍາລັບຂໍ້ຈໍາກັດທີ່ຍາກ (ເຊັ່ນ: evacuating nodes ແລະ
ການແກ້ໄຂຄວາມລົ້ມເຫຼວ N+1). ຕົວຢ່າງ, ຕົວຢ່າງອອບໄລນ໌ນັບ (ເຊັ່ນ: ຈໍານວນ
instances live on offline nodes) ຈະເຮັດໃຫ້ algorithm ເຄື່ອນຍ້າຍ instances ຢ່າງຈິງຈັງ
ຫ່າງຈາກ nodes ອອຟໄລ. ນີ້, ບວກໃສ່ກັບຂໍ້ຈໍາກັດກ່ຽວກັບການບັນຈຸເຂົ້າຮຽນໂດຍອອຟໄລ
nodes, ຈະເຮັດໃຫ້ການຍົກຍ້າຍຂອງ nodes ດັ່ງກ່າວ.
ຄ່າການໂຫຼດແບບໄດນາມິກຈໍາເປັນຕ້ອງໄດ້ອ່ານຈາກໄຟລ໌ພາຍນອກ (Ganeti ບໍ່ໄດ້ສະຫນອງ
ພວກມັນ), ແລະຖືກຄິດໄລ່ສໍາລັບແຕ່ລະ node ເປັນ: ຜົນລວມຂອງການໂຫຼດ CPU ຕົວຢ່າງຕົ້ນຕໍ, ຜົນລວມຂອງປະຖົມ
instance memory load, ຜົນລວມຂອງການໂຫຼດແຜ່ນ instance ຕົ້ນຕໍແລະມັດທະຍົມ (ເປັນ DRBD ສ້າງ
ຂຽນການໂຫຼດໃສ່ຂໍ້ສອງເຊັ່ນດຽວກັນໃນກໍລະນີປົກກະຕິແລະໃນສະຖານະການຊຸດໂຊມຍັງອ່ານ
load), ແລະຜົນລວມຂອງການໂຫຼດເຄືອຂ່າຍຕົວຢ່າງຕົ້ນຕໍ. ຕົວຢ່າງຂອງວິທີການສ້າງເຫຼົ່ານີ້
ຄ່າສໍາລັບການປ້ອນຂໍ້ມູນໄປຫາ hbal ແມ່ນເພື່ອຕິດຕາມລາຍຊື່ xm ສໍາລັບຕົວຢ່າງຕໍ່ມື້ແລະໂດຍ
ການຄິດໄລ່ delta ຂອງຄ່າ cpu, ແລະໃຫ້ອາຫານທີ່ຜ່ານການ -U ທາງເລືອກສໍາລັບຕົວຢ່າງທັງຫມົດ
(ແລະຮັກສາຕົວວັດແທກອື່ນໆເປັນອັນດຽວ). ສໍາລັບ algorithm ເຮັດວຽກ, ທັງຫມົດທີ່ຈໍາເປັນແມ່ນ
ວ່າຄ່າແມ່ນສອດຄ່ອງສໍາລັບ metric ໃນທົ່ວທຸກ instance (ເຊັ່ນ: ການນໍາໃຊ້ instance ທັງຫມົດ
cpu% ເພື່ອລາຍງານການນໍາໃຊ້ cpu, ແລະບໍ່ແມ່ນບາງສິ່ງບາງຢ່າງທີ່ກ່ຽວຂ້ອງກັບຈໍານວນຂອງວິນາທີ CPU ທີ່ໃຊ້ຖ້າຫາກວ່າ
CPU ແມ່ນແຕກຕ່າງກັນ), ແລະວ່າພວກມັນຖືກປັບປຸງໃຫ້ເປັນປົກກະຕິລະຫວ່າງສູນແລະຫນຶ່ງ. ໃຫ້ສັງເກດວ່າມັນ
ແນະນໍາໃຫ້ບໍ່ມີສູນເປັນຄ່າການໂຫຼດສໍາລັບ metric instance ໃດໆນັບຕັ້ງແຕ່ນັ້ນມາ
ຕົວຢ່າງທີສອງບໍ່ສົມດຸນກັນດີ.
CPUload ຈາກຕົວເກັບຂໍ້ມູນຂອງ MonD ຈະຖືກໃຊ້ພຽງແຕ່ຖ້າ MonD ທັງໝົດກຳລັງແລ່ນຢູ່,
ຖ້າບໍ່ດັ່ງນັ້ນມັນຈະບໍ່ມີຜົນຕໍ່ຄະແນນກຸ່ມ. ເນື່ອງຈາກພວກເຮົາບໍ່ສາມາດຊອກຫາການໂຫຼດ CPU ຂອງແຕ່ລະຄົນ
ຕົວຢ່າງ, ພວກເຮົາສາມາດສົມມຸດວ່າການໂຫຼດ CPU ຂອງຕົວຢ່າງແມ່ນອັດຕາສ່ວນກັບຈໍານວນຂອງ
vcpus ຂອງມັນ. ດ້ວຍ heuristic ນີ້, ຕົວຢ່າງຈາກ nodes ທີ່ມີການໂຫຼດ CPU ສູງຈະມີແນວໂນ້ມທີ່ຈະຍ້າຍອອກໄປ
ກັບ nodes ທີ່ມີການໂຫຼດ CPU ຫນ້ອຍ.
ໃນກຸ່ມທີ່ສົມດູນກັນຢ່າງສົມບູນ (ທຸກຂໍ້ມີຂະໜາດດຽວກັນ, ທັງໝົດມີຂະໜາດດຽວກັນ ແລະ
ແຜ່ຂະຫຍາຍໃນທົ່ວ nodes ເທົ່າທຽມກັນ), ຄ່າສໍາລັບ metrics ທັງຫມົດຈະເປັນສູນ, ກັບ
ຂໍ້ຍົກເວັ້ນຂອງອັດຕາສ່ວນທັງຫມົດຂອງຫນ່ວຍຄວາມຈໍາສະຫງວນ. ນີ້ບໍ່ໄດ້ເກີດຂຶ້ນເລື້ອຍໆເກີນໄປໃນ
ການປະຕິບັດ :)
ອອຟໄລ ການຕິດຕັ້ງ
ເນື່ອງຈາກສະບັບ Ganeti ປະຈຸບັນບໍ່ໄດ້ລາຍງານຄວາມຊົງຈໍາທີ່ໃຊ້ໂດຍອອບໄລນ໌ (ລົງ) ຕົວຢ່າງ,
ການບໍ່ສົນໃຈສະຖານະການແລ່ນຂອງຕົວຢ່າງຈະເຮັດໃຫ້ການຄິດໄລ່ຜິດ. ສໍາລັບເຫດຜົນນີ້, ໄດ້
algorithm ລົບຂະຫນາດຫນ່ວຍຄວາມຈໍາຂອງ down instances ຈາກ free node memory ຂອງເຂົາເຈົ້າ
node ຕົ້ນຕໍ, ໃນຜົນກະທົບຈໍາລອງການເລີ່ມຕົ້ນຂອງຕົວຢ່າງດັ່ງກ່າວ.
ສະເພາະ TAGS
ກົນໄກການຍົກເວັ້ນ tags ຖືກອອກແບບມາເພື່ອປ້ອງກັນຕົວຢ່າງທີ່ເຮັດວຽກດຽວກັນ
(ເຊັ່ນ: ສອງເຄື່ອງແມ່ຂ່າຍ DNS) ທີ່ຈະລົງຈອດຢູ່ໃນ node ດຽວກັນ, ເຊິ່ງຈະເຮັດໃຫ້ node ທີ່ກ່ຽວຂ້ອງເປັນ
SPOF ສໍາລັບການບໍລິການທີ່ໃຫ້.
ມັນເຮັດວຽກໂດຍການແທັກຕົວຢ່າງທີ່ມີແທັກທີ່ແນ່ນອນແລະຫຼັງຈາກນັ້ນສ້າງແຜນທີ່ການຍົກເວັ້ນໂດຍອີງໃສ່
ເຫຼົ່ານີ້. ແທັກໃດທີ່ຖືກນໍາໃຊ້ຕົວຈິງແມ່ນຖືກຕັ້ງຄ່າໂດຍຜ່ານເສັ້ນຄໍາສັ່ງ (ທາງເລືອກ
--exclusion-tags) ຫຼືໂດຍການເພີ່ມພວກມັນໃສ່ແທັກກຸ່ມ:
--exclusion-tags=a,b
ນີ້ຈະເຮັດໃຫ້ tags ຕົວຢ່າງທັງຫມົດຂອງແບບຟອມ ເປັນ:*, b:* ໄດ້ຮັບການພິຈາລະນາສໍາລັບການ
ແຜນທີ່ຍົກເວັ້ນ
ກຸ່ມ tags htols:iextags:a, htols:iextags: ຂ
ນີ້ຈະເຮັດໃຫ້ແທັກຕົວຢ່າງ ເປັນ:*, b:* ຖືກພິຈາລະນາສໍາລັບແຜນທີ່ການຍົກເວັ້ນ. ເພີ່ມເຕີມ
ແນ່ນອນ, ຄຳຕໍ່ທ້າຍຂອງແທັກກຸ່ມເລີ່ມຕົ້ນດ້ວຍ htools:iextags: ຈະກາຍເປັນ
ຄໍານໍາຫນ້າຂອງ tags ການຍົກເວັ້ນ.
ທັງສອງຮູບແບບຂ້າງເທິງນີ້ຫມາຍຄວາມວ່າສອງຕົວຢ່າງທັງສອງມີ (ເຊັ່ນ) ແທັກ a:foo or b:bar
ຈະບໍ່ສິ້ນສຸດໃນ node ດຽວກັນ.
ການເຄື່ອນໄຫວ TAGS
ຖ້າ Ganeti ຖືກນໍາໄປໃຊ້ຢູ່ໃນກຸ່ມທີ່ແຕກແຍກກັນ, ການເຄື່ອນຍ້າຍອາດຈະບໍ່ເປັນໄປໄດ້ລະຫວ່າງ
nodes ທັງຫມົດຂອງກຸ່ມ node. ຕົວຢ່າງຫນຶ່ງຂອງສະຖານະການດັ່ງກ່າວແມ່ນການຍົກລະດັບ hypervisor
node ໂດຍ node. ເພື່ອເຮັດໃຫ້ hbal ຮູ້ກ່ຽວກັບຂໍ້ຈໍາກັດເຫຼົ່ານັ້ນ, ແທັກກຸ່ມຕໍ່ໄປນີ້ແມ່ນ
ໃຊ້ແລ້ວ.
ກຸ່ມ tags htols:migration:a, htools:migration:b, ແລະອື່ນໆ
ນີ້ເຮັດໃຫ້ແທັກ node ຂອງແບບຟອມ ເປັນ:*, b:*, ແລະອື່ນໆແມ່ນຖືວ່າເປັນການເຄື່ອນຍ້າຍ
ຂໍ້ຈຳກັດ. ຫຼາຍທີ່ຊັດເຈນ, ຄໍາຕໍ່ທ້າຍຂອງແທັກກຸ່ມເລີ່ມຕົ້ນດ້ວຍ
htools:ການເຄື່ອນຍ້າຍ: ຈະກາຍເປັນຄໍານໍາຫນ້າຂອງແທັກການເຄື່ອນຍ້າຍ. ພຽງແຕ່ເຫຼົ່ານັ້ນ
ການເຄື່ອນຍ້າຍຈະຖືກພິຈາລະນາບ່ອນທີ່ແທັກການເຄື່ອນຍ້າຍທັງຫມົດຂອງແຫຼ່ງ
node ຍັງມີຢູ່ໃນ node ເປົ້າຫມາຍ.
ກຸ່ມ tags htools:allowmigration:x::y ສໍາລັບການ ການເຄື່ອນຍ້າຍ tags x ແລະ y
ນີ້ຍືນຍັນວ່າ node taged y ແມ່ນສາມາດໄດ້ຮັບຕົວຢ່າງໃນລັກສະນະດຽວກັນກັບຖ້າຫາກວ່າ
ພວກເຂົາເຈົ້າມີ x ແທັກ.
ດັ່ງນັ້ນໃນກໍລະນີທີ່ງ່າຍດາຍຂອງການຍົກລະດັບ hypervisor, tagging nodes ທັງຫມົດທີ່ໄດ້
ອັບເກຣດດ້ວຍແທັກການເຄື່ອນຍ້າຍພຽງພໍ. ໃນສະຖານະການທີ່ສັບສົນຫຼາຍ, ມັນແມ່ນສະເຫມີໄປ
ສາມາດນໍາໃຊ້ແທັກການເຄື່ອນຍ້າຍທີ່ແຕກຕ່າງກັນສໍາລັບແຕ່ລະ hypervisor ທີ່ໃຊ້ແລະລະບຸຢ່າງຊັດເຈນ
ອະນຸຍາດໃຫ້ທິດທາງການເຄື່ອນຍ້າຍໂດຍການ htools:ອະນຸຍາດໃຫ້ຍົກຍ້າຍ: ແທັກ.
LOCATION TAGS
ພາຍໃນກຸ່ມ node, ບາງ nodes ອາດມີແນວໂນ້ມທີ່ຈະລົ້ມເຫລວພ້ອມກັນເນື່ອງຈາກ a
ສາເຫດທົ່ວໄປຂອງຄວາມຜິດພາດ (ຕົວຢ່າງ, ຖ້າພວກເຂົາແບ່ງປັນຫນ່ວຍສະຫນອງພະລັງງານດຽວກັນ). Ganeti ສາມາດ
ໄດ້ຮັບຮູ້ເຖິງສາເຫດທົ່ວໄປຂອງຄວາມລົ້ມເຫລວໂດຍການແທັກ.
ກຸ່ມ tags htools:nlocation:a, htools:nlocation: ຂ, ແລະອື່ນໆ
ນີ້ເຮັດໃຫ້ແທັກ node ຂອງແບບຟອມ ເປັນ:*, b:*, ແລະອື່ນໆໄດ້ຮັບການພິຈາລະນາທີ່ມີທົ່ວໄປ
ສາເຫດຂອງຄວາມລົ້ມເຫຼວ.
ຕົວຢ່າງທີ່ມີ node ປະຖົມແລະມັດທະຍົມທີ່ມີສາເຫດທົ່ວໄປຂອງຄວາມລົ້ມເຫຼວແມ່ນພິຈາລະນາ
ຖືກຈັດໃສ່ບໍ່ດີ. ໃນຂະນະທີ່ການຈັດວາງດັ່ງກ່າວໄດ້ຖືກອະນຸຍາດໃຫ້ສະເຫມີ, ພວກເຂົາເຈົ້ານັບຫຼາຍຕໍ່ກັບການ
ຄະແນນກຸ່ມ.
OPTIONS
ທາງເລືອກທີ່ສາມາດໄດ້ຮັບການຜ່ານໂຄງການດັ່ງຕໍ່ໄປນີ້:
-C, --print-ຄໍາສັ່ງ
ພິມລາຍການຄໍາສັ່ງໃນຕອນທ້າຍຂອງການແລ່ນ. ໂດຍບໍ່ມີການນີ້, ໂຄງການພຽງແຕ່ຈະ
ສະແດງໃຫ້ເຫັນຜົນຜະລິດທີ່ສັ້ນກວ່າ, ແຕ່ເປັນລະຫັດລັບ.
ໃຫ້ສັງເກດວ່າລາຍການຍ້າຍຈະຖືກແບ່ງອອກເປັນຂັ້ນຕອນເອກະລາດ, ເອີ້ນວ່າ "ວຽກ",
ແຕ່ພຽງແຕ່ສໍາລັບການກວດກາສາຍຕາ, ບໍ່ແມ່ນສໍາລັບການຂະຫນານຕົວຈິງ. ມັນບໍ່ແມ່ນ
ເປັນໄປໄດ້ທີ່ຈະຂະຫນານເຫຼົ່ານີ້ໂດຍກົງເມື່ອປະຕິບັດຜ່ານຄໍາສັ່ງ "gnt-instance",
ເນື່ອງຈາກຄໍາສັ່ງປະສົມ (ຕົວຢ່າງເຊັ່ນການລົ້ມເຫລວແລະແທນທີ່ດິດ) ຕ້ອງໄດ້ຮັບການປະຕິບັດ
ລໍາດັບ. ການປະຕິບັດຂະຫນານແມ່ນເປັນໄປໄດ້ພຽງແຕ່ໃນເວລາທີ່ການນໍາໃຊ້ backend Luxi ແລະ
-L ທາງເລືອກ.
ສູດການຄິດໄລ່ສໍາລັບການແຍກຍ້າຍອອກເປັນ jobsets ແມ່ນໂດຍການສະສົມການເຄື່ອນໄຫວຈົນກ່ວາ
ການເຄື່ອນໄຫວຕໍ່ໄປແມ່ນການສໍາພັດຂໍ້ທີ່ສໍາຜັດແລ້ວໂດຍການຍ້າຍໃນປັດຈຸບັນ; ນີ້ຫມາຍຄວາມວ່າພວກເຮົາ
ບໍ່ສາມາດດໍາເນີນການຂະຫນານ (ເນື່ອງຈາກການຈັດສັນຊັບພະຍາກອນໃນ Ganeti) ແລະດັ່ງນັ້ນພວກເຮົາເລີ່ມຕົ້ນ
ຊຸດວຽກໃໝ່.
-p, --print-nodes
ພິມສະຖານະກ່ອນ ແລະຫຼັງໂນດ, ໃນຮູບແບບທີ່ອອກແບບມາເພື່ອໃຫ້ຜູ້ໃຊ້ສາມາດ
ເຂົ້າໃຈຕົວກໍານົດການທີ່ສໍາຄັນທີ່ສຸດຂອງ node. ເບິ່ງຫນ້າຜູ້ຊາຍ ເຄື່ອງມື(1) ສໍາລັບ
ລາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບທາງເລືອກນີ້.
--print-instances
ພິມແຜນທີ່ຕົວຢ່າງກ່ອນ ແລະຫຼັງ. ອັນນີ້ມີປະໂຫຍດໜ້ອຍກວ່າເນື່ອງຈາກສະຖານະຂອງໂຫນດ,
ແຕ່ມັນສາມາດຊ່ວຍໃນການເຂົ້າໃຈການເຄື່ອນຍ້າຍຕົວຢ່າງ.
-O ຊື່
ທາງເລືອກນີ້ (ທີ່ສາມາດໄດ້ຮັບຫຼາຍຄັ້ງ) ຈະຫມາຍ nodes ເປັນ ອອຟໄລ.
ນີ້ຫມາຍຄວາມວ່າສອງສາມຢ່າງ:
· ຕົວຢ່າງຈະບໍ່ຖືກຈັດໃສ່ໃນຂໍ້ເຫຼົ່ານີ້, ບໍ່ແມ່ນແຕ່ຊົ່ວຄາວ; ຕົວຢ່າງ ທົດແທນ
ຕົ້ນຕໍ ການຍ້າຍບໍ່ສາມາດໃຊ້ໄດ້ຖ້າ node ທີສອງແມ່ນອອຟໄລ, ນັບຕັ້ງແຕ່ການເຄື່ອນໄຫວນີ້
ຮຽກຮ້ອງໃຫ້ມີຄວາມລົ້ມເຫລວ.
· ຂໍ້ເຫຼົ່ານີ້ຈະບໍ່ຖືກລວມເຂົ້າໃນການຄິດໄລ່ຄະແນນ (ຍົກເວັ້ນ
ເປີເຊັນຂອງຕົວຢ່າງໃນ nodes ອອບໄລນ໌)
ໃຫ້ສັງເກດວ່າ algorithm ຍັງຈະຫມາຍເປັນ nodes ອອບໄລນ໌ທີ່ລາຍງານໂດຍ RAPI
ເປັນເຊັ່ນນັ້ນ, ຫຼືວ່າມີ "?" ໃນການປ້ອນຂໍ້ມູນໂດຍອີງໃສ່ໄຟລ໌ໃນຊ່ອງຕົວເລກໃດໆ.
-e ຄະແນນ, --ຄະແນນນາທີ=*ຄະແນນ*
ຕົວກໍານົດການນີ້ຊີ້ໃຫ້ເຫັນເຖິງຫຼາຍປານໃດຂ້າງເທິງ N +1 ຜູກມັດຄະແນນກຸ່ມສາມາດໃຫ້ພວກເຮົາ
ມີຄວາມສຸກກັບການປ່ຽນແປງການຄິດໄລ່ໃນສອງວິທີ:
· ຖ້າກຸ່ມມີຄະແນນເບື້ອງຕົ້ນຕໍ່າກວ່າຄ່ານີ້, ພວກເຮົາບໍ່ເຂົ້າ
algorithm ທັງຫມົດ, ແລະອອກດ້ວຍຜົນສໍາເລັດ
· ໃນລະຫວ່າງການຂະບວນການຊ້ໍາ, ຖ້າຫາກວ່າພວກເຮົາບັນລຸໄດ້ຄະແນນຕ່ໍາກ່ວາຄ່ານີ້, ພວກເຮົາອອກ
ສູດການຄິດໄລ່
ຄ່າເລີ່ມຕົ້ນຂອງພາລາມິເຕີໃນປັດຈຸບັນແມ່ນ 1e-9 (ຖືກເລືອກໂດຍທາງກົງ).
-g delta, --min-gain=*delta*
ເນື່ອງຈາກວ່າ algorithm ການດຸ່ນດ່ຽງບາງຄັ້ງສາມາດສົ່ງຜົນໃຫ້ມີການປັບປຸງຂະຫນາດນ້ອຍຫຼາຍ,
ທີ່ນໍາເອົາຜົນປະໂຫຍດຫນ້ອຍທີ່ພວກເຂົາມີຄ່າໃຊ້ຈ່າຍໃນເວລາຍົກຍ້າຍ, ພາລາມິເຕີນີ້ (ຄ່າເລີ່ມຕົ້ນ
ເຖິງ 0.01) ສະແດງໃຫ້ເຫັນເຖິງການໄດ້ຮັບຕໍາ່ສຸດທີ່ພວກເຮົາຕ້ອງການໃນລະຫວ່າງຂັ້ນຕອນ, ເພື່ອສືບຕໍ່
ການດຸ່ນດ່ຽງ.
--min-gain-limit=*ເກນ*
ຕົວເລືອກການເພີ່ມຂັ້ນຕ່ຳຂ້າງເທິງຈະມີຜົນພຽງແຕ່ຖ້າຄະແນນກຸ່ມຢູ່ແລ້ວ
ຕ່ໍາກວ່າ threshold (ຄ່າເລີ່ມຕົ້ນເປັນ 0.1). ເຫດຜົນທີ່ຢູ່ເບື້ອງຫລັງການຕັ້ງຄ່ານີ້ແມ່ນຢູ່ທີ່
ຄະແນນກຸ່ມທີ່ສູງ (ກຸ່ມທີ່ດຸ່ນດ່ຽງບໍ່ດີ), ພວກເຮົາບໍ່ຕ້ອງການຍົກເລີກການດຸ່ນດ່ຽງຄືນ.
ໄວເກີນໄປ, ເນື່ອງຈາກວ່າຜົນກໍາໄລຕໍ່ມາອາດຈະຍັງມີຄວາມສໍາຄັນ. ຢ່າງໃດກໍຕາມ, ພາຍໃຕ້ການ
threshold, ການເພີ່ມຂຶ້ນຂອງທັງຫມົດແມ່ນພຽງແຕ່ມູນຄ່າ threshold, ດັ່ງນັ້ນພວກເຮົາສາມາດອອກຈາກໄວ.
--no-disk-moves
ພາລາມິເຕີນີ້ປ້ອງກັນບໍ່ໃຫ້ hbal ໃຊ້ການຍ້າຍແຜ່ນ (ເຊັ່ນ "gnt-instance
replace-disks") ການດໍາເນີນງານ. ນີ້ຈະສົ່ງຜົນໃຫ້ມີການດຸ່ນດ່ຽງໄວຫຼາຍ, ແຕ່ວ່າ
ແນ່ນອນ, ການປັບປຸງແມ່ນຈໍາກັດ. ມັນຂຶ້ນກັບຜູ້ໃຊ້ທີ່ຈະຕັດສິນໃຈວ່າຈະໃຊ້ເວລາໃດ
ຫນຶ່ງຫຼືອື່ນ.
--no-instance-moves
ພາລາມິເຕີນີ້ປ້ອງກັນບໍ່ໃຫ້ hbal ໃຊ້ການເຄື່ອນຍ້າຍຕົວຢ່າງ (ເຊັ່ນ "gnt-instance
migrate/failover") ການດໍາເນີນງານ. ນີ້ຈະໃຊ້ພຽງແຕ່ການທົດແທນ disk ຊ້າ
ການດໍາເນີນງານ, ແລະຍັງຈະສະຫນອງການດຸ່ນດ່ຽງທີ່ຮ້າຍແຮງກວ່າເກົ່າ, ແຕ່ສາມາດເປັນປະໂຫຍດຖ້າຫາກວ່າການເຄື່ອນຍ້າຍ
ກໍລະນີທີ່ອ້ອມຮອບຖືວ່າບໍ່ປອດໄພ ຫຼື ບໍ່ມັກ.
--evac-mode
ພາລາມິເຕີນີ້ຈໍາກັດບັນຊີລາຍຊື່ຂອງຕົວຢ່າງທີ່ພິຈາລະນາສໍາລັບການຍ້າຍໄປຫາອັນ
ດໍາລົງຊີວິດຢູ່ໃນຂໍ້ offline/drained. ມັນສາມາດຖືກນໍາໃຊ້ເປັນການທົດແທນ (ຈໍານວນຫລາຍ) ສໍາລັບ
Ganeti ຂອງຕົນເອງ gnt-node ຍົກເລີກ, ໂດຍສັງເກດວ່າມັນບໍ່ໄດ້ຮັບປະກັນຢ່າງເຕັມທີ່
ການອົບພະຍົບ.
--ການເຄື່ອນຍ້າຍທີ່ຖືກຈໍາກັດ
ພາລາມິເຕີນີ້ບໍ່ອະນຸຍາດໃຫ້ມີການປ່ຽນແທນການຍ້າຍຂັ້ນຕົ້ນ (frf), ເຊັ່ນດຽວກັນກັບສິ່ງເຫຼົ່ານັ້ນ
replace-and-failover moves (rf) ບ່ອນທີ່ node ຕົ້ນຕໍຂອງ instance ບໍ່ແມ່ນ
ລະບາຍ. ຖ້າໃຊ້ຮ່ວມກັນກັບທາງເລືອກ --evac-mode, ການເຄື່ອນຍ້າຍພຽງແຕ່ນັ້ນ
hbal will do ແມ່ນການຍົກຍ້າຍຂອງຕົວຢ່າງອອກຈາກ node drained. ນີ້ສາມາດເປັນປະໂຫຍດຖ້າຫາກວ່າ
ໃນ ລະ ຫວ່າງ ການ reinstall ການ ເຄື່ອນ ຍ້າຍ ລະ ບົບ ປະ ຕິ ບັດ ການ ພື້ນ ຖານ ແມ່ນ ເປັນ ໄປ ໄດ້ ພຽງ ແຕ່ ຈາກ
OS ເກົ່າກັບ OS ໃຫມ່. ຫມາຍເຫດ, ຢ່າງໃດກໍຕາມ, ທີ່ປົກກະຕິແລ້ວການນໍາໃຊ້ tags ການເຄື່ອນຍ້າຍແມ່ນ
ທາງເລືອກທີ່ດີກວ່າ.
--select-instances=*ຕົວຢ່າງ*
ພາຣາມິເຕີນີ້ໝາຍເອົາຕົວຢ່າງທີ່ໃຫ້ໄວ້ (ເປັນລາຍການທີ່ຂັ້ນດ້ວຍເຄື່ອງໝາຍຈຸດ) ເປັນອັນດຽວ
ຄົນທີ່ຖືກຍ້າຍໃນລະຫວ່າງການດຸ່ນດ່ຽງຄືນ.
--exclude-instances=*ຕົວຢ່າງ*
ພາຣາມິເຕີນີ້ໝາຍເຖິງຕົວຢ່າງທີ່ໃຫ້ໄວ້ (ເປັນລາຍການທີ່ຂັ້ນດ້ວຍເຄື່ອງໝາຍຈຸດ) ຈາກການເປັນ
ຍ້າຍໃນໄລຍະການດຸ່ນດ່ຽງ.
-U util-file
ພາລາມິເຕີນີ້ລະບຸໄຟລ໌ທີ່ຖືຂໍ້ມູນການນໍາໃຊ້ແບບໄດນາມິກ
ທີ່ຈະໃຊ້ເພື່ອປັບລະບົບການດຸ່ນດ່ຽງເພື່ອປັບຄວາມເທົ່າທຽມການໂຫຼດຢູ່ໃນຂໍ້
(ກົງກັນຂ້າມກັບການໃຊ້ຊັບພະຍາກອນແບບຄົງທີ່). ໄຟລ໌ແມ່ນຢູ່ໃນຮູບແບບ "instance_name
cpu_util mem_util disk_util net_util" ບ່ອນທີ່ "_util" ພາລາມິເຕີຖືກຕີຄວາມຫມາຍ
ເປັນຕົວເລກ ແລະຊື່ຕົວຢ່າງຈະຕ້ອງກົງກັບຕົວຢ່າງທີ່ອ່ານຈາກ
Ganeti. ໃນກໍລະນີທີ່ບໍ່ຮູ້ຊື່ຕົວຢ່າງ, ໂຄງການຈະເອົາລູກອອກ.
ຖ້າບໍ່ໄດ້ໃຫ້, ຄ່າເລີ່ມຕົ້ນແມ່ນອັນດຽວສໍາລັບທຸກ metrics ແລະດັ່ງນັ້ນ dynamic
ການນໍາໃຊ້ມີຜົນກະທົບພຽງແຕ່ຫນຶ່ງໃນວິທີການ: ຄວາມສະເຫມີພາບຂອງມັດທະຍົມ
instances ທົ່ວ nodes (ນີ້ແມ່ນພຽງແຕ່ການວັດແທກທີ່ບໍ່ໄດ້ຕິດຕາມໂດຍອື່ນ,
ຄ່າທີ່ອຸທິດຕົນ, ແລະດັ່ງນັ້ນການໂຫຼດແຜ່ນຂອງ instances ຈະເຮັດໃຫ້ຕົວຢ່າງທີສອງ
ຄວາມສະເໝີພາບ). ໃຫ້ສັງເກດວ່າມູນຄ່າຂອງຫນຶ່ງຍັງຈະມີອິດທິພົນຕົ້ນຕໍເລັກນ້ອຍ
ການນັບຕົວຢ່າງ, ແຕ່ວ່າໄດ້ຖືກຕິດຕາມແລ້ວໂດຍຜ່ານ metrics ອື່ນໆແລະດັ່ງນັ້ນ
ອິດທິພົນຂອງການນໍາໃຊ້ແບບເຄື່ອນໄຫວຈະບໍ່ສໍາຄັນ.
--ignore-dynu
ຖ້າໃຫ້, ຂໍ້ມູນການນໍາໃຊ້ແບບເຄື່ອນໄຫວທັງຫມົດຈະຖືກລະເລີຍໂດຍການສົມມຸດວ່າມັນເປັນ
0. ທາງເລືອກນີ້ຈະມີສ່ວນສໍາຄັນຕໍ່ກັບຂໍ້ມູນໃດໆທີ່ຜ່ານໂດຍທາງເລືອກ -U ຫຼືໂດຍ
MonDs ດ້ວຍຕົວເລືອກ --mond ແລະ --mond-data.
--ignore-soft-errors
ຖ້າໃຫ້, ການກວດສອບຄວາມຜິດພາດອ່ອນໆທັງໝົດຈະຖືກລະເວັ້ນເມື່ອພິຈາລະນາການດຸ່ນດ່ຽງ
ຍ້າຍ. ດ້ວຍວິທີນີ້, ຄວາມຄືບໜ້າສາມາດເຮັດໄດ້ໃນກຸ່ມທີ່ທຸກ nodes ຢູ່ໃນ a
ສະພາບທີ່ບໍ່ດີຕາມນະໂຍບາຍ, ເຊັ່ນວ່າ ອັດຕາສ່ວນການຈອງເກີນເກີນຢູ່ໃນ CPU ຫຼື spindles.
-S ຊື່ເອກະສານ, --save-cluster=*ຊື່ໄຟລ໌*
ຖ້າໃຫ້, ສະຖານະຂອງກຸ່ມກ່ອນການດຸ່ນດ່ຽງຈະຖືກບັນທຶກໄວ້ໃນໄຟລ໌ທີ່ໃຫ້
ບວກກັບສ່ວນຂະຫຍາຍ "ຕົ້ນສະບັບ" (ie ຊື່ເອກະສານ.original), ແລະລັດໃນຕອນທ້າຍ
ຂອງການດຸ່ນດ່ຽງໄດ້ຖືກບັນທຶກໄວ້ໃນໄຟລ໌ທີ່ໃຫ້ບວກກັບນາມສະກຸນ "ສົມດູນ" (ie
ຊື່ເອກະສານ.ສົມດຸນ). ນີ້ອະນຸຍາດໃຫ້ການໃຫ້ອາຫານຄືນໃຫມ່ຂອງລັດກຸ່ມເພື່ອ hbal ຕົວຂອງມັນເອງ
ຫຼືຕົວຢ່າງ hspace ຜ່ານທາງເລືອກ -t.
-t ຂໍ້ມູນ, --text-data=*ໄຟລ໌ຂໍ້ມູນ*
ຂໍ້ມູນສະເພາະຂອງ backend: ຊື່ຂອງໄຟລ໌ທີ່ຖື node ແລະຂໍ້ມູນຕົວຢ່າງ
(ຖ້າບໍ່ເກັບຜ່ານ RAPI ຫຼື LUXI). ນີ້ຫຼືຫນຶ່ງໃນ backends ອື່ນໆຈະຕ້ອງເປັນ
ເລືອກ. ທາງເລືອກໄດ້ຖືກອະທິບາຍຢູ່ໃນຫນ້າຜູ້ຊາຍ ເຄື່ອງມື(1).
--mond=*ແມ່ນ|ບໍ່*
ຖ້າໃຫ້ໂຄງການຈະສອບຖາມ MonD ທັງໝົດເພື່ອດຶງຂໍ້ມູນຈາກຂໍ້ມູນທີ່ຮອງຮັບ
ນັກສະສົມຜ່ານເຄືອຂ່າຍ.
--mond-xen
ຖ້າໃຫ້, ຍັງສອບຖາມຜູ້ເກັບສະເພາະ Xen ຈາກ MonD, ສະຫນອງການຕິດຕາມນັ້ນ
daemon ໄດ້ຖືກສອບຖາມຢູ່ໃນທັງຫມົດ.
--exit-on-missing-mond-data
ຖ້າໃຫ້, ຍົກເລີກຖ້າຂໍ້ມູນທີ່ໄດ້ຈາກການສອບຖາມ MonDs ບໍ່ຄົບຖ້ວນ. ໄດ້
ພຶດຕິກໍາເລີ່ມຕົ້ນແມ່ນເພື່ອສືບຕໍ່ການຄາດເດົາທີ່ດີທີ່ສຸດໂດຍອີງໃສ່ຂໍ້ມູນຄົງທີ່.
--mond-data ຂໍ້ມູນ
ຊື່ຂອງໄຟລ໌ທີ່ຖືຂໍ້ມູນທີ່ສະໜອງໃຫ້ໂດຍ MonD, ເພື່ອ override quering MonDs
ໃນໄລຍະເຄືອຂ່າຍ. ນີ້ສ່ວນຫຼາຍແມ່ນໃຊ້ສໍາລັບການແກ້ບັນຫາ. ໄຟລ໌ຕ້ອງຢູ່ໃນ JSON
format ແລະນໍາສະເຫນີ array ຂອງ JSON object, ຫນຶ່ງສໍາລັບທຸກ node, ມີສອງສະມາຊິກ.
ສະມາຊິກທໍາອິດທີ່ມີຊື່ node ແມ່ນຊື່ຂອງ node ແລະສະມາຊິກທີສອງທີ່ມີຊື່
ບົດລາຍງານແມ່ນ array ຂອງວັດຖຸລາຍງານ. ວັດຖຸລາຍງານຕ້ອງຢູ່ໃນອັນດຽວກັນ
ຮູບແບບທີ່ຜະລິດໂດຍຕົວແທນຕິດຕາມ.
-m ກຸ່ມ
ຂໍ້ມູນຈໍາເພາະຂອງ backend: ເກັບກໍາຂໍ້ມູນໂດຍກົງຈາກ ກຸ່ມ ໃຫ້ເປັນການໂຕ້ຖຽງ
ຜ່ານ RAPI. ທາງເລືອກໄດ້ຖືກອະທິບາຍຢູ່ໃນຫນ້າຜູ້ຊາຍ ເຄື່ອງມື(1).
-L [ເສັ້ນທາງ]
ຂໍ້ມູນຈໍາເພາະຂອງ backend: ເກັບກໍາຂໍ້ມູນໂດຍກົງຈາກແມ່ບົດ daemon, ເຊິ່ງຈະເປັນ
ຕິດຕໍ່ຜ່ານ LUXI (ອະນຸສັນຍາ Ganeti ພາຍໃນ). ທາງເລືອກແມ່ນໄດ້ອະທິບາຍໃນ
ຫນ້າຜູ້ຊາຍ ເຄື່ອງມື(1).
-X ເມື່ອໃຊ້ backend Luxi, hbal ຍັງສາມາດປະຕິບັດຄໍາສັ່ງທີ່ໃຫ້. ໄດ້
ວິທີການປະຕິບັດແມ່ນການປະຕິບັດວຽກສ່ວນບຸກຄົນ (ເບິ່ງ -C ທາງເລືອກສໍາລັບການ
ລາຍລະອຽດ) ໃນໄລຍະທີ່ແຍກຕ່າງຫາກ, ການລົບລ້າງຖ້າຫາກວ່າໃນເວລາທີ່ວຽກງານທີ່ບໍ່ມີທັງຫມົດ
ປະສົບຜົນສໍາເລັດ. ແຕ່ລະຂັ້ນຕອນໃນການແກ້ໄຂການດຸ່ນດ່ຽງຈະຖືກແປເປັນຢ່າງແທ້ຈິງ
ຫນຶ່ງວຽກ Ganeti (ມີລະຫວ່າງຫນຶ່ງຫາສາມ OpCodes), ແລະຂັ້ນຕອນທັງຫມົດໃນ a
jobset ຈະຖືກປະຕິບັດໃນຂະຫນານ. Jobsets ຕົວເອງຖືກປະຕິບັດເປັນລໍາດັບ.
ການປະຕິບັດຊຸດວຽກສາມາດຂັດຂວາງ, ເບິ່ງຂ້າງລຸ່ມນີ້ສໍາລັບການຈັດການສັນຍານ.
-l N, --max-length=*N*
ຈໍາກັດການແກ້ໄຂກັບຄວາມຍາວນີ້. ນີ້ສາມາດຖືກນໍາໃຊ້ເປັນຕົວຢ່າງເພື່ອອັດຕະໂນມັດ
ການປະຕິບັດການດຸ່ນດ່ຽງ.
--max-cpu=*cpu-ratio*
ອັດຕາສ່ວນ CPU virtual ກັບທາງດ້ານຮ່າງກາຍສູງສຸດ, ເປັນຕົວເລກຈຸດທີ່ເລື່ອນໄດ້ຫຼາຍກວ່າ
ຫຼືເທົ່າກັບຫນຶ່ງ. ສໍາລັບຕົວຢ່າງ, ການກໍານົດ ອັດຕາສ່ວນ CPU as 2.5 ຫມາຍຄວາມວ່າ, ສໍາລັບ 4-cpu
ເຄື່ອງຈັກ, ສູງສຸດຂອງ 10 CPU virtual ຄວນໄດ້ຮັບອະນຸຍາດໃຫ້ຢູ່ໃນການນໍາໃຊ້ຕົ້ນຕໍ
ຕົວຢ່າງ. ຄ່າຂອງຫນຶ່ງຫມາຍຄວາມວ່າຈະບໍ່ມີການຈອງ CPU ເກີນ
(ຍົກເວັ້ນເວລາ CPU ໃຊ້ໂດຍ node ຕົວຂອງມັນເອງ), ແລະຄ່າຂ້າງລຸ່ມນີ້ບໍ່ໄດ້ເຮັດ
ຄວາມຮູ້ສຶກ, ດັ່ງນັ້ນຫມາຍຄວາມວ່າຊັບພະຍາກອນອື່ນໆ (ເຊັ່ນ: ແຜ່ນ) ຈະບໍ່ໄດ້ຮັບການນໍາໃຊ້ຢ່າງເຕັມທີ່ເນື່ອງຈາກ
ຂໍ້ຈໍາກັດ CPU.
--min-disk=*ອັດຕາສ່ວນແຜ່ນ*
ຈໍານວນຕໍາ່ສຸດທີ່ຂອງພື້ນທີ່ດິສກ໌ທີ່ຍັງເຫຼືອ, ເປັນຕົວເລກຈຸດທີ່ເລື່ອນໄດ້. ສໍາລັບ
ຕົວຢ່າງ, ການລະບຸ ອັດຕາສ່ວນແຜ່ນ as 0.25 ຫມາຍຄວາມວ່າຢ່າງຫນ້ອຍຫນຶ່ງສ່ວນສີ່ຂອງແຜ່ນ
ພື້ນທີ່ຄວນຖືກປະໄວ້ໃຫ້ຫວ່າງຢູ່ໃນ nodes.
-G ອຸຍ, --group=*uuid*
ໃນກຸ່ມຫຼາຍກຸ່ມ, ເລືອກກຸ່ມນີ້ເພື່ອປະມວນຜົນ. ຖ້າບໍ່ດັ່ງນັ້ນ hbal ຈະ
ເອົາລູກອອກ, ເນື່ອງຈາກວ່າມັນບໍ່ສາມາດດຸ່ນດ່ຽງຫຼາຍກຸ່ມໃນເວລາດຽວກັນ.
- ໃນ, -- verbose
ເພີ່ມທະວີການ verbosity ຜົນຜະລິດ. ການນໍາໃຊ້ແຕ່ລະທາງເລືອກນີ້ຈະເພີ່ມຂຶ້ນ
verbosity (ປະຈຸບັນຫຼາຍກ່ວາ 2 ບໍ່ມີຄວາມຫມາຍ) ຈາກຄ່າເລີ່ມຕົ້ນຂອງຫນຶ່ງ.
-q, --ງຽບ
ຫຼຸດການສະແດງອອກຂອງຜົນຜະລິດ. ການນໍາໃຊ້ແຕ່ລະທາງເລືອກນີ້ຈະຫຼຸດລົງ
verbosity (ຫນ້ອຍກວ່າສູນບໍ່ມີຄວາມຫມາຍ) ຈາກຄ່າເລີ່ມຕົ້ນຂອງຫນຶ່ງ.
-V, - ການປ່ຽນແປງ
ພຽງແຕ່ສະແດງໃຫ້ເຫັນສະບັບໂຄງການແລະອອກ.
ລາຍເຊັນ ການຈັດການ
ເມື່ອປະຕິບັດວຽກຜ່ານ LUXI (ໃຊ້ຕົວເລືອກ -X), ປົກກະຕິ hbal ຈະປະຕິບັດທຸກວຽກ.
ຈົນກ່ວາຫນຶ່ງຄວາມຜິດພາດອອກຫຼືວຽກງານທັງຫມົດສໍາເລັດຜົນ.
ເນື່ອງຈາກການດຸ່ນດ່ຽງສາມາດໃຊ້ເວລາດົນ, ມັນເປັນໄປໄດ້ທີ່ຈະຢຸດ hbal ໃນສອງວິທີ:
·ໂດຍການສົ່ງ SIGINT (^C), hbal ຈະລົງທະບຽນຄໍາຮ້ອງຂໍການຢຸດເຊົາ, ແລະຈະລໍຖ້າ
ຈົນກ່ວາວຽກເຮັດງານທໍາທີ່ສົ່ງໄປໃນປັດຈຸບັນສໍາເລັດ, ໃນຈຸດທີ່ມັນຈະອອກ (ດ້ວຍລະຫັດອອກ 0
ຖ້າວຽກທັງຫມົດສໍາເລັດຢ່າງຖືກຕ້ອງ, ຖ້າບໍ່ດັ່ງນັ້ນດ້ວຍລະຫັດອອກ 1 ຕາມປົກກະຕິ)
·ໂດຍການສົ່ງ SIGTERM, hbal ຈະອອກທັນທີ (ດ້ວຍລະຫັດອອກ 2); ມັນແມ່ນ
ຄວາມຮັບຜິດຊອບຂອງຜູ້ໃຊ້ໃນການຕິດຕາມກັບ Ganeti ແລະກວດເບິ່ງຜົນໄດ້ຮັບຂອງ
ວຽກງານປະຕິບັດໃນປັດຈຸບັນ
ໃຫ້ສັງເກດວ່າໃນສະຖານະການໃດກໍ່ຕາມ, ມັນປອດໄພຢ່າງສົມບູນທີ່ຈະຂ້າ hbal, ບໍ່ວ່າຈະຜ່ານສັນຍານຂ້າງເທິງ
ຫຼືຜ່ານສັນຍານອື່ນໆ (ເຊັ່ນ: SIGQUIT, SIGKILL), ນັບຕັ້ງແຕ່ວຽກຂອງຕົນເອງໄດ້ຖືກປຸງແຕ່ງ
ໂດຍ Ganeti ໃນຂະນະທີ່ hbal (ຫຼັງຈາກການຍື່ນສະເຫນີ) ພຽງແຕ່ສັງເກດເບິ່ງຄວາມກ້າວຫນ້າຂອງພວກເຂົາ. ໃນກໍລະນີນີ້,
ຜູ້ໃຊ້ຈະຕ້ອງສອບຖາມ Ganeti ສໍາລັບຜົນໄດ້ຮັບວຽກ.
ອອກ STATUS
ສະຖານະການອອກຂອງຄໍາສັ່ງຈະເປັນສູນ, ເວັ້ນເສຍແຕ່ສໍາລັບບາງເຫດຜົນ algorithm ລົ້ມເຫລວ
(ເຊັ່ນ: node ຜິດ ຫຼື instance data), ທາງເລືອກແຖວຄໍາສັ່ງບໍ່ຖືກຕ້ອງ, ຫຼື (ໃນກໍລະນີຂອງວຽກເຮັດງານທໍາ
ການປະຕິບັດ) ຫນຶ່ງໃນວຽກເຮັດງານທໍາໄດ້ລົ້ມເຫລວ.
ເມື່ອການປະຕິບັດວຽກຜ່ານ Luxi ໄດ້ເລີ່ມຕົ້ນ (-X), ຖ້າການດຸ່ນດ່ຽງຖືກຂັດຂວາງໄວ (ຜ່ານ.
ເຊັນເຂົ້າ, ຫຼືຜ່ານ --max-length) ແຕ່ທຸກວຽກຖືກປະຕິບັດຢ່າງສໍາເລັດຜົນ, ຫຼັງຈາກນັ້ນສະຖານະການອອກແມ່ນ
ສູນ; ລະຫັດອອກທີ່ບໍ່ແມ່ນສູນຫມາຍຄວາມວ່າລັດຂອງກຸ່ມຄວນໄດ້ຮັບການສືບສວນ, ນັບຕັ້ງແຕ່ a
ວຽກລົ້ມເຫລວ ຫຼືພວກເຮົາບໍ່ສາມາດຄຳນວນສະຖານະຂອງມັນໄດ້ ແລະອັນນີ້ຍັງສາມາດຊີ້ໃຫ້ເຫັນເຖິງບັນຫາໃນ
ຂ້າງ Ganeti.
ໃຊ້ hbal ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net