ระบบไฟล์ Linux ที่เร็วที่สุดบนดิสก์ Shingled


13

มีความสนใจอย่างมากในไดรฟ์งูสวัด สิ่งเหล่านี้ทำให้แทร็กข้อมูลอยู่ใกล้กันจนคุณไม่สามารถเขียนไปยังหนึ่งแทร็กได้โดยไม่ต้องปิดกั้นแทร็กถัดไป สิ่งนี้อาจเพิ่มความจุได้ 20% หรือมากกว่านั้น แต่ส่งผลให้เกิดปัญหาการขยายการเขียน มีการดำเนินการกับระบบไฟล์ที่ปรับให้เหมาะกับไดรฟ์ Shingled เช่นดูที่: https://lwn.net/Articles/591782/

ดิสก์ shingled บางตัวเช่นไฟล์เก็บข้อมูล Seagate 8TB มีพื้นที่แคชสำหรับการเขียนแบบสุ่มช่วยให้ประสิทธิภาพที่ดีในระบบไฟล์ทั่วไป ดิสก์สามารถทำงานได้อย่างรวดเร็วแม้ในปริมาณงานทั่วไปบางงานสามารถเขียนได้มากถึง 200MB / วินาที อย่างไรก็ตามเป็นที่คาดหวังว่าหากการสุ่มแคชเขียนมากเกินไปประสิทธิภาพอาจลดลง สันนิษฐานว่าบางระบบไฟล์จะดีกว่าในการหลีกเลี่ยงการเขียนแบบสุ่มโดยทั่วไปหรือรูปแบบของการเขียนแบบสุ่มมีแนวโน้มที่จะล้นแคชการเขียนที่พบในไดรฟ์ดังกล่าว

ระบบไฟล์หลักในเคอร์เนล linux ดีกว่าที่จะหลีกเลี่ยงการลงโทษประสิทธิภาพของดิสก์ที่มีการกระตุกกว่า ext4 หรือไม่?


ในปัจจุบันมีดิสก์ประเภท 2 แผ่น ผู้ที่ต้องการระบบปฏิบัติการที่รองรับเช่นดิสก์ HGST 10TB และที่ไม่ต้องการการสนับสนุนระบบปฏิบัติการเฉพาะเช่น Seagate 8TB Archive คุณหมายถึงอะไร
RJ-

ระบุว่าฉัน จำกัด FS ให้อยู่ในกลุ่มกระแสหลักมันอาจจะต้องเป็นสไตล์ซีเกทหรือไม่?
gmatht

SMR ที่ใช้งานในไดรฟ์ปัจจุบันไม่ส่งผลให้เกิด "ปัญหาการขยายการเขียนเช่น SSD" พวกเขาจะดำเนินการในรูปแบบน้อยมากคลุมเครือเช่น SSDs
qasdfdsaq

@qasdfdsaq ฉันหมายถึง "เหมือนกับ SSD"
gmatht

คำตอบ:


4

ระบบไฟล์ที่มีโครงสร้างแบบ Copy-on-Write และ Log อาจให้ประสิทธิภาพที่ดีกว่าบนดิสก์แบบ shingled โดยลดการลดการเขียนแบบสุ่ม มาตรฐานค่อนข้างสนับสนุนสิ่งนี้อย่างไรก็ตามความแตกต่างเหล่านี้ในการปฏิบัติงานไม่ได้เฉพาะเจาะจงกับดิสก์ที่มีการซ้อนกัน พวกเขายังเกิดขึ้นบนดิสก์ที่ไม่ได้โกนที่ใช้เป็นตัวควบคุม ดังนั้นการเปลี่ยนไปใช้ดิสก์แบบ shingled อาจไม่มีความเกี่ยวข้องกับระบบไฟล์ที่คุณเลือก

