เหตุใด open-iscsi จึงช้ากว่าการเขียนสองครั้งกว่า Samba ผ่าน 10G Ethernet


9

บนเซิร์ฟเวอร์ไฟล์ในเครื่องของฉันฉันมี RAID-6 บนไดรฟ์ HDD 7x

dd if=/dev/zero of=tempfile bs=1M count=2048 conv=fdatasync

การทดสอบความเร็วในท้องถิ่นให้ความเร็วการเขียน 349 MB / s

การเขียนจากระยะไกลไปยัง Samba จาก SSD (> ความเร็วในการอ่าน 2Gb / s) ให้ฉัน 259 MB / s การเขียน แต่การเขียนจากระยะไกลไปยังไดรฟ์ iSCSI (บน Win10 iSCSI ริเริ่ม) ให้ฉันเพียงแค่ 151 Mb / s การเขียน

Raid6 config - ขนาดก้อน 128K, Stripe_cache_size = 8191 บิตแมปการเขียนเจตนาอยู่บน SSD (Samsung 860 PRO, 4096K บิตแมปก้อน)

อาร์เรย์ติดตั้งด้วยตัวเลือก: rw,noatime,nobarrier,commit=999,stripe=128,data=writeback

การตั้งค่า open-iscsi: เป้าหมายขึ้นอยู่กับไฟล์ 4Tb

คำใบ้ใด ๆ ที่ทำให้ iSCSI ช้ากว่าการเขียนบน Samba คำแนะนำใด ๆ เกี่ยวกับวิธีปรับปรุง iSCSI เขียนความเร็ว?

ฉันคิดว่ามันมีบางอย่างเกี่ยวกับความต้องการของ open-iscsi ในการเขียนข้อมูลลงดิสก์หลังจากการดำเนินการแต่ละครั้ง แต่ฉันไม่แน่ใจว่าจะแก้ไขได้อย่างไร ความเร็วมันสำคัญกว่าความปลอดภัยของข้อมูลที่เขียนในปัจจุบันในกรณีที่ไฟฟ้าดับ

ในฐานะที่เป็นบันทึกด้านข้างเก่าเป้าหมาย ietd iSCSI มีความสามารถในการเปิดใช้งานโหมดการเขียนกลับ (โดยใช้ IOMode=wb) และความเร็วในการเขียนที่ยั่งยืนนั้นเร็วกว่ามาก น่าเสียดายที่ปัจจุบันดูเหมือนว่าจะไม่มีการระบาย


2
เครือข่ายเป็นอย่างไร 10GigE? รุ่น OS ของเซิร์ฟเวอร์คืออะไรรุ่นของเคอร์เนล เป้าหมายและเวอร์ชั่นของ iscsi คืออะไร? ietd, scst หรือ lio? Open-iscsi เป็นเพียงตัวเริ่มต้นไม่ใช่เป้าหมาย ... คุณใช้อะไรในการวัดความเร็วในการเขียน? ระบบไฟล์ที่ใช้กับเป้าหมายคืออะไร?
wazoox

ใน Windows 10 QoS ถูกลบออกจาก NIC หรือไม่
yagmoth555

2
การโพสต์การกำหนดค่าเป้าหมาย iSCSI ของคุณและความสามารถในการปรับเครือข่ายใด ๆ ที่ได้รับการปรับปรุงจะต้องระมัดระวังในกรณีนี้ คุณอาจพิจารณาการทดสอบด้วยตัวเริ่มต้น iscsi บนไคลเอนต์ linux ที่มีเคอร์เนลที่ทันสมัยเพื่อให้การเปรียบเทียบที่ชัดเจนระหว่างผู้เริ่มต้นที่ใช้เป้าหมายเดียวกันเนื่องจากการทดสอบที่มีอยู่อาจแคบลงมากโดยผู้ริเริ่ม Windows ข้อมูลเพิ่มเติม == ดีขึ้น
Spooler

1
แต่เท่าที่คำถามที่เกี่ยวข้องเป็นจริง : iSCSI และ Samba นั้นแตกต่างกันมากและคุณกำลังใช้เลเยอร์แคช VFS เมื่อใช้ Samba ที่ไม่มีอยู่ในอุปกรณ์บล็อกเปล่า ฉันเข้าใจว่าคุณประหลาดใจกับความแตกต่างของประสิทธิภาพ แต่คุณสนใจการเปรียบเทียบนี้มากขึ้นหรือทำให้ iSCSI ทำให้เครือข่ายของคุณอิ่มตัว หาก iSCSI เป็นข้อกังวลหลักของคุณและประสิทธิภาพของ Samba นั้นมีรายละเอียดเล็กน้อยสำหรับบริบทคุณอาจแก้ไขคำถามเพื่อให้ชัดเจนยิ่งขึ้น (และอาจได้รับคำตอบที่ดีกว่า)
Spooler

