ภาษาอังกฤษภาษาฝรั่งเศสสเปน

Ad


ไอคอน Fav ของ OnWorks

hbal - ออนไลน์ในคลาวด์

เรียกใช้ hbal ในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือคำสั่ง hbal ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


hbal - ตัวสร้างสมดุลสำหรับ Ganeti

เรื่องย่อ


ฮบาล {ตัวเลือกแบ็กเอนด์...} [ตัวเลือกอัลกอริทึม...] [ตัวเลือกการรายงาน...]

ฮบาล --รุ่น

ตัวเลือกแบ็กเอนด์:

{ -m กลุ่ม | -ล[ เส้นทาง ] [-NS] | -t แฟ้มข้อมูล | -I เส้นทาง }

ตัวเลือกอัลกอริทึม:

[ --max-cpu อัตราส่วนซีพียู ] [ --min-ดิสก์ อัตราส่วนดิสก์ ] [ -l จำกัด ] [ -e คะแนน ] [ -g รูปสามเหลี่ยม ] [
--min-กำไร-จำกัด ธรณีประตู ] [ -O ชื่อ... ] [ --no-disk-ย้าย ] [ --no-อินสแตนซ์-ย้าย ] [
-U util-ไฟล์ ] [ --ละเว้น-dynu ] [ --ignore-soft-ข้อผิดพลาด ] [ --มอนด์ ใช่|ไม่ ] [ --mond-xen ]
[ --exit-on-missing-mond-data ] [ --evac โหมด ] [ --จำกัด-การโยกย้าย ] [
--select-อินสแตนซ์ ใส่... ] [ --exclude-อินสแตนซ์ ใส่... ]

ตัวเลือกการรายงาน:

[ -ค[ ไฟล์ ] ] [ -NS[ ทุ่ง ] ] [ --พิมพ์อินสแตนซ์ ] [ -S ไฟล์ ] [ -วี... | -q ]

DESCRIPTION


hbal เป็นคลัสเตอร์บาลานเซอร์ที่ดูสถานะปัจจุบันของคลัสเตอร์ (โหนดที่มี
ดิสก์ทั้งหมดและว่าง หน่วยความจำ ฯลฯ) และการจัดวางอินสแตนซ์และคำนวณชุดของ
ขั้นตอนที่ออกแบบมาเพื่อนำคลัสเตอร์ไปสู่สถานะที่ดีขึ้น

อัลกอริทึมที่ใช้ได้รับการออกแบบให้มีความเสถียร (เช่น จะให้ผลลัพธ์เหมือนกันเมื่อ
รีสตาร์ทจากตรงกลางของโซลูชัน) และรวดเร็วพอสมควร มันไม่ใช่อย่างไรก็ตาม
ออกแบบให้เป็นอัลกอริธึมที่สมบูรณ์แบบ: เป็นไปได้ที่จะทำให้มันเข้าไปในมุมที่
ไม่พบการปรับปรุงใดๆ เลย เพราะมันดูเหมือน "ก้าว" ข้างหน้าเพียงก้าวเดียวเท่านั้น

โปรแกรมเข้าถึงสถานะคลัสเตอร์ผ่าน Rapi หรือ Luxi นอกจากนี้ยังขอข้อมูลผ่าน
เครือข่ายจาก MonD ทั้งหมดด้วยตัวเลือก --mond ปัจจุบันใช้เฉพาะข้อมูลที่ผลิตโดย
ตัวรวบรวมโหลดซีพียู

โดยค่าเริ่มต้น โปรแกรมจะแสดงโซลูชันแบบค่อยเป็นค่อยไปเมื่อคำนวณใน a
รูปแบบที่ค่อนข้างคลุมเครือ ในการรับรายการคำสั่ง Ganeti จริง ให้ใช้คำสั่ง -C ตัวเลือก

อัลกอริธึม
โปรแกรมทำงานเป็นขั้นตอนอิสระ ในแต่ละขั้นตอน เราจะคำนวณการย้ายตัวอย่างที่ดีที่สุด
ที่ลดคะแนนคลัสเตอร์

ประเภทการย้ายที่เป็นไปได้สำหรับอินสแตนซ์คือการผสมผสานระหว่างเฟลโอเวอร์/โยกย้ายและ
เปลี่ยนดิสก์เพื่อให้เราเปลี่ยนโหนดอินสแตนซ์หนึ่งโหนดและอีกโหนดหนึ่งยังคงอยู่
(แต่อาจมีการเปลี่ยนแปลงบทบาท เช่น จากหลักก็จะกลายเป็นรอง) รายการคือ:

· ล้มเหลว (f)

· แทนที่รอง (r)

· แทนที่หลัก, การเคลื่อนไหวแบบผสม (f, r, f)

· ล้มเหลวและแทนที่รอง ยังประกอบ (f, r)

· แทนที่รองและเฟลโอเวอร์ รวมทั้งคอมโพสิต (r, f)

เราไม่ได้ทำความเป็นไปได้เพียงอย่างเดียวในการเปลี่ยนโหนดทั้งสอง (r,f,r,f หรือ the
เทียบเท่า f,r,f,r) เนื่องจากการเคลื่อนไหวเหล่านี้ต้องการการค้นหาผู้สมัครทั้งสองอย่างละเอียดถี่ถ้วน
โหนดหลักและโหนดรอง และมีค่า O(n*n) ในจำนวนโหนด นอกจากนี้มัน
ดูเหมือนจะไม่ได้ให้คะแนนดีขึ้น แต่จะส่งผลให้มีการเปลี่ยนดิสก์มากขึ้น

สถานที่ ข้อ จำกัด
ในแต่ละขั้นตอน เราจะป้องกันการย้ายอินสแตนซ์หากจะทำให้เกิด:

· โหนดที่จะเข้าสู่สถานะความล้มเหลวของ N+1