ระบบไฟล์ nilfs2 ให้ประสิทธิภาพค่อนข้างดีบนดิสก์ SMR อย่างไรก็ตามนี่เป็นเพราะฉันจัดสรรพาร์ติชั่น 8TB ทั้งตัวและเกณฑ์มาตรฐานเขียนแค่ 0.5TB เท่านั้นดังนั้นตัวทำความสะอาด nilfs จึงไม่ต้องทำงาน เมื่อฉัน จำกัด พาร์ติชั่นไว้ที่ 200GB เบนช์มาร์กของ nilfs ก็ยังไม่เสร็จสมบูรณ์ Nilfs2 อาจเป็นตัวเลือกที่เหมาะกับการใช้งานหากคุณใช้ดิสก์ "เก็บถาวร" เป็นดิสก์เก็บถาวรซึ่งคุณเก็บข้อมูลและสแน็ปช็อตทั้งหมดที่เขียนลงในดิสก์ตลอดไปจากนั้น nilfs cleaner ไม่ต้องทำงาน


ฉันเข้าใจว่าST8000AS0002-1NA17Zไดรฟ์ซีเกทขนาด 8TB ที่ฉันใช้ในการทดสอบมีพื้นที่แคช~ 20GB ฉันได้เปลี่ยนการตั้งค่าเริ่มต้นของ filebench fileserver เพื่อให้ชุดเบนช์มาร์กมีขนาด ~ 125GB ซึ่งใหญ่กว่าพื้นที่แคช unshingled:

set $meanfilesize=1310720
set $nfiles=100000
run 36000

ตอนนี้สำหรับข้อมูลจริง จำนวนของ ops วัดประสิทธิภาพของไฟล์เซิร์ฟเวอร์ "โดยรวม" ในขณะที่ ms / op จะวัดเวลาแฝงของการผนวกแบบสุ่มและสามารถใช้เป็นแนวทางคร่าวๆสำหรับประสิทธิภาพของการเขียนแบบสุ่ม

$ grep rand *0.out | sed s/.0.out:/\ / |sed 's/ - /-/g' |  column -t
SMR8TB.nilfs   appendfilerand1   292176ops 8ops/s   0.1mb/s   1575.7ms/op    95884us/op-cpu [0ms - 7169ms]
SMR.btrfs      appendfilerand1  214418ops  6ops/s   0.0mb/s  1780.7ms/op  47361us/op-cpu  [0ms-20242ms]
SMR.ext4       appendfilerand1  172668ops  5ops/s   0.0mb/s  1328.6ms/op  25836us/op-cpu  [0ms-31373ms]
SMR.xfs        appendfilerand1  149254ops  4ops/s   0.0mb/s  669.9ms/op   19367us/op-cpu  [0ms-19994ms]
Toshiba.btrfs  appendfilerand1  634755ops  18ops/s  0.1mb/s  652.5ms/op   62758us/op-cpu  [0ms-5219ms]
Toshiba.ext4   appendfilerand1  466044ops  13ops/s  0.1mb/s  270.6ms/op   23689us/op-cpu  [0ms-4239ms]
Toshiba.xfs    appendfilerand1  368670ops  10ops/s  0.1mb/s  195.6ms/op   19084us/op-cpu  [0ms-2994ms]

เนื่องจากซีเกทเป็น 5980 รอบต่อนาทีเราอาจคาดหวังว่าโตชิบาจะเร็วกว่านี้ถึง 20% การวัดประสิทธิภาพเหล่านี้แสดงให้เห็นว่าเร็วกว่าประมาณ 3 เท่า (200%) ดังนั้นมาตรฐานเหล่านี้จึงส่งผลต่อประสิทธิภาพการทำงาน เราเห็นดิสก์ Shingled (SMR) ยังไม่สามารถจับคู่ ext4 ประสิทธิภาพกับดิสก์ unshingled (PMR) ประสิทธิภาพที่ดีที่สุดคือกับ nilfs2 ที่มีพาร์ติชัน 8TB (ดังนั้นตัวทำความสะอาดไม่จำเป็นต้องทำงาน) แต่ถึงอย่างนั้นช้ากว่า Toshiba ที่มี ext4 อย่างมีนัยสำคัญ

