Date: พฤศจิกายน 27, 2018
ป้ายกำกับ:Fusion-io, การทำซ้ำ, ลินุกซ์, เพิ่มประสิทธิภาพการจำลองแบบสำหรับการจัดกลุ่ม linux ด้วย io แบบฟิวชั่น
เคล็ดลับเพื่อเพิ่มประสิทธิภาพการจำลองแบบสำหรับ Linux Clustering ด้วย Fusion-io
เมื่อคนส่วนใหญ่คิดถึงการตั้งค่าคลัสเตอร์เซิร์ฟเวอร์จะมีเซิร์ฟเวอร์มากกว่าสองเครื่องและ SAN หรือบางส่วนของที่เก็บข้อมูลที่แชร์กัน SAN มีค่าใช้จ่ายสูงมากและซับซ้อนในการติดตั้งและบำรุงรักษา นอกจากนี้ยังแสดงให้เห็นถึงเทคนิคที่เป็นไปได้ในจุดเดียวของความล้มเหลว (SPOF) ในสถาปัตยกรรมคลัสเตอร์ของคุณ ทุกวันนี้ผู้คนจำนวนมากหันไปหา บริษัท อย่าง Fusion-io พร้อมด้วย ioDrives ที่เร็วที่สุดเพื่อเร่งการใช้งานที่สำคัญ อุปกรณ์จัดเก็บข้อมูลเหล่านี้นั่งอยู่ภายในเซิร์ฟเวอร์ (เช่นไม่ใช่ "ดิสก์ที่ใช้ร่วมกัน") ดังนั้นจึงไม่สามารถใช้เป็นดิสก์คลัสเตอร์กับโซลูชันการจัดกลุ่มแบบเดิม ๆ ได้ โชคดีที่มีวิธีเพิ่มประสิทธิภาพการจำลองแบบสำหรับ Linux Clustering ด้วย Fusion-io โซลูชันที่ช่วยให้คุณสามารถสร้างคลัสเตอร์ failover ได้เมื่อไม่มีที่เก็บข้อมูลที่ใช้ร่วมกันนั่นคือกลุ่ม "ไม่มีการแชร์อะไร"
กลุ่มแบบดั้งเดิม | กลุ่ม "Shared Nothing" |
เมื่อใช้ประโยชน์จากการจำลองข้อมูลเป็นส่วนหนึ่งของการกำหนดค่าคลัสเตอร์สิ่งสำคัญคือคุณมีแบนด์วิธเพียงพอเพื่อให้สามารถจำลองข้อมูลในเครือข่ายได้รวดเร็วเท่าที่เขียนลงดิสก์ ต่อไปนี้คือเคล็ดลับการปรับแต่งที่จะช่วยให้คุณได้รับประโยชน์สูงสุดจากการกำหนดค่าคลัสเตอร์ "ไม่มีการแบ่งปัน" เมื่อมีการเก็บข้อมูลความเร็วสูง:
เครือข่าย
- ใช้ 10Gbps NIC: อุปกรณ์จัดเก็บข้อมูลแบบ Flash จาก Fusion-io (หรือผลิตภัณฑ์อื่นที่คล้ายคลึงกันจาก OCZ, LSI และอื่น ๆ ) สามารถเขียนข้อมูลด้วยความเร็วใน HUNDREDS (750) MB / วินาทีหรือมากกว่า NIC ขนาด 1Gbps สามารถดันสูงสุดได้ถึง 125 เมกะไบต์ต่อวินาทีดังนั้นทุกคนที่ใช้ประโยชน์จากศักยภาพของ ioDrive สามารถเขียนข้อมูลได้เร็วกว่าที่จะถูกผลักผ่านการเชื่อมต่อเครือข่าย 1 Gbps เพื่อให้แน่ใจว่าคุณมีแบนด์วิธที่เพียงพอระหว่างเซิร์ฟเวอร์เพื่ออำนวยความสะดวกในการจำลองแบบข้อมูลแบบเรียลไทม์ควรใช้ NIC ขนาด 10 Gbps เพื่อรับข้อมูลการจำลองแบบ
- เปิดใช้งานกรอบ Jumbo: สมมติว่าการ์ดเครือข่ายและสวิทช์ของคุณสนับสนุนการเปิดใช้งานเฟรม jumbo สามารถเพิ่มประสิทธิภาพการทำงานของเครือข่ายของคุณได้มากขึ้นในขณะเดียวกันก็ลดรอบการทำงานของ CPU หากต้องการเปิดใช้งานเฟรม jumbo ให้ใช้การกำหนดค่าต่อไปนี้ (ตัวอย่างจากเซิร์ฟเวอร์ RedHat / CentOS / OEL linux)
- ifconfig <interface_name> mtu 9000
- แก้ไขไฟล์ / etc / sysconfig / network-scripts / ifcfg- <interface_name> และเพิ่ม "MTU = 9000" เพื่อให้การเปลี่ยนแปลงยังคงอยู่ในการเริ่มต้นใหม่
- เมื่อต้องการตรวจสอบการดำเนินการของกรอบ jumbo แบบ end-to-end ให้เรียกใช้คำสั่งนี้: ping -s 8900 -M do <IP-of-other-server>
- เปลี่ยนความยาวคิวส่งของ NIC:
- / sbin / ifconfig <interface_name> txqueuelen 10000
- เพิ่มข้อมูลนี้ใน /etc/rc.local เพื่อรักษาการตั้งค่าข้ามการเริ่มระบบใหม่
TCP / IP Tuning
- เปลี่ยน netdev_max_backlog ของ NIC:
- ตั้งค่า "net.core.netdev_max_backlog = 100000" ใน /etc/sysctl.conf
- การปรับแต่ง TCP / IP อื่น ๆ ที่ได้รับการแสดงเพื่อเพิ่มประสิทธิภาพการจำลองแบบ:
- หมายเหตุ: เป็นค่าตัวอย่างและอาจจำเป็นต้องปรับเปลี่ยนตามการกำหนดค่าฮาร์ดแวร์ของคุณ
- แก้ไข /etc/sysctl.conf และเพิ่มพารามิเตอร์ต่อไปนี้:
- net.core.rmem_default = 16777216
- net.core.wmem_default = 16777216
- net.core.rmem_max = 16777216
- net.core.wmem_max = 16777216
- net.ipv4.tcp_rmem = 4096 87380 16777216
- net.ipv4.tcp_wmem = 4096 65536 16777216
- net.ipv4.tcp_timestamps = 0
- net.ipv4.tcp_sack = 0
- net.core.optmem_max = 16777216
- net.ipv4.tcp_congestion_control = HTCP
การปรับ
โดยปกติคุณจะต้องปรับเปลี่ยนการกำหนดค่าคลัสเตอร์ของคุณซึ่งจะแตกต่างกันไปขึ้นอยู่กับเทคโนโลยีการจัดกลุ่มและจำลองข้อมูลที่คุณตัดสินใจใช้ ในตัวอย่างนี้ฉันใช้ SteelEye Protection Suite สำหรับ Linux (SPS หรือ aka LifeKeeper) จาก SIOS Technologies จะช่วยให้ผู้ใช้สามารถสร้างกลุ่ม failover ที่ใช้ประโยชน์จากประเภทจัดเก็บข้อมูลแบบแบ็คเอนด์: Fibre Channel SAN, iSCSI, NAS หรือส่วนใหญ่ที่เกี่ยวข้องกับบทความนี้ดิสก์ในเครื่องที่ต้องมีการซิงโครไนซ์ / จำลองแบบเรียลไทม์ระหว่างโหนดคลัสเตอร์ SPS for Linux รวมถึงฟังก์ชันการทำสำเนาข้อมูลระดับบล็อคที่ทำให้การติดตั้งคลัสเตอร์เป็นเรื่องง่ายเมื่อไม่มีที่เก็บข้อมูลที่ใช้ร่วมกัน
ข้อเสนอแนะ
เพื่อเพิ่มประสิทธิภาพการจำลองแบบสำหรับ Linux Clustering ด้วย Fusion-io ให้มากที่สุดลองใช้วิธีนี้ SteelEye Protection Suite (SPS) สำหรับคำแนะนำการกำหนดค่า Linux:
- จัดสรรพาร์ติชันดิสก์ขนาดเล็ก (~ 100 MB) ที่อยู่ในไดรฟ์ Fusion-io เพื่อวางไฟล์บิตแมป สร้างระบบแฟ้มบนพาร์ติชันนี้และติดตั้งตัวอย่างเช่นที่ / bitmap:
- # mount | grep / bitmap
- / dev / fioa1 on / ประเภทบิตแมป ext3 (rw)
- ก่อนที่จะสร้างกระจกของคุณปรับพารามิเตอร์ต่อไปนี้ใน / etc / default / LifeKeeper
- แทรก: LKDR_CHUNK_SIZE = 4096
- ค่าดีฟอลต์คือ 64
- แก้ไข: LKDR_SPEED_LIMIT = 1500000
- (ค่าเริ่มต้นคือ 50000)
- LKDR_SPEED_LIMIT ระบุแบนด์วิดท์สูงสุดที่ resync จะใช้เวลา – ควรตั้งค่าสูงพอที่จะทำให้ resyncs ไปที่ความเร็วสูงสุดเท่าที่จะเป็นไปได้
- แก้ไข: LKDR_SPEED_LIMIT_MIN = 200000
- (ค่าดีฟอลต์คือ 20000)
- LKDR_SPEED_LIMIT_MIN ระบุความเร็วที่ควรจะได้รับอนุญาตให้ทำซ้ำเมื่อมี I / O อื่น ๆ เกิดขึ้นพร้อม ๆ กัน – ตามกฎของหัวแม่มือนี้ควรตั้งค่าให้เขียนได้ไม่เกินครึ่งหรือน้อยกว่าเพื่อหลีกเลี่ยงความอดอยาก ออกกิจกรรม I / O ตามปกติเมื่อเกิดการ resync
- แทรก: LKDR_CHUNK_SIZE = 4096
จากนี้ไปข้างหน้าและสร้างกระจกเงาของคุณและกำหนดค่าคลัสเตอร์ตามปกติ สนใจที่จะเพิ่มประสิทธิภาพการจำลองแบบสูงสุดสำหรับการทำคลัสเตอร์ Linux ด้วย Fusion-io ดูว่า SIOS สามารถให้อะไรได้อีก ทำซ้ำโดยได้รับอนุญาตจาก LinuxClustering