· อินสแตนซ์ที่จะย้ายไปยังโหนดออฟไลน์ (โหนดออฟไลน์อ่านได้จากคลัสเตอร์
หรือประกาศด้วย -O; โหนดที่ระบายออกจะถือว่าออฟไลน์)

· ความขัดแย้งตามแท็กยกเว้น (แท็กการยกเว้นถูกอ่านจากคลัสเตอร์และ/หรือที่กำหนดไว้
เมื่อ --exclusion-แท็ก ตัวเลือก)

· เกินอัตราส่วน vcpu/pcpu สูงสุด (กำหนดค่าผ่าน --max-cpu)

· เปอร์เซ็นต์การว่างบนดิสก์ขั้นต่ำเพื่อให้ต่ำกว่าขีดจำกัดที่กำหนดค่าไว้ (กำหนดค่าผ่าน --min-ดิสก์)

กลุ่ม การให้คะแนน
ดังที่ได้กล่าวไว้ก่อนหน้านี้ อัลกอริทึมพยายามลดคะแนนคลัสเตอร์ให้เหลือน้อยที่สุดในแต่ละขั้นตอน ปัจจุบัน
คะแนนนี้คำนวณเป็นผลรวมถ่วงน้ำหนักขององค์ประกอบต่อไปนี้:

· ส่วนเบี่ยงเบนมาตรฐานของเปอร์เซ็นต์ของหน่วยความจำว่าง

· ส่วนเบี่ยงเบนมาตรฐานของเปอร์เซ็นต์ของหน่วยความจำที่สงวนไว้

· ผลรวมของเปอร์เซ็นต์ของหน่วยความจำที่สำรองไว้

· ส่วนเบี่ยงเบนมาตรฐานของเปอร์เซ็นต์ของดิสก์ว่าง

· จำนวนโหนดที่ล้มเหลว N+1 check

· จำนวนอินสแตนซ์ที่อาศัยอยู่ (ไม่ว่าจะเป็นโหนดหลักหรือรอง) บนโหนดออฟไลน์ ใน
ความรู้สึกของ hbal (และ htools อื่น ๆ ) โหนดที่ระบายออกถือเป็นออฟไลน์

· จำนวนอินสแตนซ์ที่อาศัยอยู่ (เป็นหลัก) บนโหนดออฟไลน์ ซึ่งแตกต่างจากข้างต้น
เมตริกโดยช่วยเฟลโอเวอร์ของอินสแตนซ์ดังกล่าวในคลัสเตอร์ 2 โหนด

· ส่วนเบี่ยงเบนมาตรฐานของอัตราส่วนของซีพียูเสมือนต่อกายภาพ (สำหรับอินสแตนซ์หลักของ
โหนด)

· ส่วนเบี่ยงเบนมาตรฐานของเศษส่วนของแกนหมุนที่มีอยู่ (ในโหมดเฉพาะ
แกนหมุนเป็นตัวแทนของแกนหมุนทางกายภาพ มิฉะนั้น การวัดที่เกินกว่านี้สำหรับ IO
โหลดและปัจจัยการสมัครสมาชิกเกินจะถูกนำมาพิจารณาเมื่อคำนวณจำนวน
แกนหมุนที่มีอยู่)

· ค่าเบี่ยงเบนมาตรฐานของไดนามิกโหลดบนโหนด สำหรับซีพียู หน่วยความจำ ดิสก์ และเครือข่าย

· ค่าเบี่ยงเบนมาตรฐานของโหลด CPU ที่จัดเตรียมโดย MonD

· จำนวนอินสแตนซ์ที่มีหลักและรองในโดเมนความล้มเหลวเดียวกัน

ค่าหน่วยความจำว่างและค่าดิสก์ว่างช่วยให้แน่ใจว่าโหนดทั้งหมดค่อนข้างสมดุลใน
การใช้ทรัพยากรของพวกเขา หน่วยความจำที่สงวนไว้ช่วยให้แน่ใจว่าโหนดนั้นค่อนข้าง
สมดุลในการถือครองอินสแตนซ์รอง และไม่มีโหนดใดที่สงวนหน่วยความจำไว้มากเกินไป
สำหรับ N+1 และสุดท้าย เปอร์เซ็นต์ N+1 จะช่วยชี้นำอัลกอริทึมในการกำจัด
ความล้มเหลวของ N+1 ถ้าเป็นไปได้

ยกเว้นความล้มเหลว N+1 การนับอินสแตนซ์ออฟไลน์ และการละเมิดโดเมนที่ล้มเหลว
เราใช้ค่าเบี่ยงเบนมาตรฐานเนื่องจากเมื่อใช้กับค่าภายในช่วงคงที่ (we
ใช้เปอร์เซ็นต์ที่แสดงเป็นค่าระหว่างศูนย์ถึงหนึ่ง) ให้ผลลัพธ์ที่สอดคล้องกันทั่ว
ตัวชี้วัดทั้งหมด (มีปัญหาเล็กน้อยที่เกี่ยวข้องกับวิธีการที่แตกต่างกัน แต่ใช้ได้ผล
กันโดยทั่วไป) ค่าประเภท 'นับ' จะมีคะแนนสูงกว่าและมีความสำคัญมากกว่า
เพื่อความสมดุล ดังนั้นสิ่งเหล่านี้จึงดีกว่าสำหรับข้อจำกัดที่เข้มงวด (เช่น การอพยพโหนดและ
แก้ไขข้อผิดพลาด N+1) ตัวอย่างเช่น การนับอินสแตนซ์ออฟไลน์ (เช่น จำนวน
อินสแตนซ์ที่อยู่บนโหนดออฟไลน์) จะทำให้อัลกอริทึมย้ายอินสแตนซ์อย่างแข็งขัน
ห่างจากโหนดออฟไลน์ นี้ควบคู่ไปกับข้อ จำกัด ในตำแหน่งที่กำหนดโดยออฟไลน์
โหนดจะทำให้เกิดการอพยพของโหนดดังกล่าว