ในการทำให้การวัดประสิทธิภาพด้านบนมีความชัดเจนมากขึ้นอาจช่วยทำให้มาตรฐานเหล่านั้นเป็นปกติเมื่อเทียบกับประสิทธิภาพของ ext4 ในแต่ละดิสก์:

                ops     randappend
SMR.btrfs:      1.24    0.74
SMR.ext4:       1       1
SMR.xfs:        0.86    1.98
Toshiba.btrfs:  1.36    0.41
Toshiba.ext4:   1       1
Toshiba.xfs:    0.79    1.38

เราเห็นว่าในดิสก์ SMR btrfs มีข้อได้เปรียบส่วนใหญ่ในการใช้งานโดยรวมที่มีใน ext4 แต่การลงโทษในภาคผนวกแบบสุ่มนั้นไม่ได้มีความสำคัญเท่ากับอัตราส่วน สิ่งนี้อาจนำไปสู่การย้ายไปยัง btrfs บนดิสก์ SMR ในทางกลับกันถ้าคุณต้องการผนวกแบบสุ่มเวลาแฝงต่ำเกณฑ์มาตรฐานนี้แนะนำให้คุณต้องการ xfs โดยเฉพาะอย่างยิ่ง SMR เราเห็นว่าในขณะที่ SMR / PMR อาจมีผลต่อการเลือกระบบไฟล์ของคุณการพิจารณาปริมาณงานที่คุณปรับให้เหมาะสมนั้นมีความสำคัญมากกว่า

ฉันยังใช้มาตรฐานอ้างอิงห้องใต้หลังคา ระยะเวลาของการรันห้องใต้หลังคา (บนพาร์ติชันดิสก์เต็ม 8TB SMR) คือ:

ext4:  1 days 1 hours 19 minutes 54.69 seconds
btrfs: 1 days 40 minutes 8.93 seconds
nilfs: 22 hours 12 minutes 26.89 seconds

ในแต่ละกรณีที่เก็บใต้หลังคามีสถิติต่อไปนี้:

                       Original size      Compressed size    Deduplicated size
This archive:                1.00 TB            639.69 GB            515.84 GB
All archives:              901.92 GB            639.69 GB            515.84 GB

การเพิ่มสำเนาที่สองของดิสก์ 1 TB เดียวกันลงในห้องใต้หลังคาใช้เวลา 4.5 ชั่วโมงในแต่ละระบบไฟล์ทั้งสามนี้ การถ่ายโอนข้อมูลดิบของข้อมูลอ้างอิงและsmartctlข้อมูลอยู่ที่: http://pastebin.com/tYK2Uj76 https://github.com/gmatht/joshell/tree/master/benchmarks/SMR


คุณแน่ใจหรือว่าความแตกต่างเหล่านี้มีความเฉพาะเจาะจงกับ SMR และ PMR?
RJ-

ไม่ได้จริงๆ ฉันจะเพิ่มมาตรฐานมากขึ้นเมื่อฉันตอบคำถามเหล่านั้น แต่บางคนที่มีประสบการณ์การวัดประสิทธิภาพสูงกว่าอาจทำงานได้ดีกว่าฉัน หวังว่านี่จะเพียงพอที่จะให้ความคิดคร่าว ๆ ว่ามันอาจจะคุ้มค่าที่จะพิจารณาเปลี่ยนจาก ext4 บนดิสก์ SMR
gmatht

3
ดิสก์แบบ Shingled ไม่ได้ใช้การคัดลอกเมื่อเขียน พวกเขาใช้อ่าน - แก้ไข - เขียนเหมือนเขียนบางส่วนไปยังอาร์เรย์ RAID-5 การเขียนแบบสุ่มไม่ทำให้ดิสก์ SMR ช้าลงซึ่งอันที่จริงมันเพิ่มความเร็วให้กับดิสก์ ไดรฟ์ 6000RPM SMR เร็วกว่าการเขียนแบบสุ่ม 10 เท่ากว่าไดรฟ์ที่ไม่ใช่ SMR 15000 RPM ตราบใดที่มันเหมาะกับแคชซึ่งจริงๆแล้วคือ 30GB
qasdfdsaq

