เป็นวิธีที่ดีที่สุดในการอธิบายปัญหาการจัดเก็บข้อมูลให้กับนักพัฒนาและผู้ใช้อื่น ๆ


40

เมื่อที่เก็บข้อมูลเซิร์ฟเวอร์เริ่มพัฒนาน้อยทุกคนก็เริ่มคร่ำครวญว่า "ฉันจะได้รับ 1 TB ไดรฟ์ที่ Walmart ด้วยราคา 100 bucks ปัญหาคืออะไร"

ความซับซ้อนของการจัดเก็บสามารถอธิบายให้ผู้พัฒนาเข้าใจได้อย่างไรว่าทำไม 1 TB ไดรฟ์จาก Walmart จึงไม่ทำงาน

ป.ล. ฉันเป็นนักพัฒนาและต้องการทราบด้วย :)


5
หรือ "ฉันจะได้รับพื้นที่เก็บข้อมูลราคา $ 0.15 ต่อกิกะไบต์จาก Amazon S3 มีปัญหาอะไรเหรอ?"
Chris Upchurch

@Chris Upchurch: แต่ปัญหาคือคุณอาจจะต้องเขียนรายงานว่าจะเลือก Amazon S3, Google App Engine หรือ ... เอ้ยที่อาจจะมีสีสัน ;)
dance2die

6
ฉันอาจหันหลังให้กับคุณ งานของฉันคือการสร้างรายได้และฉันต้องการพื้นที่เก็บข้อมูลเพิ่มอีกเล็กน้อยเพื่อทำงานของฉันอย่างมีประสิทธิภาพ เป็นการลงทุนที่มั่นคงดังนั้นทำไมคุณไม่สามารถซื้อพื้นที่เก็บข้อมูลเพิ่มเติมได้

1
@ Chris: แน่นอนมันขึ้นอยู่กับสถานการณ์เสมอ แต่ฉันได้พบกับประสบการณ์ (ค่าใช้จ่าย) ที่ใช้ Amazon S3 สำหรับการจัดเก็บข้อมูลพื้นฐานไม่คุ้มค่า S3 ใช้เพื่อจัดการกับปริมาณการใช้ข้อมูลได้ดีกว่ามากเพื่อที่คุณจะได้ไม่ต้องลงทุนในระบบที่สามารถจัดการกับสถานการณ์กรณีที่เลวร้ายที่สุดที่หายาก - แต่ถ้าคุณเริ่มใช้มันสำหรับการทำงานแบบวันต่อวันคุณอาจพบว่าคุณดีกว่ามาก การจ่ายเงินทุน ...
Mihai Limbăşan

คำตอบ:


53

ความจริงบางประการเกี่ยวกับการจัดเก็บในบ้านหรือเหตุใดการจัดเก็บข้อมูลองค์กรจึงมีราคาแพง

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

การจัดเก็บข้อมูล 'องค์กร' เป็นปัญหาที่ค่อนข้างซับซ้อนเนื่องจากข้อมูลมีข้อกำหนดด้านประสิทธิภาพและความสมบูรณ์ซึ่งกำหนดวิธีการที่ค่อนข้างหนากว่า ข้อมูลต้องมีการรับประกันความพร้อมใช้งานในกรณีที่เกิดความล้มเหลวของฮาร์ดแวร์และอาจต้องมีการแบ่งปันกับผู้ใช้จำนวนมากซึ่งจะสร้างคำขออ่าน / เขียนมากกว่าผู้ใช้คนเดียว

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

ประสิทธิภาพ

สำหรับผู้บริโภคขนาด 1TB หรือแม้กระทั่งองค์กรที่อยู่ใกล้กับสายการผลิตคุณมีเพียงหัวเดียว ดิสก์หมุนที่ 7200 RPM หรือ 120 รอบต่อวินาที ซึ่งหมายความว่าคุณสามารถรับการดำเนินการ I / O แบบสุ่มได้มากถึง 120 ครั้งต่อวินาทีในทางทฤษฎี * และค่อนข้างน้อยในทางปฏิบัติ ดังนั้นการคัดลอกไฟล์ขนาดใหญ่ในปริมาณ 1TB เดียวจึงค่อนข้างช้า