ต้องอ่านค่าโหลดแบบไดนามิกจากไฟล์ภายนอก (Ganeti ไม่จัดหา
เหล่านี้) และคำนวณสำหรับแต่ละโหนดเป็น: ผลรวมของโหลด cpu อินสแตนซ์หลัก ผลรวมของหลัก
โหลดหน่วยความจำอินสแตนซ์ ผลรวมของโหลดดิสก์อินสแตนซ์หลักและรอง (ตามที่ DRBD สร้าง
โหลดการเขียนบนโหนดรองในกรณีปกติและในสถานการณ์ที่เสื่อมโทรมก็อ่านเช่นกัน
โหลด) และผลรวมของโหลดเครือข่ายอินสแตนซ์หลัก ตัวอย่างวิธีการสร้างสิ่งเหล่านี้
ค่าสำหรับอินพุตไปยัง hbal คือการติดตามรายการ xm สำหรับอินสแตนซ์ในหนึ่งวันและโดย
คำนวณเดลต้าของค่าซีพียูและป้อนผ่าน -U ตัวเลือกสำหรับทุกกรณี
(และเก็บตัวชี้วัดอื่นๆ ไว้เป็นหนึ่งเดียว) เพื่อให้อัลกอริธึมทำงานได้ ทั้งหมดที่จำเป็นคือ
ว่าค่านั้นสอดคล้องกันสำหรับตัวชี้วัดในทุกกรณี (เช่น ทุกกรณีใช้
cpu% เพื่อรายงานการใช้งาน cpu และไม่เกี่ยวกับจำนวนวินาทีของ CPU ที่ใช้หาก
ซีพียูต่างกัน) และถูกทำให้เป็นมาตรฐานระหว่างศูนย์ถึงหนึ่ง โปรดทราบว่ามันคือ
แนะนำให้ไม่มีศูนย์เป็นค่าโหลดสำหรับตัววัดอินสแตนซ์ใด ๆ ตั้งแต่นั้นมา
อินสแตนซ์รองไม่สมดุลกัน

CPUload จากตัวรวบรวมข้อมูลของ MonD จะถูกใช้ก็ต่อเมื่อ MonD ทั้งหมดกำลังทำงานอยู่
มิฉะนั้นจะไม่ส่งผลต่อคะแนนคลัสเตอร์ เนื่องจากเราไม่สามารถหาโหลด CPU ของแต่ละตัวได้
ตัวอย่าง เราสามารถสรุปได้ว่าโหลด CPU ของอินสแตนซ์นั้นแปรผันตามจำนวน
vcpus ของมัน ด้วยฮิวริสติกนี้ อินสแตนซ์จากโหนดที่มีโหลด CPU สูงมักจะเคลื่อนที่
ไปยังโหนดที่มีโหลด CPU น้อย

บนคลัสเตอร์ที่สมดุลอย่างสมบูรณ์ (โหนดทั้งหมดมีขนาดเท่ากัน อินสแตนซ์ทั้งหมดมีขนาดเท่ากันและ
กระจายไปทั่วโหนดเท่าๆ กัน) ค่าสำหรับตัวชี้วัดทั้งหมดจะเป็นศูนย์ โดยที่
ยกเว้นเปอร์เซ็นต์รวมของหน่วยความจำที่สงวนไว้ สิ่งนี้ไม่ได้เกิดขึ้นบ่อยเกินไปใน
ฝึกฝน :)

ออฟไลน์ ตัวอย่าง
เนื่องจาก Ganeti เวอร์ชันปัจจุบันไม่รายงานหน่วยความจำที่ใช้โดยอินสแตนซ์ออฟไลน์ (ลง)
การละเว้นสถานะการทำงานของอินสแตนซ์จะทำให้การคำนวณผิดพลาด ด้วยเหตุนี้
อัลกอริธึมลบขนาดหน่วยความจำของอินสแตนซ์ลงจากหน่วยความจำโหนดว่างของ
โหนดหลักซึ่งจำลองการเริ่มต้นของอินสแตนซ์ดังกล่าว

ยกเว้น TAGS
กลไกการยกเว้นแท็กได้รับการออกแบบมาเพื่อป้องกันอินสแตนซ์ที่เรียกใช้ภาระงานเดียวกัน
(เช่น เซิร์ฟเวอร์ DNS สองเครื่อง) เพื่อลงจอดบนโหนดเดียวกัน ซึ่งจะทำให้โหนดที่เกี่ยวข้องเป็น
SPOF สำหรับบริการที่กำหนด

มันทำงานโดยติดแท็กอินสแตนซ์ด้วยแท็กบางแท็กแล้วสร้างแผนที่การยกเว้นตาม
เหล่านี้. แท็กใดที่ใช้จริงได้รับการกำหนดค่าผ่านทางบรรทัดคำสั่ง (option
--exclusion-แท็ก) หรือโดยการเพิ่มลงในแท็กคลัสเตอร์:

--exclusion-tags=a,b
สิ่งนี้จะทำให้แท็กอินสแตนซ์ทั้งหมดของ form NS:*, NS:* ได้รับการพิจารณาสำหรับ
แผนที่การยกเว้น

กลุ่ม แท็ก htools:ieextags:ก, htools:ieextags:b
สิ่งนี้จะทำให้แท็กอินสแตนซ์ NS:*, NS:* ได้รับการพิจารณาสำหรับแผนที่การยกเว้น มากกว่า
อย่างแม่นยำ คำต่อท้ายของแท็กคลัสเตอร์ที่ขึ้นต้นด้วย htools:iextag: จะกลายเป็น
คำนำหน้าของแท็กยกเว้น