@qasdfdsaq ขอบคุณฉันลบการอ้างอิงถึง CoW ฉันเข้าใจว่าในระดับของไดรฟ์แบบ shingled จะช้ากว่ามากสำหรับการเขียนแบบสุ่มมากกว่า PMR แต่ SMR สามารถเลียนแบบการเขียนที่เร็วขึ้นเนื่องจากแคช; PMR ไดรฟ์ + แคชคงจะเร็วขึ้นอีกครั้ง คุณมีข้อมูลอ้างอิงสำหรับรูป 30GB หรือไม่ ดูเหมือนจะไม่มีหมายเลขอย่างเป็นทางการเช่นในข้อกำหนดทางเทคนิคของ Seagate นอกจากนี้การปรับให้เหมาะสมสำหรับไดรฟ์แบบ shingled อาจเป็นปัญหาที่คล้ายคลึงกับการเพิ่มประสิทธิภาพอาร์เรย์ RAID 5 หรือไม่
gmatht

1
ฉันทำการค้นหาแบบสุ่มในหัวข้อและเจอโพสต์บล็อกใน f2fs: blog.schmorp.de/2015-10-08-smr-archive-drives-fast-now.html
Lester Cheung

1

หากคุณrsync จากไดรฟ์ SMR ตรวจสอบให้แน่ใจว่าได้ติดตั้งระบบไฟล์read-onlyหรือมีnoatimeตัวเลือก

มิฉะนั้นไดรฟ์ SMR จะต้องเขียนการประทับเวลาสำหรับการอ่าน rsync แต่ละไฟล์ทำให้ประสิทธิภาพลดลงอย่างมีนัยสำคัญ (จากประมาณ 80 mb / s ลงไปที่ 3-5 mb / s ที่นี่) และเสียงการสึกหรอ / คลิกที่หัว

หากคุณมีงาน rsync ที่ทำงานด้วยประสิทธิภาพต่ำไม่จำเป็นต้องหยุดทำงานคุณสามารถติดตั้งระบบไฟล์ต้นทางใหม่ได้

sudo mount -o remount,ro  /path/to/source/fs

ผลจะไม่ปรากฏขึ้นทันทีอดทนและรอ 10 ถึง 20 นาทีจนกว่าไดรฟ์จะเสร็จสิ้นการเขียนข้อมูลทั้งหมดที่ยังคงอยู่ในบัฟเฟอร์ คำแนะนำนี้ได้ลองและทดสอบแล้ว


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

sudo mount -t fs_type -o rw,noatime device /path/to/dest/fs

สิ่งนี้จะต้องทำก่อนที่จะมีการเรียกใช้ rsync ปัจจัยอื่น ๆ อาจทำให้ตัวเลือกนี้ไม่มีนัยสำคัญเช่นการปรับปรุง FAT / MFT ที่ไม่มีบัฟเฟอร์การเขียนแบบขนานถ้าระบบไฟล์นั้นได้รับการปรับให้เหมาะสมที่สุดสำหรับ SSD เป็นต้น


ลองใช้dd bs=32Mแล้วปรับขนาดระบบไฟล์ในเป้าหมาย SMR หากคุณต้องการสำรองข้อมูลระบบไฟล์แบบเต็มอยู่แล้ว (ไม่จำเป็นต้องติดตั้งและเรียกใช้ rsync เพื่อส่งแต่ละไฟล์ทุกไฟล์ในกรณีนี้)


ฮาร์ดแวร์ที่ใช้งานจริงคือไดรฟ์ Seagate ที่จัดการไดรฟ์สำหรับผู้บริโภค SMR 8tb ไมล์สะสมของคุณอาจแตกต่างกันไปตามฮาร์ดแวร์อื่น ๆ


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