บนดิสก์อาเรย์ที่มีดิสก์ 14x72GB คุณมี 14 หัวเหนือดิสก์ที่ไปที่ (พูด) 15,000 RPM หรือประมาณ 250 รอบต่อวินาที สิ่งนี้จะช่วยให้คุณดำเนินการสุ่ม I / O ได้สูงสุด 3,500 ครั้งต่อวินาที * (อีกครั้งในทางปฏิบัติค่อนข้างน้อย) สิ่งอื่น ๆ ที่เท่าเทียมกันการคัดลอกไฟล์จะเร็วกว่ามากหลายเท่า

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

ไดรฟ์ขนาด 7200 RPM 1TB น่าจะเร็วพอสำหรับ I / O ตามลำดับ อาร์เรย์ของดิสก์ที่จัดรูปแบบเป็นแบบสไทรพ์ (RAID-0, RAID-5, RAID-10 ฯลฯ ) โดยทั่วไปแล้วสามารถอ่านได้ที่หนึ่งแถบมากที่สุดต่อการปฏิวัติของดิสก์ ด้วยแถบ 64K ทำให้เราสามารถอ่านข้อมูล 64Kx250 = 16MB หรือต่อวินาทีจากดิสก์ 15,000 RPM สิ่งนี้ให้ปริมาณงานต่อเนื่องที่ประมาณ 220MB ต่อวินาทีบนอาเรย์ของดิสก์ 14 แผ่นซึ่งไม่เร็วเท่าไหร่บนกระดาษมากกว่า 150MB / วินาทีหรือยกมาสำหรับดิสก์ SATA 1TB รุ่นใหม่

สำหรับการสตรีมวิดีโอ (ตัวอย่าง) อาร์เรย์ของดิสก์ SATA 4 ตัวใน RAID-0 ที่มีขนาดแถบใหญ่ (คอนโทรลเลอร์ RAID บางตัวจะรองรับขนาดแถบสูงสุด 1MB) มีปริมาณงานต่อเนื่องค่อนข้างมาก ตัวอย่างนี้ในทางทฤษฎีสามารถสตรีมได้ประมาณ 480MB / วินาทีซึ่งสะดวกสบายพอที่จะทำการตัดต่อวิดีโอ HD แบบเรียลไทม์ที่ไม่มีการบีบอัด ดังนั้นเจ้าของ Mac Pros และฮาร์ดแวร์ที่คล้ายกันสามารถทำงาน HD Compiting Computing ได้ซึ่งจะต้องใช้เครื่องจักรที่มีไฟเบอร์แบบต่อพ่วงโดยตรงเพียงไม่กี่ปีที่ผ่านมา

ประโยชน์ที่แท้จริงของดิสก์อาเรย์คืองานฐานข้อมูลซึ่งมีลักษณะเป็นคำขอ I / O ขนาดเล็กกระจัดกระจายจำนวนมาก เกี่ยวกับประสิทธิภาพการทำงานของภาระงานประเภทนี้ถูก จำกัด โดยความหน่วงทางกายภาพของบิตของโลหะในดิสก์ที่ไปรอบและรอบและกลับมา การวัดนี้เรียกว่า IOPS (การดำเนินการ I / O ต่อวินาที) ดิสก์ทางกายภาพที่คุณมีมากขึ้น - โดยไม่คำนึงถึงความจุ - ยิ่งมี IOPS มากขึ้นในทางทฤษฎี IOPS เพิ่มเติมหมายถึงการทำธุรกรรมมากขึ้นต่อวินาที

ความสมบูรณ์ของข้อมูล

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

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

ค่าใช้จ่ายในการจัดเก็บรวมรวมถึงการสำรองข้อมูล