ทั้งสองรูปแบบข้างต้นหมายความว่าทั้งสองกรณีมี (เช่น) tag ตอบ: ฟู or ข: บาร์
จะไม่สิ้นสุดในโหนดเดียวกัน

การย้ายถิ่น TAGS
หากใช้ Ganeti บนคลัสเตอร์ที่ต่างกัน อาจไม่สามารถย้ายระหว่าง
โหนดทั้งหมดของกลุ่มโหนด ตัวอย่างหนึ่งของสถานการณ์ดังกล่าวคือการอัพเกรดไฮเปอร์ไวเซอร์
โหนดโดยโหนด เพื่อให้ hbal ตระหนักถึงข้อจำกัดเหล่านั้น แท็กคลัสเตอร์ต่อไปนี้คือ
มือสอง

กลุ่ม แท็ก htools:การโยกย้าย:ก, htools:การโยกย้าย:b, ฯลฯ
ทำให้แท็กโหนดของ form NS:*, NS:*, ฯลฯ ถือเป็นการอพยพ
ข้อจำกัด ให้ชัดเจนยิ่งขึ้น คำต่อท้ายของแท็กคลัสเตอร์ที่ขึ้นต้นด้วย
htools:การย้ายข้อมูล: จะกลายเป็นคำนำหน้าของแท็กการย้ายข้อมูล เท่านั้น
การย้ายถิ่นจะถูกนำมาพิจารณาโดยที่แท็กการย้ายถิ่นทั้งหมดของแหล่งที่มา
โหนดยังมีอยู่บนโหนดเป้าหมาย

กลุ่ม แท็ก htools:allowmigration:x::y for การโยกย้าย แท็ก x และ y
สิ่งนี้ยืนยันว่าโหนดถูกแท็ก y สามารถรับอินสแตนซ์ในลักษณะเดียวกับ if
พวกเขามี x แท็ก

ดังนั้นในกรณีง่าย ๆ ของการอัพเกรดไฮเปอร์ไวเซอร์ การติดแท็กโหนดทั้งหมดที่ได้รับ
อัปเกรดด้วยแท็กการย้ายข้อมูลก็เพียงพอแล้ว ในสถานการณ์ที่ซับซ้อนมากขึ้น มันเป็นเสมอ
เป็นไปได้ที่จะใช้แท็กการย้ายข้อมูลที่แตกต่างกันสำหรับไฮเปอร์ไวเซอร์แต่ละตัวที่ใช้และระบุอย่างชัดเจน
อนุญาตทิศทางการย้ายถิ่นโดยวิธีของ htools:อนุญาตการย้ายข้อมูล: แท็ก

สถานที่ตั้ง TAGS
ภายในกลุ่มโหนด โหนดบางตัวอาจมีแนวโน้มที่จะล้มเหลวพร้อมกันมากกว่าเนื่องจาก a
สาเหตุของข้อผิดพลาดทั่วไป (เช่น หากใช้หน่วยจ่ายไฟร่วมกัน) กาเนติก็ได้
ตระหนักถึงสาเหตุทั่วไปของความล้มเหลวโดยใช้แท็ก

กลุ่ม แท็ก htools:nlocation:ก, htools:nlocation:b, ฯลฯ
ทำให้แท็กโหนดของ form NS:*, NS:*, ฯลฯ ถือว่ามีร่วมกัน
สาเหตุของความล้มเหลว

อินสแตนซ์ที่มีโหนดหลักและรองที่มีสาเหตุทั่วไปของความล้มเหลวจะได้รับการพิจารณา
วางไว้ไม่ดี แม้ว่าตำแหน่งดังกล่าวจะได้รับอนุญาตเสมอ แต่ก็นับรวมอย่างมากต่อ
คะแนนคลัสเตอร์

OPTIONS


ตัวเลือกที่สามารถส่งผ่านไปยังโปรแกรมมีดังนี้:

-ค, --พิมพ์-คำสั่ง
พิมพ์รายการคำสั่งเมื่อสิ้นสุดการทำงาน หากไม่มีสิ่งนี้ โปรแกรมก็จะมีเพียง
แสดงเอาต์พุตที่สั้นกว่า แต่คลุมเครือ

โปรดทราบว่ารายการย้ายจะแบ่งออกเป็นขั้นตอนอิสระ เรียกว่า "ชุดงาน"
แต่สำหรับการตรวจสอบด้วยสายตาเท่านั้น ไม่ใช่สำหรับการขนานจริง มันไม่ใช่
เป็นไปได้ที่จะทำให้ขนานกันโดยตรงเมื่อดำเนินการผ่านคำสั่ง "gnt-instance"
เนื่องจากต้องดำเนินการคำสั่งผสม (เช่น เฟลโอเวอร์และแทนที่ดิสก์)
ตามลำดับ การดำเนินการแบบขนานทำได้เฉพาะเมื่อใช้แบ็กเอนด์ Luxi และ
-L ตัวเลือก

อัลกอริทึมสำหรับการแยกการเคลื่อนไหวออกเป็นชุดงานคือการสะสมการเคลื่อนไหวจนถึง
การย้ายครั้งต่อไปคือการแตะโหนดที่สัมผัสแล้วโดยการเคลื่อนไหวปัจจุบัน นี่หมายความว่าเรา
ไม่สามารถดำเนินการแบบคู่ขนานได้ (เนื่องจากการจัดสรรทรัพยากรใน Ganeti) ดังนั้นเราจึงเริ่ม
ชุดงานใหม่

-NS, --print-โหนด
พิมพ์สถานะก่อนและหลังโหนด ในรูปแบบที่ออกแบบมาเพื่อให้ผู้ใช้
ทำความเข้าใจพารามิเตอร์ที่สำคัญที่สุดของโหนด ดูหน้าคน เครื่องมือ(1) สำหรับ
รายละเอียดเพิ่มเติมเกี่ยวกับตัวเลือกนี้