คุณใช้ Windows 10 สำหรับการทดสอบ แต่ฉันไม่เห็นรายละเอียดของเครื่องที่ใช้ทุกที่ (และทำไมต้องใช้ระบบปฏิบัติการไคลเอนต์ Windows สำหรับการทดสอบดังกล่าว)
yagmoth555

คำตอบ:


6

ประการแรก RAID-6 เป็นปัญหาเนื่องจากการคำนวณพาริตีคู่ ประการที่สองคุณสามารถเชื่อมต่อ iSCSI เป้าหมายได้สองครั้งใน MS iSCSI Initiator เปิดใช้งาน RR หรือ Least Queue Depth (น่าเสียดายที่ Win10 ไม่รองรับการทำงานหลายแบบดังนั้นคุณสามารถทดสอบกับ Windows Server แทน)

ในความเป็นจริงการเข้าถึงระดับบล็อกต้องเร็วกว่าการเข้าถึงระดับไฟล์ เครื่องมือเปรียบเทียบประเภทใดที่คุณใช้จากไซต์ Windows ฉันจะแนะนำให้ใช้ diskspd หรือ FIO นอกจากนี้คุณสามารถใช้บางอย่างเช่น Starwind เป็นเป้าหมาย iSCSI ที่เร็วขึ้นมาก

https://www.starwindsoftware.com/starwind-virtual-san#Hyper-V


2
Raid 6 อยู่ในฮาร์ดแวร์ - ไม่ใช่ซอฟต์แวร์ มันไม่ใช่ปัญหาด้านประสิทธิภาพอีกต่อไปตั้งแต่ประมาณ 20 ปี
นิลส์

RAID-6 เป็นปัญหาหรือไม่? การคำนวณพาริตีเกิดขึ้นโดยไม่คำนึงถึงโปรโตคอล
Daniel

2
RAID6 นั้นช้าลงไม่ใช่เพราะการคำนวณพาริตี แต่เป็นเพราะ“ รูที่เขียน” ซึ่งเป็นผลมาจากลักษณะ RAID ของแพริตีแบบอ่าน - แก้ไข - เขียน
BaronSamedi1958

3
"Raid 6 อยู่ในฮาร์ดแวร์ - ไม่ใช่ซอฟต์แวร์มันไม่เป็นปัญหาด้านประสิทธิภาพอีกต่อไปแล้วตั้งแต่ประมาณ 20 ปี - Nils Mar 21 เวลา 10:05" -> นี่ไม่ใช่ความจริง :( อ่านนี่ -> theithollow.com/
2012/03/21

1

ควรใช้ iSCSI ในระดับบล็อกคำอธิบายการตั้งค่าของคุณดูเหมือนว่าคุณกำลังใช้ระบบไฟล์วางไฟล์ไว้แล้วเรียกใช้ไฟล์นี้เป็นเลเยอร์บล็อก iSCSI

สิ่งนี้อยู่ไกลจากความสมบูรณ์แบบและไม่ได้ตั้งค่าสำหรับการเปรียบเทียบความเร็ว ลองใช้ lvm ที่ด้านบนของ raid6 เพื่อแบ่งส่วนพื้นที่และอยู่ในเลเยอร์บล็อกสำหรับ iSCSI หรือใช้ Raid6 โดยตรงเป็นอุปกรณ์ iSCSI

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


1

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

เพื่อตอบคำถามของคุณ (เช่นเดียวกับการเปรียบเทียบ) คุณจะต้องแยกชิ้นส่วนเพื่อระบุบิตที่แนะนำปัญหา ตัวอย่างเช่นการเขียนไปยังระบบไฟล์ Windows โดยตรง (และไม่เกิน iSCSI) ก็เร็วมากเช่นกัน? หากคุณใช้การกำหนดค่าฮาร์ดแวร์เดียวกันและเรียกใช้ Linux แทน Windows จะเร็วหรือช้าลง? จะเกิดอะไรขึ้นถ้าคุณเปลี่ยนไปใช้เป็นเครื่องมือที่มีมาตรฐานเหมือนFiO ?

น่าเศร้าที่มีความเป็นไปได้มากมายเกินกว่าที่จะตอบคำถามแบบนี้ได้ ...

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.