นี่คือคำสั่ง kaget ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
kanif - เครื่องห่อ TakTuk สำหรับการจัดการคลัสเตอร์
เรื่องย่อ
Kash|ตกใจ|kaput [-aFHhimqsV] [-f ไฟล์ conf] [-l เข้าสู่ระบบ] [-M รายการเครื่องจักร] [-n|-w โหนด]
[-o ตัวเลือก] [-p ระดับ] [-r สั่งการ] [-T ตัวเลือก] [-t หมดเวลา] [-u หมดเวลา] [-x โหนด]
[สเปคเครื่อง] [ตัวเครื่อง]
DESCRIPTION
คานิฟ เป็นเครื่องมือสำหรับการจัดการและการบริหารคลัสเตอร์ มันรวมคุณสมบัติหลักของ
เครื่องมือการจัดการคลัสเตอร์ที่รู้จักกันดีเช่น c3, pdsh และ dsh และเลียนแบบไวยากรณ์ สำหรับ
การจัดการคลัสเตอร์ที่มีประสิทธิภาพขึ้นอยู่กับ ตักตุ๊ก, เครื่องมือสำหรับรีโมทขนาดใหญ่
การปรับใช้การดำเนินการ
สำหรับงานคู่ขนานอย่างง่ายที่ต้องดำเนินการบนเครื่องปกติ เช่น คลัสเตอร์
ตักตุ๊ก ไวยากรณ์ซับซ้อนเกินไป เป้าหมายของ คานิฟ คือการให้ง่ายขึ้นและคุ้นเคย
ไวยากรณ์สำหรับผู้ดูแลระบบคลัสเตอร์ในขณะที่ยังคงใช้ประโยชน์จาก ตักตุ๊ก ลักษณะ
และคุณสมบัติต่างๆ (การปรับตัว ความสามารถในการปรับขนาด การเคลื่อนย้าย การเผยแพร่อัตโนมัติ และข้อมูล
การเปลี่ยนเส้นทาง)
ไปทำงาน, คานิฟ ต้องค้นหาคำสั่ง "taktuk" (เวอร์ชัน 3.3 ขึ้นไป) ใน user
เส้นทาง. ข้อกำหนดอื่น ๆ เหมือนกับ ตักตุ๊ก: มันต้องใช้บนโหนดทั้งหมดของ
คลัสเตอร์ ล่าม Perl ที่ใช้งานได้ (เวอร์ชัน 5.8 ขึ้นไป) และคำสั่งให้บันทึกโดยไม่ใช้
รหัสผ่าน (เช่น "ssh" ที่ติดตั้งคีย์ rsa ที่เหมาะสม)
คานิฟ จัดเตรียมคำสั่งง่ายๆ สามคำสั่งสำหรับการดูแลระบบและการจัดการคลัสเตอร์:
Kash: รันคำสั่งเดียวกันบนหลายโหนด
kaput: กระจายสำเนาของไฟล์หรือไดเร็กทอรีไปยังหลายโหนด
ตกใจ: รวบรวมไฟล์หรือไดเร็กทอรีระยะไกลหลายไฟล์
คานิฟ รวมข้อดีของเครื่องมือการจัดการคลัสเตอร์หลายอย่าง คุณสมบัติหลักของมันสามารถ
สรุปได้ดังนี้
· ไฟล์คอนฟิกูเรชันแบบ C3 สำหรับการตั้งค่าคลัสเตอร์แบบคงที่
· ตัวเลือกคล้าย pdsh เช่น ช่วงโหนดและระยะหมดเวลา
·การรวบรวมการเรียงลำดับและการรวมเอาท์พุตเหมือน dshbak
เช่นเดียวกับ "pdsh" คานิฟ สามารถตรวจสอบและควบคุมการปรับใช้โดยสัญญาณ เมื่อไหร่ คานิฟ
ได้รับ SIGINT (ปกติจะส่งโดยพิมพ์ Ctrl-C) จะแสดงข้อมูลสรุปโดยย่อของ
สถานะการปรับใช้และความคืบหน้าในการดำเนินการคำสั่ง หลังจาก SIGINT แรกนี้ ถ้า คานิฟ
รับสัญญาณที่สองภายในหนึ่งวินาที:
· จะยุติการดำเนินการ (ยกเลิกงานต่อเนื่องใดๆ) หากเป็น SIGINT
· ยกเลิกการเชื่อมต่อที่กำลังดำเนินอยู่และเริ่มดำเนินการกับโหนดที่ปรับใช้แล้ว
ถ้านี่คือ SIGTSTP (ปกติจะส่งโดยพิมพ์ Ctrl-Z)
ในตอนท้ายของการประหารชีวิต คานิฟ ยังรายงานสรุปความล้มเหลวอย่างรวดเร็ว: การเชื่อมต่อและ
การดำเนินการคำสั่ง
OPTIONS
เพื่อช่วยผู้ดูแลระบบในการทำงาน คานิฟ ไวยากรณ์ตัวเลือกใกล้เคียงที่สุดเพื่อ
C3/pdsh/dsh เครื่องมือที่รู้จักกันดี
-a
--ทั้งหมด
ปรับใช้กับโหนดทั้งหมดของคลัสเตอร์ที่กำหนดค่าทั้งหมด
-f ไฟล์ conf
--ไฟล์ ไฟล์ conf
ใช้ "conf-file" เป็นไฟล์กำหนดค่าแทนค่าเริ่มต้น ความเป็นไปได้หลายประการคือ
ตรวจสอบไฟล์การกำหนดค่าเริ่มต้น ตามลำดับ: "$HOME/.kanif.conf",
"/etc/kanif.conf", "/etc/c3.conf"
-F
--แบนปรับใช้
ปรับใช้การดำเนินการระยะไกลทั้งหมดจากโหนดรูท (ซึ่งดำเนินการ kanif) มีประโยชน์เมื่อ
โหนดระยะไกลไม่สามารถเข้าสู่ระบบซึ่งกันและกัน
-H
--ศีรษะ
ปรับใช้เฉพาะบนโหนด "หัว" ของคลัสเตอร์ (โดยใช้อินเทอร์เฟซภายในเครื่อง) สำหรับทั้งหมดที่ระบุ
คลัสเตอร์
-h
--ช่วยด้วย
พิมพ์ข้อความช่วยเหลือสั้นๆ และออก
-i
--เชิงโต้ตอบ
ขอคำยืนยันก่อนดำเนินการใดๆ การกระทำคือการดำเนินการของคำสั่งเดียว
บนโฮสต์ทั้งหมด (ค่าเริ่มต้น) หรือการดำเนินการคำสั่งเดียวบนโฮสต์เดียว (sequential
โหมดดู -s สวิตซ์).
-l เข้าสู่ระบบ
--เข้าสู่ระบบ เข้าสู่ระบบ
ใช้ "เข้าสู่ระบบ" ที่กำหนดเพื่อเชื่อมต่อกับโฮสต์ระยะไกล
-M เครื่องรายการ
--รายการ เครื่องรายการ
เพิ่มชื่อที่มีอยู่ในไฟล์ชื่อ "machines-list" ให้กับโฮสต์ระยะไกล คานิฟ
ยอมรับได้มาก -M ตัวเลือกตามที่คุณต้องการ
-m
--การตรวจสอบ
ทำให้ คานิฟ ละเอียดมากขึ้นเกี่ยวกับสิ่งที่เกิดขึ้นระหว่างการดำเนินการคำสั่งการปรับใช้
-n โหนด
--โหนด โหนด
เพิ่ม "โหนด" ที่กำหนดในการปรับใช้ ดูหัวข้อ "HOSTNAMES SPECIFICATION" สำหรับ
ข้อมูลเพิ่มเติมเกี่ยวกับไวยากรณ์ "โหนด" คานิฟ ยอมรับได้มาก -n ตัวเลือกตามที่คุณต้องการ
-o ตัวเลือก
--remote-opts ตัวเลือก
ตั้งค่าอ็อพชันเพิ่มเติมที่จะส่งผ่านไปยังคำสั่งรีโมตเชลล์
-p ระดับ
--หลังการประมวลผล ระดับ
ตั้งค่าระดับของการจัดรูปแบบเอาต์พุตที่ทำใน คานิฟ. แนวคิดทั่วไปคือ: ยิ่งสูง
ระดับ ผลลัพธ์ที่เรียงลำดับ ผสาน และมนุษย์อ่านได้มากขึ้น ค่าเริ่มต้นคือ 4 ต่างกัน
ระดับคือ:
0 ไม่มีการประมวลผลเลย: พิมพ์เอาต์พุตคำสั่งดิบไปที่ stdout และคำสั่งดิบ
ข้อผิดพลาดถูกพิมพ์ไปที่ stderr ข้อผิดพลาดในการเชื่อมต่อและการดำเนินการจะไม่ถูกรายงาน
1 เหมือนกับ 0 ยกเว้นว่าชื่อโฮสต์ที่สร้างเอาต์พุตอยู่ข้างหน้า
ก่อนแต่ละบรรทัด
2 เหมือนกับ 1 ยกเว้นว่าเอาต์พุตถูกจัดเรียงตามคำสั่ง (หนึ่งคำสั่งที่สมบูรณ์
การดำเนินการจะถูกส่งออกทั้งหมดก่อนอื่น) การเชื่อมต่อและการประหารชีวิต
ข้อผิดพลาดจะสรุปไว้ที่ส่วนท้ายของ stderr
3 เหมือนกับ 2 ยกเว้นว่าพิมพ์ชื่อโฮสต์ครั้งเดียว จัดรูปแบบเป็นชื่อเรื่องก่อน
ผลลัพธ์ของมัน
4 เหมือนกับ 3 ยกเว้นว่าเอาต์พุตที่เหมือนกันที่สร้างโดยหลายโหนดจะถูกพิมพ์ครั้งเดียว
โดยเจ้าภาพทั้งหมดสรุปไว้ในชื่อเรื่อง
-q
--ดรายรัน
เมื่อให้ตัวเลือกนี้ คานิฟ ไม่ทำอะไรเลยและพิมพ์การกำหนดค่ารีโมท
โหนดที่มันจะพยายามติดต่อและ ตักตุ๊ก คำสั่งที่จะได้รับ
ดำเนินการ
-r คำสั่ง
--remote-cmd คำสั่ง
ตั้งชื่อ "คำสั่ง" ที่ใช้ติดต่อกับโฮสต์ระยะไกล (ค่าเริ่มต้นคือ "ssh -o
StrictHostKeyChecking=no -o BatchMode=yes")
-s
--ลำดับ
แต่ละคำสั่งจะดำเนินการตามลำดับบนโฮสต์ระยะไกล (โดยใช้คำสั่งที่ให้ไว้บน
บรรทัดคำสั่งตามคำสั่งโฮสต์)
-T ตัวเลือก
--taktuk-ตัวเลือก ตัวเลือก
อนุญาตให้ผู้ใช้ระดับสูงส่งตัวเลือกบางอย่างไปที่ ตักตุ๊ก ดำเนินการคำสั่ง (ข้อควรระวัง:
รวมเสมอ -s ซึ่งเป็นค่าเริ่มต้นเว้นแต่คุณจะรู้ว่าคุณกำลังทำอะไรอยู่)
-t การหยุดพักชั่วคราว
--หมดเวลา การหยุดพักชั่วคราว
ให้ค่าการหมดเวลาสำหรับความพยายามในการเชื่อมต่อ เมื่อหมดอายุ การเชื่อมต่อจะถูกยกเลิก
และการปรับใช้บนโฮสต์ระยะไกลจะถูกยกเลิก
-u การหยุดพักชั่วคราว
--ขีดจำกัดบน การหยุดพักชั่วคราว
ให้ค่าการหมดเวลาสำหรับการดำเนินการคำสั่ง เมื่อหมดอายุคำสั่งจะถูกฆ่าด้วย
สัญญาณ TERM
-V
--รุ่น
พิมพ์ คานิฟ รุ่นและทางออก
-w
-คอล
คำพ้องความหมายกับ -n.
-x โหนด
--ไม่รวม โหนด
ยกเว้นบางโหนดจากโหนดที่กำหนดโดยใช้ -n or -w. ใช้กับชุดโฮสต์ทั้งหมดที่
ยังไม่มีส่วนการยกเว้น ใช้ไม่ได้กับโฮสต์ที่ให้กับ -M ตัวเลือก
และพวกเรา
โดยปกติทั้งหมด คานิฟ ตัวเลือกสามารถกำหนดได้โดยตัวแปรสภาพแวดล้อม เหตุผลก็คือ
ตัวเลือกบูลีนมีค่า 0/1 และการตั้งค่าสภาพแวดล้อมถูกแทนที่ด้วยบรรทัดคำสั่ง
สวิทช์
ชื่อของตัวแปรสภาพแวดล้อมที่ใช้โดย คานิฟ ทำจากชื่อตัวเลือกยาว
ตัวพิมพ์ใหญ่ด้วยขีดกลางแทนที่ด้วยขีดล่างและ "KANIF_" นำหน้า (เช่น
"KANIF_ALL", "KANIF_HEAD" และอื่นๆ) กฎนี้ยอมรับข้อยกเว้นดังต่อไปนี้ (ว่า
ได้รับเลือกให้เลียนแบบพฤติกรรม C3/dsh):
KANIF_CONF
แทนที่จะเป็น KANIF_FILE สำหรับไฟล์กำหนดค่า
KANIF_USER
แทน KANIF_LOGIN สำหรับชื่อล็อกอิน
โปรดสังเกตว่าตัวแปร KANIF_WCOLL ไม่มีความหมายถึง คานิฟ.
ชื่อโฮสต์ คุณสมบัติ
ชื่อโฮสต์ที่มอบให้ คานิฟ อาจเป็นชื่อเครื่องธรรมดาหรือรายการโฮสต์ที่ซับซ้อน
ข้อกำหนด ในรูปแบบทั่วไป ชื่อโฮสต์ประกอบด้วยชุดโฮสต์และตัวเลือก
ชุดการยกเว้นคั่นด้วยเครื่องหมายทับ แต่ละชุดเหล่านั้นเป็นรายการโฮสต์ที่คั่นด้วยเครื่องหมายจุลภาค
แม่แบบ เทมเพลตเหล่านี้แต่ละอันทำจากชิ้นส่วนคงที่ (อักขระอยู่นอกวงเล็บ)
และส่วนช่วงเสริม (อักขระภายในวงเล็บ) แต่ละส่วนของช่วงเป็นเครื่องหมายจุลภาค
แยกรายการของช่วงเวลาหรือค่าเดียว แต่ละช่วงประกอบด้วยค่าเดียวสองค่า
คั่นด้วยเส้นประ สิ่งนี้เป็นจริงสำหรับชื่อโฮสต์ทั้งหมดที่มอบให้กับ คานิฟ (ทั้งกับ -M or -n/-ว
ตัวเลือก).
กล่าวอีกนัยหนึ่ง นิพจน์ต่อไปนี้เป็นข้อกำหนดเฉพาะของโฮสต์ที่ถูกต้อง:
โหนด1
โหนด[19]
โหนด[1-3]
โหนด[1-3],otherhost/node2
node[1-3,5]part[a-b]/node[3-5]parta,node1partb
พวกเขาขยายเป็น:
โหนด1
โหนด19
โหนด1 โหนด2 โหนด3
node1 node3 โฮสต์อื่น
โหนด1parta node2parta node2partb node3partb node5partb
โปรดสังเกตว่ารายการค่าเหล่านี้ไม่ใช่นิพจน์ทั่วไป ("node [19]" คือ "node19" และ
ไม่ใช่ "node1, node2, ...., node9") ช่วงเวลาจะดำเนินการโดยใช้อัตโนมัติเวทย์มนตร์ Perl
เพิ่มคุณสมบัติ คุณจึงสามารถใช้ค่าตัวเลขและตัวอักษรเป็นขอบเขตช่วงเวลาได้ (ดูperl
เอกสารประกอบ, ตัวดำเนินการ ++ สำหรับข้อจำกัดของการเพิ่มอัตโนมัตินี้)
เครื่องจักร ข้อมูลจำเพาะ
ด้วยระบบเส้นทาง คานิฟคุณสามารถระบุรีโมตโหนดที่คุณต้องการทำบางสิ่งโดยใช้
สวิตช์บรรทัดคำสั่ง (-n และ -x, pdsh/dsh style) โดยใช้ข้อมูลจำเพาะของเครื่อง (C3
สไตล์) หรือทั้งสองอย่าง ดังนั้น เอกสารส่วนนี้อาจถูกละเว้นหากคุณไม่ต้องการ
เพื่อใช้การจัดการโหนดสไตล์ C3
หากต้องการใช้ข้อมูลจำเพาะของเครื่อง คุณต้องอธิบายคลัสเตอร์ของคุณในไฟล์การกำหนดค่า (ดู
-f ตัวเลือกและ kanif.conf(5)). สเปคเครื่องเป็นช่วงโหนดที่นำมาจาก
คลัสเตอร์ที่กำหนดไว้ในไฟล์นี้
ข้อมูลจำเพาะของเครื่องคือชื่อคลัสเตอร์ที่เป็นทางเลือก ตามด้วยโคลอนและตัวเลือก
พิสัย. คลัสเตอร์ดีฟอลต์จะถูกนำไปใช้หากไม่มีการระบุชื่อคลัสเตอร์ โหนดทั้งหมดของ
คลัสเตอร์จะถูกนำไปใช้หากไม่มีการกำหนดช่วง สังเกตว่าถ้าไม่มี -n/-w, -M หรือเครื่อง
กำหนดข้อกำหนดในบรรทัดคำสั่ง โฮสต์ระยะไกลจะถือว่าเป็น
โหนดของคลัสเตอร์เริ่มต้น
คำสั่ง ร่างกาย
ขึ้นอยู่กับชื่อที่ใช้เรียก (Kash, kaput or ตกใจ), คานิฟ ไม่ได้ดำเนินการ
งานเดียวกัน นี่คือพฤติกรรมที่หลากหลาย:
Kash [ตัวเลือก] [บรรทัดคำสั่ง]
ดำเนินการส่วนสุดท้ายของบรรทัดคำสั่งบนโฮสต์ระยะไกลทั้งหมด ถ้าส่วนนี้สุดท้าย
ว่างเปล่าเข้าสู่โหมดโต้ตอบซึ่ง คานิฟ รอคำสั่ง (หนึ่งรายการต่อบรรทัด) บน
มาตรฐาน ในโหมดโต้ตอบ เพียงส่งอักขระ EOF (Ctrl-D) เพื่อออกจากแคช
kaput [ตัวเลือก] src1 [src2 ...] ปลายทาง
คัดลอกไฟล์หรือไดเร็กทอรีอย่างน้อยหนึ่งไฟล์ไปยังรีโมตโฮสต์ทั้งหมด อาร์กิวเมนต์สุดท้ายคือ
พาธไปยังไฟล์ปลายทางหรือไดเร็กทอรีบนเครื่องระยะไกล อื่น ๆ
อาร์กิวเมนต์คือไฟล์ในเครื่องหรือไดเร็กทอรีที่จะคัดลอก พฤติกรรมและข้อจำกัดมีความคล้ายคลึงกัน
ตามคำสั่ง cp(1)
ตกใจ [ตัวเลือก] src1 [src2 ...] ปลายทาง
ดาวน์โหลดไฟล์หรือไดเรกทอรีมากกว่าหนึ่งไฟล์จากโฮสต์ระยะไกลทั้งหมด สุดท้าย
อาร์กิวเมนต์คือเส้นทางไปยังไดเร็กทอรีปลายทางบนเครื่องท้องถิ่น อื่น ๆ
อาร์กิวเมนต์เป็นพาธไปยังไฟล์หรือไดเร็กทอรีบนรีโมตโฮสต์ แต่ละแหล่งจะต้อง
ปรากฏบนโฮสต์ระยะไกลทั้งหมด แหล่งที่มาจะถูกคัดลอกไปยังไดเร็กทอรีปลายทาง
มีโฮสต์ต้นทางต่อท้ายชื่อของพวกเขา
สังเกตว่าเมื่อใช้ ตกใจ or kaput แต่ละไฟล์หรือไดเร็กทอรีจะถูกคัดลอกอย่างสมบูรณ์ก่อน
ดำเนินการต่อไป
ตัวอย่าง
เมื่อมีไฟล์การกำหนดค่าอยู่บนระบบหรือได้รับในบรรทัดคำสั่ง (ดูตัวเลือก
-f) สามารถระบุเครื่องระยะไกลได้โดยใช้ชื่อคลัสเตอร์ ยกตัวอย่างง่ายๆ
การดำเนินการของคำสั่ง "ls -l" บนโหนดทั้งหมดของคลัสเตอร์ที่ชื่อ "megacluster" can
เขียน:
แคชเมกะคลัสเตอร์: ls -l
นอกจากนี้ยังสามารถกำหนดช่วงเวลาได้ คำสั่งต่อไปนี้คัดลอกไฟล์ .cshrc ในเครื่องไปที่
ไดเร็กทอรีล็อกอินของชุดย่อยของคลัสเตอร์เริ่มต้นและชุดย่อยอื่นของ
"เมกะคลัสเตอร์":
ไฟล์ :3-6 megacluster:2-5 $HOME/.cshrc
สุดท้าย เราสามารถใช้ประโยชน์จากพฤติกรรมเริ่มต้นเพื่อรวบรวมไฟล์ชื่อ
"results.txt" อยู่ใน "/ Tmp" ไดเรกทอรีบนโหนดทั้งหมดของคลัสเตอร์เริ่มต้นto
ไดเรกทอรีท้องถิ่น "ผลลัพธ์":
kaget /tmp/results.txt ผลลัพธ์
เมื่อผู้ใช้ไม่ต้องการเขียนไฟล์กำหนดค่าหรือเพียงแค่ต้องการปรับใช้ในบางส่วน
โหนดอื่น ๆ เป็นไปได้ที่จะให้โฮสต์ระยะไกลบนบรรทัดคำสั่ง:
kash -n localhost, supernode uptime
คำสั่งสุดท้ายนี้จะดำเนินการ "uptime" บน "localhost" และ "supernode" การให้
ช่วงเวลาและรายการยกเว้นยังสามารถทำได้บนบรรทัดคำสั่ง คำสั่งต่อไปนี้
คัดลอกไฟล์ "/tmp/temporary.txt" ไปยังรีโมท "/ Tmp" ไดเร็กทอรีของ node1 และ node5:
kaput -n โหนด[1-6] -x โหนด[2-4],node6 /tmp/temporary.txt / Tmp
สุดท้าย โดยไม่ต้องใส่รายละเอียดของแต่ละตัวเลือก คำสั่งสุดท้ายจะแสดงให้เห็น
-u ตัวเลือก. จะดำเนินการในช่วง 5 วินาที "ping" ถึง "gateway" จาก 5 โหนด:
kash -n โหนด[1-2],โหนด[4-6] -u 5 ping เกตเวย์
ใช้ kaget ออนไลน์โดยใช้บริการ onworks.net