--พิมพ์อินสแตนซ์
พิมพ์แผนผังอินสแตนซ์ก่อนและหลัง สิ่งนี้มีประโยชน์น้อยกว่าเนื่องจากสถานะของโหนด
แต่สามารถช่วยให้เข้าใจการเคลื่อนไหวของตัวอย่างได้

-O ชื่อ
ตัวเลือกนี้ (ซึ่งสามารถให้ได้หลายครั้ง) จะทำเครื่องหมายว่าโหนดเป็น ออฟไลน์.
ซึ่งหมายความว่าสองสามสิ่ง:

· อินสแตนซ์จะไม่ถูกวางบนโหนดเหล่านี้ แม้แต่ชั่วคราว เช่น แทนที่
ประถม ไม่สามารถย้ายได้หากโหนดรองออฟไลน์ เนื่องจากการย้ายนี้
ต้องการเฟลโอเวอร์

· โหนดเหล่านี้จะไม่รวมอยู่ในการคำนวณคะแนน (ยกเว้น
เปอร์เซ็นต์ของอินสแตนซ์บนโหนดออฟไลน์)

โปรดทราบว่าอัลกอริธึมจะทำเครื่องหมายว่าเป็นโหนดออฟไลน์ที่ RAPI . รายงาน
เช่นนั้น หรือมี "?" ในการป้อนข้อมูลแบบไฟล์ในช่องตัวเลขใดๆ

-e คะแนน, --min-score=*คะแนน*
พารามิเตอร์นี้ระบุว่า N+1 ที่ผูกกับคะแนนคลัสเตอร์สามารถให้เราได้มากเพียงใด
มีความสุขและเปลี่ยนแปลงการคำนวณในสองวิธี:

· หากคลัสเตอร์มีคะแนนเริ่มต้นต่ำกว่าค่านี้ เราจะไม่ป้อน
อัลกอริธึมเลยและออกด้วยความสำเร็จ

· ในระหว่างกระบวนการวนซ้ำ ถ้าเราได้คะแนนต่ำกว่าค่านี้ เราจะออก
อัลกอริทึม

ค่าเริ่มต้นของพารามิเตอร์ปัจจุบันคือ 1e-9 (เลือกโดยสังเกตุ)

-g รูปสามเหลี่ยม, --min-gain=*เดลต้า*
เนื่องจากอัลกอริทึมการปรับสมดุลบางครั้งอาจส่งผลให้มีการปรับปรุงเพียงเล็กน้อย
ที่นำมาซึ่งกำไรน้อยกว่าที่พวกเขาเสียค่าใช้จ่ายในเวลาย้ายตำแหน่ง พารามิเตอร์นี้ (defaulting
ถึง 0.01) หมายถึงกำไรขั้นต่ำที่เราต้องการในระหว่างขั้นตอนเพื่อดำเนินการต่อ
สมดุล

--min-gain-limit=*เกณฑ์*
ตัวเลือก min-gain ด้านบนจะมีผลก็ต่อเมื่อคะแนนคลัสเตอร์มีอยู่แล้ว
ด้านล่าง ธรณีประตู (ค่าเริ่มต้นคือ 0.1) เหตุผลเบื้องหลังการตั้งค่านี้คือที่
คะแนนคลัสเตอร์สูง (คลัสเตอร์ที่สมดุลไม่ดี) เราไม่ต้องการยกเลิกการปรับสมดุล
เร็วเกินไปเนื่องจากกำไรในภายหลังอาจมีนัยสำคัญ อย่างไรก็ตาม ภายใต้
เกณฑ์ กำไรทั้งหมดเป็นเพียงค่าเกณฑ์ ดังนั้นเราจึงสามารถออกก่อนกำหนด