ในทางปฏิบัติค่าใช้จ่ายที่ใหญ่ที่สุดในการรักษาข้อมูล 1TB นั้นน่าจะเป็นการสำรองและกู้คืน เทปไดรฟ์และเทป SDLT หรือ ultrium 34 ชุดสำหรับวงจรการสำรองข้อมูลและการกู้คืนแบบเต็มตาของคุณปู่อาจมีราคาสูงกว่าดิสก์อาร์เรย์ 1TB เพิ่มค่าใช้จ่ายในการจัดเก็บนอกสถานที่และเงินเดือนของลิงเทปเดี่ยวและทันใดนั้นข้อมูล 1TB ของคุณก็ไม่ถูกเลย

ค่าใช้จ่ายของดิสก์มักเป็นวิธีที่ยุติธรรมในการลดลำดับชั้นของต้นทุนการจัดเก็บข้อมูลหลัก ที่ธนาคารแห่งหนึ่งฉันมีโอกาสได้ทำงานกับที่เก็บข้อมูล SAN ซึ่งมีค่าใช้จ่ายอยู่ที่£ 900 / GB สำหรับระบบการพัฒนาและ 5,000 ปอนด์ / GB สำหรับดิสก์บนเซิร์ฟเวอร์ที่ใช้งานจริง แม้กระทั่งราคาของผู้จำหน่ายระดับองค์กรค่าใช้จ่ายทางกายภาพของดิสก์ก็เป็นเพียงเล็กน้อยเท่านั้น อีกตัวอย่างหนึ่งที่ฉันทราบว่ามีการตั้งค่าคอนฟิก (ค่อนข้าง) ของ IBM Shark SAN ที่ราคาค่อนข้างเกิน 1 ล้านปอนด์ เฉพาะที่จัดเก็บข้อมูลจริงบนอุปกรณ์นี้มีค่าใช้จ่ายประมาณ 9 ปอนด์ / กิกะไบต์หรือประมาณ 9,000 ปอนด์สำหรับพื้นที่เทียบเท่ากับ HDD 1TB สำหรับผู้ใช้ทั่วไป


40

เพียงแค่พูดว่า: "ใช่และฉันจะได้รับโปรแกรมเมอร์ Java ในต่างประเทศสำหรับ $ 5 / ชั่วโมง"


8
ดีจัง!
John Dyer

3
นี้ค่อนข้างพูดมีไหวพริบ แต่ฉันไม่สามารถดูเหมือนจะ upvote มันตั้งแต่มันไม่จริงตอบคำถามซึ่งผมกระตือรือร้นที่จะหาคำตอบให้
dance2die

1
@ dance2die ฉันคิดว่ามันตอบคำถามได้ค่อนข้างชัดเจน
Joe Phillips

11
ฉันคิดว่ามันเป็นคำตอบที่ถูกต้อง ประเด็นคือเราแต่ละคนมีความเชี่ยวชาญของเราเองและสมาชิกของทีมต้องเชื่อใจกันและกัน การพลิกคำถามกลับไปที่ผู้พัฒนาเช่นนี้จะช่วยให้พวกเขารู้ว่ามันไม่มีประโยชน์อะไรที่จะลองเดาอีกครั้ง
Portman

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

14

อาจถามคำถามสองสามข้อเกี่ยวกับไดรฟ์ Walmart ของพวกเขา:

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

... เปรียบเทียบคำตอบเหล่านี้กับไดรฟ์ที่ทำงานเป็นส่วนหนึ่งของอาร์เรย์ RAID 5 ในศูนย์ข้อมูลที่มีการจัดการที่ดี

(การเปิดเผย: ฉันเป็นนักพัฒนาด้วย - ฉันแค่เดา!)


1
+1 สำหรับวิธีการที่ครอบคลุมและดีในการ "ทำไม" ของคำถาม
Avery Payne

4

บางทีคุณควรพิจารณาพื้นที่เก็บข้อมูลที่แตกต่าง

