กลุ่มไฟล์ฐานข้อมูลเซิร์ฟเวอร์ SQL บน SAN: เกี่ยวข้องหรือไม่?

ฉันกำลังจะสร้าง SQL Server ใหม่ และฉันวางแผนที่จะใช้กลุ่มไฟล์อย่างกว้างขวาง ฉันคาดหวังการเติบโตอย่างมาก และการอ่าน/เขียนจำนวนมากไปยังฐานข้อมูลที่แตกต่างกัน 5 รายการบนเซิร์ฟเวอร์นี้ ฉันวางแผนที่จะสร้างกลุ่มไฟล์เพิ่มเติม 2 กลุ่ม (กลุ่มหนึ่งสำหรับข้อมูลผู้ใช้และอีกกลุ่มสำหรับดัชนี) ในแต่ละฐานข้อมูลรวมเป็น 3 กลุ่มไฟล์ต่อฐานข้อมูล ฉันวางแผนที่จะแยกกลุ่มไฟล์ตามไดรฟ์/สปินเดิลต่างๆ เซิร์ฟเวอร์นี้เป็นเซิร์ฟเวอร์เสมือน (VMWare) บน EMC SAN ฉันเพิ่งเริ่มใช้สถาปัตยกรรม SAN และฉันไม่ใช่ผู้ดูแลระบบ SAN ฉันอ่านคำโปรยสั้นๆ เกี่ยวกับกลุ่มไฟล์และ SAN ในหนังสือ "Microsoft SQL Server 2012 Unleashed" ว่ากลุ่มไฟล์อาจไม่เกี่ยวข้องเมื่อใช้ SAN น่าเสียดายที่ไม่มีรายละเอียดมากไปกว่านั้น และฉันก็ไม่พบสิ่งอื่นใดในหัวข้อนี้มากนัก

มีประเด็นที่จะใช้กลุ่มไฟล์เมื่อใช้ SAN เพื่อจัดเก็บข้อมูลหรือไม่?

ถ้าไม่เช่นนั้นทำไมจะไม่ได้? ถ้าเป็นเช่นนั้นทำไม?

ฉันอาจถามคำถามอะไรบ้างกับผู้ดูแลระบบ SAN ของฉันในหัวข้อนี้


person DMill    schedule 22.09.2014    source แหล่งที่มา
comment
ซึ่งอาจวางไว้ที่ serverfault.com ดีกว่า   -  person bic    schedule 22.09.2014
comment
อาจเกี่ยวข้องกับกรณีของคุณ - serverfault.com/questions/51511/   -  person bic    schedule 22.09.2014
comment
คำถามนี้ดูเหมือนจะนอกประเด็นเพราะเหมาะสำหรับ ข้อผิดพลาดของเซิร์ฟเวอร์ หรือบางทีอาจเป็น ผู้ดูแลฐานข้อมูล ไม่ใช่คำถามเกี่ยวกับการเขียนโปรแกรมตามที่กำหนดไว้ในหลักเกณฑ์ของศูนย์ช่วยเหลือ   -  person Ken White    schedule 22.09.2014
comment
ฉันจะโพสต์คำถามของฉันใน dba.stackexchange.com ขอบคุณ.   -  person DMill    schedule 23.09.2014


คำตอบ (1)


สิ่งที่คุณต้องเข้าใจคือ SAN คืออะไร

SAN คืออาร์เรย์จัดเก็บข้อมูลตั้งแต่หนึ่งอาร์เรย์ขึ้นไป เชื่อมต่อกันผ่านเครือข่ายไฟเบอร์แชนเนล โฮสต์ของคุณมีการ์ดเครือข่ายพิเศษ - เรียกว่า Host Bus Adapters (HBA) - สำหรับการพูดคุยกับเครือข่ายนั้น โปรโตคอลเครือข่ายได้รับการออกแบบมาเพื่อการรับส่งข้อมูลและเหมาะสมอย่างยิ่งกับการรับส่งข้อมูลที่มีประสิทธิภาพสูงและมีความหน่วงต่ำ

อาร์เรย์ที่คุณกำลังพูดคุยด้วย... ก็มีความแตกต่างกันอย่างมากตามความสามารถของมัน แม้แต่ EMC SAN ก็ตามที่คุณอ้างถึง อาจเป็นผลิตภัณฑ์ EMC หลายประเภทที่เป็นอาร์เรย์จัดเก็บข้อมูล วัตถุประสงค์หลักคือการรวมประสิทธิภาพการจัดเก็บข้อมูล

คุณจะได้รับประสิทธิภาพสูงสุดที่ดีกว่าจากการใช้ 100 สปินเดิลที่ใช้ร่วมกันกับเซิร์ฟเวอร์ 10 เครื่อง มากกว่าที่คุณจะทำได้หากแต่ละเซิร์ฟเวอร์มี 10 สปินเดิลต่อเซิร์ฟเวอร์ ดังนั้นสิ่งที่อาร์เรย์จัดเก็บข้อมูลของคุณ โดยพื้นฐาน กำลังทำคือแกะสลักก้อนแกน 100 แกนนั้นออกเป็นหน่วยทางลอจิคัล จากนั้นจึงส่งคืนให้กับโฮสต์ของคุณ เพื่อให้แต่ละโฮสต์มีค่าเฉลี่ยที่เท่ากัน em> ประสิทธิภาพ แต่จุดสูงสุดคือขนาด 10 เท่า (หรืออาจจะมากกว่านั้นตามความเป็นจริง - พวกมันอาจใช้สปินเดิล 50 อัน เพราะคุณจะได้จุดสูงสุด 5 เท่า แต่ถูกกว่าครึ่งหนึ่ง เพื่อแลกกับค่าเฉลี่ยที่ต่ำกว่า)

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

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

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

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

สิ่งที่ฉันอยากจะแนะนำ:

  • ไปพูดคุยกับคนจัดเก็บข้อมูลของคุณเกี่ยวกับโปรไฟล์ IO ที่คาดหวังของฐานข้อมูลของคุณ (IO คือสิ่งที่มีราคาแพงใน SAN และฐานข้อมูล โดยทั่วไป ใช้มากกว่าแอปพลิเคชัน 'ปกติ')
  • วางแต่ละอินสแตนซ์บนชุด LUN ที่แตกต่างกัน - แยก DB และบันทึกและ tempdb ออก
  • ภายใน vmware คุณอาจพบดิสก์ 'ลอจิคัล' บนที่เก็บข้อมูลเดียวกัน หากประสิทธิภาพเป็นสิ่งสำคัญ อาจคุ้มค่าที่จะส่งผ่าน SAN LUN ไปยังโฮสต์โดยตรง

จากนั้นอย่ากังวลมากเกินไป หากคุณสังเกตเห็นปัญหาใดปัญหาหนึ่ง ควรปรับแต่ง/ย้าย LUN แต่ละรายการไปรอบๆ เพื่อปรับปรุงสถานการณ์ได้

person Sobrique    schedule 06.10.2014