--no-disk-ย้าย
พารามิเตอร์นี้ป้องกันไม่ให้ hbal ใช้การย้ายดิสก์ (เช่น "gnt-instance
แทนที่ดิสก์") การดำเนินการนี้จะส่งผลให้มีความสมดุลเร็วขึ้นมาก แต่ของ
แน่นอนว่าการปรับปรุงมีจำกัด ขึ้นอยู่กับผู้ใช้ว่าจะเลือกใช้เมื่อใด
อย่างใดอย่างหนึ่ง

--no-อินสแตนซ์-ย้าย
พารามิเตอร์นี้ป้องกันไม่ให้ hbal ใช้การย้ายอินสแตนซ์ (เช่น "gnt-instance
migrate/failover") การดำเนินการนี้จะใช้เฉพาะการเปลี่ยนดิสก์ที่ช้าเท่านั้น
การดำเนินงานและยังให้ความสมดุลที่แย่ลง แต่จะมีประโยชน์หากย้าย
กรณีที่อยู่รอบ ๆ ถือว่าไม่ปลอดภัยหรือไม่เป็นที่ต้องการ

--evac โหมด
พารามิเตอร์นี้จำกัดรายการของอินสแตนซ์ที่พิจารณาสำหรับการย้ายไปยังรายการ
อาศัยอยู่บนโหนดออฟไลน์/เดรน สามารถใช้แทน (จำนวนมาก) แทนสำหรับ
ของกาเนติเอง gnt-โหนด อพยพพร้อมหมายเหตุว่าไม่รับประกันเต็ม
การอพยพ

--จำกัด-การโยกย้าย
พารามิเตอร์นี้ไม่อนุญาตให้มีการเคลื่อนไหวแทนที่หลัก (frf) เช่นเดียวกับสิ่งเหล่านั้น
การย้ายแทนที่และล้มเหลว (rf) โดยที่โหนดหลักของอินสแตนซ์ไม่ใช่
ระบายออก หากใช้ร่วมกับตัวเลือก --evac-mode การโยกย้ายเฉพาะที่
hbal จะทำคือการย้ายอินสแตนซ์ออกจากโหนดที่ระบายออก สิ่งนี้จะมีประโยชน์ถ้า
ระหว่างการติดตั้งใหม่ของการโยกย้ายระบบปฏิบัติการพื้นฐานสามารถทำได้จาก
OS เก่าไป OS ใหม่ อย่างไรก็ตาม โปรดทราบว่าโดยปกติการใช้แท็กการย้ายข้อมูลคือ
ทางเลือกที่ดีกว่า

--select-instances=*ตัวอย่าง*
พารามิเตอร์นี้ทำเครื่องหมายอินสแตนซ์ที่กำหนด (เป็นรายการที่คั่นด้วยเครื่องหมายจุลภาค) เป็นรายการเดียว
คนที่ถูกย้ายระหว่างการปรับสมดุล

--exclude-instances=*อินสแตนซ์*
พารามิเตอร์นี้ทำเครื่องหมายอินสแตนซ์ที่กำหนด (เป็นรายการที่คั่นด้วยเครื่องหมายจุลภาค) จากเป็น
ย้ายระหว่างการปรับสมดุล

-U util-ไฟล์
พารามิเตอร์นี้ระบุไฟล์ที่เก็บอินสแตนซ์ข้อมูลการใช้งานไดนามิก
ที่จะใช้ในการปรับแต่งอัลกอริธึมการปรับสมดุลเพื่อให้โหลดบนโหนดเท่ากัน
(ตรงข้ามกับการใช้ทรัพยากรแบบคงที่) ไฟล์อยู่ในรูปแบบ "instance_name
cpu_util mem_util disk_util net_util" โดยที่พารามิเตอร์ "_util" ถูกตีความ
เนื่องจากตัวเลขและชื่ออินสแตนซ์ต้องตรงกันทุกประการกับอินสแตนซ์ที่อ่านจาก
กาเนติ. ในกรณีที่ไม่ทราบชื่ออินสแตนซ์ โปรแกรมจะยกเลิก

หากไม่ระบุ ค่าเริ่มต้นจะเป็นค่าหนึ่งสำหรับเมตริกทั้งหมด ดังนั้นจึงเป็นไดนามิก
การใช้ประโยชน์มีผลเพียงประการเดียวต่ออัลกอริธึม: การทำให้เท่าเทียมกันของรอง
อินสแตนซ์ข้ามโหนด (นี่เป็นตัวชี้วัดเดียวที่ไม่ได้ติดตามโดยผู้อื่น
ค่าเฉพาะ ดังนั้นการโหลดดิสก์ของอินสแตนซ์จะทำให้อินสแตนซ์รอง
การทำให้เท่าเทียมกัน) โปรดทราบว่าค่าของหนึ่งจะมีผลเล็กน้อยกับค่าหลักด้วย
จำนวนอินสแตนซ์ แต่มีการติดตามแล้วผ่านตัวชี้วัดอื่น ๆ ดังนั้น
อิทธิพลของการใช้งานแบบไดนามิกจะไม่มีนัยสำคัญในทางปฏิบัติ

--ละเว้น-dynu
หากกำหนดไว้ ข้อมูลการใช้งานแบบไดนามิกทั้งหมดจะถูกละเว้นโดยถือว่าเป็น
0. ตัวเลือกนี้จะมีความสำคัญเหนือกว่าข้อมูลใดๆ ที่ส่งผ่านโดยตัวเลือก -U หรือโดย
MonDs ที่มีตัวเลือก --mond และ --mond-data

--ignore-soft-ข้อผิดพลาด
หากกำหนดไว้ การตรวจสอบข้อผิดพลาดซอฟต์ทั้งหมดจะถูกละเว้นเมื่อพิจารณาการปรับสมดุล
ย้าย ด้วยวิธีนี้ ความคืบหน้าสามารถทำได้ในคลัสเตอร์ที่โหนดทั้งหมดอยู่ในa
สถานะไม่ดีตามนโยบาย เช่น มีอัตราการจองเกินบน CPU หรือแกนหมุน

-S ชื่อไฟล์, --save-cluster=*ชื่อไฟล์*
หากกำหนด สถานะของคลัสเตอร์ก่อนการปรับสมดุลจะถูกบันทึกลงในไฟล์ที่กำหนด
บวกกับนามสกุล "ดั้งเดิม" (เช่น ชื่อไฟล์.ต้นฉบับ) และสถานะตอนท้าย
ของความสมดุลจะถูกบันทึกลงในไฟล์ที่กำหนดพร้อมนามสกุล "สมดุล" (เช่น
ชื่อไฟล์.สมดุล). ซึ่งช่วยให้ป้อนสถานะคลัสเตอร์ใหม่เป็น hbal เองได้
หรือตัวอย่างเช่น hspace ผ่านตัวเลือก -t

-t แฟ้มข้อมูล, --ข้อความข้อมูล=*ไฟล์ข้อมูล*
ข้อมูลจำเพาะแบ็กเอนด์: ชื่อของโหนดที่เก็บไฟล์และข้อมูลอินสแตนซ์
(ถ้าไม่เก็บผ่าน RAPI หรือ LUXI) นี้หรือแบ็กเอนด์อื่นๆ ต้องเป็น
เลือก ตัวเลือกอธิบายไว้ในหน้าคน เครื่องมือ(1)

--mond=*ใช่|ไม่*
หากได้รับโปรแกรมจะสอบถาม MonD ทั้งหมดเพื่อดึงข้อมูลจากข้อมูลที่รองรับ
นักสะสมผ่านเครือข่าย

--mond-xen
หากได้รับ ให้สอบถามตัวสะสมเฉพาะ Xen จาก MonD ด้วย โดยมีเงื่อนไขว่าการมอนิเตอร์
daemons ถูกสอบถามเลย

--exit-on-missing-mond-data
หากได้รับ ให้ยกเลิกหากข้อมูลที่ได้จากการสืบค้น MonD ไม่สมบูรณ์ NS
พฤติกรรมเริ่มต้นคือการเดาที่ดีที่สุดตามข้อมูลคงที่ต่อไป

--mond-ข้อมูล แฟ้มข้อมูล
ชื่อของไฟล์ที่เก็บข้อมูลโดย MonD เพื่อแทนที่การสืบค้น MonDs
ผ่านเครือข่าย ส่วนใหญ่จะใช้สำหรับการดีบัก ไฟล์ต้องอยู่ใน JSON
จัดรูปแบบและนำเสนออาร์เรย์ของวัตถุ JSON หนึ่งรายการสำหรับทุกโหนด โดยมีสมาชิกสองคน
สมาชิกคนแรกชื่อโหนดคือชื่อของโหนดและสมาชิกคนที่สองชื่อ
รายงานเป็นอาร์เรย์ของวัตถุรายงาน ออบเจ็กต์รายงานต้องเหมือนกัน
รูปแบบตามที่ผลิตโดยเอเจนต์การมอนิเตอร์

-m กลุ่ม
ข้อมูลจำเพาะแบ็กเอนด์: รวบรวมข้อมูลโดยตรงจาก กลุ่ม ให้เป็นข้อโต้แย้ง
ผ่าน RAPI ตัวเลือกอธิบายไว้ในหน้าคน เครื่องมือ(1)

-L [เส้นทาง]
ข้อมูลจำเพาะแบ็กเอนด์: รวบรวมข้อมูลโดยตรงจากภูตต้นแบบ ซึ่งจะเป็น
ติดต่อผ่าน LUXI (โปรโตคอล Ganeti ภายใน) ตัวเลือกมีอธิบายไว้ใน
man page เครื่องมือ(1)

-X เมื่อใช้แบ็กเอนด์ Luxi hbal ยังสามารถรันคำสั่งที่กำหนดได้ NS
วิธีดำเนินการคือดำเนินการชุดงานแต่ละชุด (ดู -C ตัวเลือกสำหรับ
รายละเอียด) แยกกัน ยกเลิกเมื่อชุดงานไม่มีงานทั้งหมด
ประสบความสำเร็จ. แต่ละขั้นตอนในการแก้ปัญหาการทรงตัวจะถูกแปลตรงทั้งหมด
งาน Ganeti หนึ่งงาน (มี OpCodes ระหว่างหนึ่งถึงสาม) และขั้นตอนทั้งหมดในa
jobset จะดำเนินการควบคู่กันไป ชุดงานนั้นถูกดำเนินการตามลำดับ

การทำงานของชุดงานอาจถูกขัดจังหวะ โปรดดูการจัดการสัญญาณด้านล่าง

-l N, --ความยาวสูงสุด=*N*
จำกัดการแก้ปัญหาไว้ที่ความยาวนี้ สามารถใช้ตัวอย่างเช่นเพื่อทำให้
การดำเนินการสมดุล

--max-cpu=*อัตราส่วนซีพียู*
อัตราส่วนซีพียูเสมือนต่อฟิสิคัลสูงสุด เป็นจำนวนจุดทศนิยมที่มากกว่า
หรือเท่ากับหนึ่ง ตัวอย่างเช่น การระบุ อัตราส่วนซีพียู as 2.5 หมายความว่าสำหรับซีพียู 4 ตัว
เครื่อง ควรอนุญาตให้ใช้ซีพียูเสมือนสูงสุด 10 ตัวสำหรับหลัก
ตัวอย่าง. ค่าหนึ่งเดียวหมายความว่าจะไม่มีการสมัครสมาชิก CPU . มากเกินไป
(ยกเว้นเวลา CPU ที่ใช้โดยโหนดเอง) และค่าที่ต่ำกว่าหนึ่งจะไม่ทำให้
หมายความว่าทรัพยากรอื่น ๆ (เช่นดิสก์) จะไม่ถูกใช้งานอย่างเต็มที่เนื่องจาก
ข้อจำกัดของ CPU

--min-disk=*อัตราส่วนดิสก์*
จำนวนเนื้อที่ว่างบนดิสก์ขั้นต่ำที่เหลือ เป็นตัวเลขทศนิยม สำหรับ
ตัวอย่าง การระบุ อัตราส่วนดิสก์ as 0.25 หมายความว่าอย่างน้อยหนึ่งในสี่ของดิสก์
ควรเว้นพื้นที่ว่างบนโหนด

-G ยูอิด, --group=*uuid*
บนคลัสเตอร์หลายกลุ่ม เลือกกลุ่มนี้สำหรับการประมวลผล มิฉะนั้น hbal will
ยกเลิก เนื่องจากไม่สามารถปรับสมดุลหลายกลุ่มพร้อมกันได้

-ใน, --รายละเอียด
เพิ่มความฟุ่มเฟือยของเอาต์พุต การใช้ตัวเลือกนี้แต่ละครั้งจะเพิ่ม
การใช้คำฟุ่มเฟือย (ปัจจุบันมีมากกว่า 2 รายการไม่สมเหตุสมผล) จากค่าเริ่มต้นของหนึ่ง

-NS, --เงียบ
ลดความละเอียดของเอาต์พุต การใช้ตัวเลือกนี้แต่ละครั้งจะลดลง
การใช้คำฟุ่มเฟือย (น้อยกว่าศูนย์ไม่สมเหตุสมผล) จากค่าเริ่มต้นของหนึ่ง

-วี --รุ่น
เพียงแสดงเวอร์ชันของโปรแกรมแล้วออก

สัญญาณ การจัดการ


เมื่อรันงานผ่าน LUXI (โดยใช้ตัวเลือก -X) โดยปกติ hbal จะรันงานทั้งหมด
จนกว่าจะมีข้อผิดพลาดเกิดขึ้นหรืองานทั้งหมดเสร็จสิ้นสำเร็จ

เนื่องจากการปรับสมดุลอาจใช้เวลานาน จึงเป็นไปได้ที่จะหยุด hbal ก่อนกำหนดได้สองวิธี:

· โดยการส่ง SIGINT (^C) hbal จะลงทะเบียนคำขอยกเลิกและจะรอ
จนกว่างานที่ส่งในปัจจุบันจะเสร็จสิ้น ณ จุดนั้นงานจะออก (พร้อมรหัสออก 0
หากงานทั้งหมดเสร็จสิ้นอย่างถูกต้อง มิฉะนั้น ด้วยรหัสทางออก 1 ตามปกติ)

· โดยการส่ง SIGTERM hbal จะออกทันที (พร้อมรหัสออก 2); มันคือ
ความรับผิดชอบของผู้ใช้ในการติดตามผลกับ Ganeti และตรวจสอบผลลัพธ์ของ
งานที่กำลังดำเนินการอยู่

โปรดทราบว่าในสถานการณ์ใด ๆ การฆ่า hbal นั้นปลอดภัยอย่างสมบูรณ์ไม่ว่าจะผ่านสัญญาณด้านบน
หรือผ่านสัญญาณอื่น ๆ (เช่น SIGQUIT, SIGKILL) เนื่องจากงานนั้นได้รับการประมวลผล
โดย Ganeti ในขณะที่ hbal (หลังจากส่ง) เฝ้าดูความก้าวหน้าเท่านั้น ในกรณีนี้,
ผู้ใช้จะต้องสอบถาม Ganeti เพื่อขอผลงาน

EXIT สถานภาพ


สถานะการออกของคำสั่งจะเป็นศูนย์ เว้นแต่ด้วยเหตุผลบางประการที่อัลกอริทึมล้มเหลว
(เช่นผิดโหนดหรือข้อมูลอินสแตนซ์) ตัวเลือกบรรทัดคำสั่งที่ไม่ถูกต้อง หรือ (ในกรณีของงาน
การดำเนินการ) งานใดงานหนึ่งล้มเหลว

เมื่อเริ่มดำเนินการงานผ่าน Luxi แล้ว (-X) หากการปรับสมดุลถูกขัดจังหวะก่อนเวลา (ผ่าน
ซิกนต์หรือผ่าน --max-length) แต่งานทั้งหมดดำเนินการได้สำเร็จ สถานะการออกจะเป็น
ศูนย์; รหัสทางออกที่ไม่เป็นศูนย์หมายความว่าควรตรวจสอบสถานะของคลัสเตอร์ตั้งแต่ a
งานล้มเหลวหรือเราไม่สามารถคำนวณสถานะของงานได้ และอาจชี้ถึงปัญหาใน
ด้านกาเนติ.

ใช้ hbal ออนไลน์โดยใช้บริการ onworks.net


เซิร์ฟเวอร์และเวิร์กสเตชันฟรี

ดาวน์โหลดแอพ Windows & Linux

  • 1
    สวก
    สวก
    SWIG คือเครื่องมือพัฒนาซอฟต์แวร์
    ที่เชื่อมโปรแกรมที่เขียนด้วยภาษา C และ
    C++ ที่มีระดับสูงหลากหลาย
    ภาษาโปรแกรม SWIG ใช้กับ
    แตกต่าง...
    ดาวน์โหลด SWIG
  • 2
    WooCommerce Nextjs ตอบสนองธีม
    WooCommerce Nextjs ตอบสนองธีม
    ตอบสนองธีม WooCommerce ที่สร้างขึ้นด้วย
    JS, Webpack, Babel, Node และ . ถัดไป
    Express โดยใช้ GraphQL และ Apollo
    ลูกค้า. ร้านค้า WooCommerce ใน React (
    ประกอบด้วย: สินค้า...
    ดาวน์โหลด WooCommerce Nextjs React Theme
  • 3
    Archlabs_repo
    Archlabs_repo
    แพ็คเกจ repo สำหรับ ArchLabs นี่คือ
    แอปพลิเคชันที่สามารถดึงข้อมูลได้
    ราคาเริ่มต้นที่
    https://sourceforge.net/projects/archlabs-repo/.
    ได้รับการโฮสต์ใน OnWorks ใน...
    ดาวน์โหลด archlabs_repo
  • 4
    โครงการ Zephyr
    โครงการ Zephyr
    โครงการ Zephyr คือคนรุ่นใหม่
    ระบบปฏิบัติการแบบเรียลไทม์ (RTOS) ที่
    รองรับฮาร์ดแวร์หลายตัว
    สถาปัตยกรรม มันขึ้นอยู่กับ
    เคอร์เนลขนาดเล็ก...
    ดาวน์โหลดโครงการ Zephyr
  • 5
    SCCons
    SCCons
    SCons เป็นเครื่องมือสร้างซอฟต์แวร์
    ที่เป็นทางเลือกที่เหนือกว่า
    เครื่องมือสร้าง "Make" แบบคลาสสิกที่
    เราทุกคนรู้จักและชื่นชอบ SCCons คือ
    ดำเนินการก...
    ดาวน์โหลด SCCons
  • 6
    พีเอสอินท์
    พีเอสอินท์
    PSeInt เป็นล่ามรหัสหลอกสำหรับ
    นักศึกษาการเขียนโปรแกรมที่พูดภาษาสเปน
    จุดประสงค์หลักคือเพื่อเป็นเครื่องมือสำหรับ
    การเรียนรู้และทำความเข้าใจพื้นฐาน
    แนวคิด...
    ดาวน์โหลด PSeInt
  • เพิ่มเติม»

คำสั่ง Linux

Ad