ผู้พัฒนาของคุณอาจต้องการพื้นที่เพิ่มขึ้น แต่บางทีมันอาจไม่ใช่ "ระดับองค์กร" ที่เขาต้องการ บางทีเขาอาจต้องมีที่เก็บ. vhd's และ ISO ซึ่งเป็นกรณีที่เกิดความผิดพลาดของดิสก์สามารถดาวน์โหลดได้อีกครั้งจาก MSDN บางทีการทดสอบอาจต้องการความต้องการพื้นที่ชั่วคราวขนาดใหญ่ซึ่งจะต้องอยู่ที่นั่นตลอดระยะเวลาของการทดสอบ สำหรับทั้งหมดนี้ไดรฟ์ $ 50 Wallmart อาจเป็นโซลูชันที่ถูกต้อง


3

สิ่งสำคัญอันดับหนึ่งที่ผู้คนจำเป็นต้องรู้เกี่ยวกับการจัดเก็บคือความจุและ IOPS แตกต่างกันมาก สิ่งต่าง ๆ เช่นความทนทาน ฯลฯ มักจะเป็นสิ่งที่สงสัยบ่อยครั้งก็ลงมาที่ IOPS เทียบกับความจุ


4
IOPS: การใช้งานอินพุท / เอาท์พุทต่อวินาที
Sam Hasler

2

ขึ้นอยู่กับเซิร์ฟเวอร์ประเภทไหนที่ถาม สำหรับการพัฒนาพื้นฐานหรือเซิร์ฟเวอร์ทดสอบหนึ่ง tb ไดรฟ์จาก Wallmart อาจจะดีพอ หากคุณกำลังจัดการกับเซิร์ฟเวอร์ระดับไฮเอนด์ที่ไม่ได้ใช้งานส่วนประกอบชั้นวางให้ถามพวกเขาว่าพวกเขาจะสร้างรถแข่งและซื้อยางจากร้านขายอะไหล่รถยนต์เพื่อประหยัดเงินไม่กี่เหรียญ


1
ฉันไม่แนะนำให้ใช้เทคนิคนี้กับผู้จัดการแม้ว่า คำตอบอาจเป็น "ใช่"
เจสันเบเกอร์

1

วิธีที่ฉันอธิบายมันคือสิ่งนี้ หากเจ้านายของคุณจะลงชื่อออกในการซื้อ ฉันจะใส่เครื่องหมายบนไดรฟ์ wal-mart ที่ระบุ ..

"โฆษณา Sys ได้รับคำสั่งให้นำสิ่งนี้ไปใช้กับความประสงค์และความอุตสาหะของเขา" และเมื่อไดรฟ์เสียชีวิตฉันจะมอบไดรฟให้กับผู้พัฒนาและถามพวกเขาถึงวิธีการทำงานของฉันในครั้งนี้ ..

ฉันเห็นด้วยกับ Portman ... เชื่อใจในทีมหรือไม่


0

คำตอบเดียวง่ายๆ: ไดรฟ์ 1TB มักเป็น SATA แต่เซิร์ฟเวอร์ของคุณคือ SCSI (แม้ว่าเซิร์ฟเวอร์ไม่ใช่ SCSI สิ่งนี้อาจหยุดการสอบถาม ... ตอนนี้)

ไดรฟ์ SCSI ขนาด 300GB มักจะมีราคาเพิ่มขึ้นเป็น 4 เท่าจากนั้นจะทำการสำรองข้อมูลที่มีอยู่การจัดการเวลาที่ผิดพลาดการติดตั้งสิ่งที่อาจจะผิดพลาดการทำงานล่วงเวลา ฯลฯ ฯลฯ โดยรวม ความเจ็บปวดหลายประเภท - ไม่มีสิ่งใดที่ผู้รับผิดชอบจะต้องรับผิดชอบโดยตรง การบอกว่าคุณสามารถซื้อไดรฟ์นอกชั้นที่ตอบสนองความต้องการในปัจจุบันนั้นเป็นเรื่องง่ายอย่างสิ้นหวัง

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

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