ไดรฟ์ vs. Mount Points


12

Senior DBA ก่อนหน้านี้ตั้งค่าจุดเชื่อมต่อสำหรับไดรฟ์ทั้งหมดของเราทั่วทุกเซิร์ฟเวอร์ SQL ทั่วทั้ง บริษัท Senior DBA ใหม่นั้นน่ากลัวมากเพราะคะแนนของเขาต้องการเปลี่ยนมาตรฐานของเรา (ส่วนใหญ่ฉันคิดว่าเพราะเขาไม่มีประสบการณ์กับพวกเขา)

จากผลลัพธ์ของการค้นหาทางอินเทอร์เน็ตจำนวนมากฉันไม่พบเหตุผลใด ๆ (post-SQL Server 2000) ที่ไม่ใช้จุดเชื่อมต่อ

มีใครทราบถึงข้อ จำกัด ของระบบปฏิบัติการ Windows ที่เกี่ยวข้องกับหัวข้อนี้หรือไม่?

  • ฉันเคยได้ยินคำกล่าวอ้างว่า "ระบบปฏิบัติการไม่รู้จักจุดเชื่อมต่อ" มากเมื่อเร็ว ๆ นี้ (ไม่จริงขึ้นอยู่กับการวิจัยของฉันเป็นรุ่นของ Windows Server ที่เราใช้)

มีเหตุผลหรือหลักฐานจากประสบการณ์ที่จะไม่ใช้จุดเชื่อมต่อกับ SQL Server หรือไม่?

  • สมมติว่าตัวอักษรไดรฟ์หมดไม่มีปัญหาสำหรับเรา

ฉันเข้าใจว่าจุดยึดนั้นมีประโยชน์อย่างมากสำหรับการแยกเวิร์กโหลด

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


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

คำตอบ:


13

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

หากต้องการกำหนดค่าของจุดยึดให้ดูที่การค้นหาจุดยึดโดยใช้ PowerShellโดย Boe Prox


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

เครื่องมือการตรวจสอบบางอย่างอาจให้ข้อมูลที่ไม่ดีแก่คุณตามประโยคสุดท้ายนั้น

ตัวอย่างเช่นหากคุณมีจุดเชื่อมต่อสามจุดเช่น

  1. C:\SQLData\SQL_Data ที่เก็บไฟล์. MDB ทั้งหมดของคุณ
  2. C:\SQLData\SQL_Logs ที่เก็บไฟล์. LDF ทั้งหมดของคุณ
  3. C:\SQLData\SQL_Backups ที่เก็บไฟล์สำรอง. BAK และ. TRN ทั้งหมดของคุณ

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

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

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


1 SQL Server มีข้อมูลที่ทำให้ทราบถึงจุดเชื่อมต่อ แต่จากมุมมองการใช้งานจริงมันไม่แตกต่างกันในพฤติกรรม มัน "ใช้งานได้" วางใจในระบบปฏิบัติการเพื่อจัดการกับข้อมูลเฉพาะ เช่นเดียวกับที่เชื่อใจระบบปฏิบัติการเพื่อจัดการข้อมูลเฉพาะสำหรับ iSCSI LUN ที่เชื่อมต่อเป็นไดรฟ์ในระบบ


2
ไม่แน่ใจว่ายังคงมีปัญหาเกี่ยวกับการติดตั้ง SQL และ ACL รอบจุดเชื่อมต่อบนรูทของไดรฟ์หรือไม่ เช่น C: \ SQLMountPoints \ SQL_Data, C: \ SQLMountPoints \ SQL_Log
Nic

จริง ครั้งเดียวที่ฉันทำเช่นนี้ฉันมีโฟลเดอร์ "SQLDATA" จากนั้น "data", "Log" และ "backup" จุดเชื่อมต่อใต้จุดนั้น หรือบางสิ่งเพื่อผลกระทบนั้น
CaM

8

นอกจากนี้ในการ CM_Dayton ของคำตอบและฌอน Gallardy ของคำตอบปัญหาหนึ่งที่ยังไม่ได้ยึดติดกับภูเขาจุดที่เกี่ยวข้องกับการรักษาความปลอดภัย วิธีอ้างคำแนะนำสำหรับการตั้งค่าการอนุญาต SQL บนโฟลเดอร์ Mount Point :

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

สรุปคุณจะต้องกำหนดสิทธิ์ให้กับ Mount Folders แตกต่างกันหากคุณต้องการใช้โฟลเดอร์ root-point แทนที่จะกำหนดสิทธิ์เช่นเดียวกับที่คุณทำกับโฟลเดอร์ปกติคุณต้องกำหนดสิทธิ์บนไดรฟ์ข้อมูล อีกครั้งจากบทความเดียวกันนั้น (การเน้นเป็นของ Microsoft):

gotchas

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

แนวทาง

  1. ขอแนะนำให้คุณอย่าวางไฟล์ใด ๆ ลงในโฟลเดอร์ root-pointโดยตรง สิ่งนี้จะทำให้การจัดการสิทธิ์ง่ายขึ้นมากเนื่องจากมีแนวโน้มที่จะตรวจสอบการอนุญาตของโฟลเดอร์เสมอซึ่งในกรณีนี้ทำให้เข้าใจผิด สร้างโฟลเดอร์ย่อยแทนภายใต้โฟลเดอร์รูทจุดและตั้งค่าสิทธิ์ที่เหมาะสมกับโฟลเดอร์ย่อยนั้น เนื่องจากโฟลเดอร์ย่อยนั้นเป็นโฟลเดอร์ปกติสิทธิ์ของโฟลเดอร์ที่คุณสังเกตและตั้งจึงเป็นสิทธิ์ที่ใช้อย่างแน่นอน ดังนั้นโดยใช้ตัวอย่างก่อนหน้านี้คุณต้องการสร้างโฟลเดอร์ใหม่: D: \ FolderForVol3 ** SubfolderXYZ ** ตอนนี้ตั้งค่าการอนุญาตโฟลเดอร์ของคุณเทียบกับโฟลเดอร์ SubfolderXYZใหม่ตามปกติ
  2. หากคุณต้องวางรายการโดยตรงในโฟลเดอร์รูทจุด (ไม่ใช่แนวทางที่แนะนำ) คุณจะต้องตั้งค่าสิทธิ์ระดับเสียงไม่ใช่สิทธิ์ของโฟลเดอร์ จำได้ว่านี่เป็นเพราะสิทธิ์ของโฟลเดอร์รูทจุดไม่ใช่สิทธิ์ที่จะได้รับการตั้งค่าบนไดรฟ์ข้อมูลที่เมาท์ (เนื่องจากโฟลเดอร์รูทของจุดเมานท์ไม่ใช่โฟลเดอร์จริง) คุณสามารถตั้งค่าสิทธิ์ระดับเสียงได้ดังนี้
  3. หากคุณกำลังเพิ่มโฟลเดอร์ใหม่สำหรับ SQL ให้ใช้ให้ระวังการอนุญาตที่จำเป็นสำหรับการเข้าถึง SQL:

หากคุณไม่ต้องการซ้อนทุกอย่างในโฟลเดอร์ย่อยภายใต้ Mount Point ตามที่ MS แนะนำวิธีที่ง่ายที่สุดในการกำหนดสิทธิ์คือทางcacls.exeยูทิลิตี้ คำแนะนำโดยละเอียดเพื่อที่จะสามารถพบได้ในคุณไม่สามารถใช้สิทธิ์ในการไดเรกทอรีรากของไดรฟ์ระบบแฟ้ม NTFS ใน Windows Server 2003

ฉันไม่คิดว่ามันเป็นปัญหาที่ได้รับการแก้ไขอย่างสมบูรณ์เลยทีเดียว คำถามล่าสุดนี้การติดตั้ง FCI ของเซิร์ฟเวอร์ SQL ที่มีปัญหาการอนุญาตให้ใช้จุดเมานท์แสดงให้เห็นว่ายังสามารถเกิดขึ้นได้ใน Windows 2012 ด้วย SQL Server 2016

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


DBA อาวุโสก่อนหน้านี้ไม่ได้ตระหนักถึงความกังวลด้านความปลอดภัยนี้ (ack!) และฉันก็ไม่ได้ทำจนกว่าจะโพสต์นี้ ฉันจะรวบรวมแบบสอบถาม CMS เพื่อค้นหาไฟล์ db ทั้งหมดที่ได้รับผลกระทบ Cacls ดูเหมือนเป็นเส้นทางที่ดี (แม้ว่าฉันจะมองหาบางสิ่งที่อิง PoSh) @JohnEisbrener - คุณเคยมีปัญหาในการตั้งค่า ACLs ในไฟล์ db เมื่อถูกล็อคในการใช้งานพิเศษหรือไม่? ถ้าเป็นเช่นนั้นขั้นตอนต่อไปคืออะไร?
SQL_Underworld

1
@SQL_Underworld ฉันอยากจะแนะนำให้ทำอะไรกับcaclsระหว่างช่วงเวลาการบำรุงรักษาซึ่งคุณสามารถใช้อินสแตนซ์ฐานข้อมูลแบบออฟไลน์ได้ แม้ว่าอาจไม่จำเป็นแต่ก็จะลดจำนวนของตัวแปรที่อาจเกิดขึ้นได้
John Eisbrener

8

จากผลลัพธ์ของการค้นหาทางอินเทอร์เน็ตจำนวนมากฉันไม่พบเหตุผลใด ๆ (post-SQL Server 2000) ที่ไม่ใช้จุดเชื่อมต่อ

เหตุผลหลักคือมีคนมีประสบการณ์ที่ไม่ดีกับพวกเขา (หรือตรงกันข้ามไม่มีประสบการณ์กับพวกเขา) และได้ขับไล่พวกเขาออกไป ... ตลอดไป สิ่งนี้เรียกว่าการตั้งค่าส่วนตัว

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

มีใครทราบถึงข้อ จำกัด ของระบบปฏิบัติการ Windows ที่เกี่ยวข้องกับหัวข้อนี้หรือไม่?

ไม่คุณสามารถสร้างจุดเชื่อมต่อได้มากมาย ที่จริงแล้วโดยทั่วไปคุณจะมีปัญหากับส่วนต่อประสานอุปกรณ์ของคุณก่อนที่จะถึงขีด จำกัด ที่ประเมินได้ภายใน Windows Server (สมมติว่าคุณไม่ได้ใช้ Windows Server รุ่นที่มีอายุมากกว่า 17 ปี ... )

•ฉันเคยได้ยินคำกล่าวอ้างว่า "ระบบปฏิบัติการไม่รู้จักจุดเชื่อมต่อ" มากเมื่อเร็ว ๆ นี้ (ไม่จริงขึ้นอยู่กับการวิจัยของฉันเป็นรุ่นของ Windows Server ที่เราใช้)

หากระบบปฏิบัติการไม่รู้จักจุดเชื่อมต่อแล้วจะให้คุณใช้จุดเชื่อมต่อได้อย่างไร นั่นไม่สมเหตุสมผลเลย

หากระบบปฏิบัติการไม่รู้จักจุดเมา, ทำไมมันจะติดตามพวกเขาและสอบถามข้อมูลเมตาของพวกเขา ? นอกจากนี้โปรดทราบว่าจุดต่อเชื่อมนั้นเป็นโครงสร้างของระบบไฟล์ที่ระบบปฏิบัติการอาจรองรับหรือไม่รองรับ ระบบไฟล์ทั้งหมดที่คุณเข้ามาอาจรองรับจุดเชื่อมต่อได้ แต่ระบบไฟล์ที่พบบ่อยที่สุดใน Windows Server คือNTFS ซึ่งอันที่จริงแล้วรองรับจุดเชื่อมต่อและมันมีอยู่พักหนึ่ง

เพียงนำไอเท็มที่ไม่จริงนี้กลับบ้านยิ่งขึ้นไปอีก Windows Clustering มีบางสิ่งที่เรียกว่า Cluster Shared Volumes (CSV) ซึ่งจริงๆแล้วใช้จุดเชื่อมต่อสำหรับไดรฟ์ข้อมูล ... ซึ่งเป็นไอเท็มดั้งเดิมที่ใช้เทคโนโลยี ฉันต้องบอกว่าใครก็ตามที่บอกคุณว่านี่ต้องได้รับการศึกษาในเรื่องนี้

มีเหตุผลหรือหลักฐานจากประสบการณ์ที่จะไม่ใช้จุดเชื่อมต่อกับ SQL Server หรือไม่?

ใช่มีเซิร์ฟเวอร์หนึ่งเครื่องที่ใช้ Windows NT 4 อยู่เสมอ ... อย่าใช้ที่นั่น คุณอาจต้องการตรวจสอบให้แน่ใจว่าคุณใช้Windows Server รุ่นที่รองรับและอัพเดทอยู่เสมอ

อย่างไรก็ตามตามที่ฉันอธิบายไว้ข้างต้นอาจมีรายการของบุคคลที่สามที่ไม่รองรับหรือทำงานไม่ถูกต้องกับรายการเหล่านั้น ฉันจะบอกผู้ให้บริการรายนั้นและหาผู้ให้บริการรายใหม่

ฉันเข้าใจว่าจุดยึดนั้นมีประโยชน์อย่างมากสำหรับการแยกเวิร์กโหลด

จุดเมานท์มีประโยชน์อย่างเหลือเชื่อ มีหลายวิธีในการใช้สิ่งเหล่านี้สิ่งที่พบได้บ่อยที่สุดคือการ จำกัด ตัวอักษรของไดรฟ์ (เช่นมี Windows จำนวนมาก) การใช้งานครั้งต่อไปที่พบบ่อยที่สุดคือการมีไดรฟ์ขนาดเล็กที่สามารถจัดการได้ (คิดว่า LUNs, ดิสก์เสมือน [VMDK, VHDX]) เพื่อช่วยให้ห่างจากปริมาณ monolith ที่ใหญ่และจัดการได้ยาก (จริงๆกลายเป็นปัญหาในการจัดการ LUN เดียว, ดิสก์เสมือนจริง, ฯลฯ ) โดยเฉพาะอย่างยิ่งใน NTFS เวอร์ชันเก่าที่มีการใช้งานน้อยกว่าการใช้ที่เป็นไปได้ ... ตัวอย่างเช่นใน Windows รุ่นเก่าขนาด NTFS สูงสุดคือ 2TB

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


3

Mountpoints เป็นหนทางในการไปยังเซิร์ฟเวอร์ที่มีแอพพลิเคชั่นที่ใช้ร่วมกันหรือสำหรับการแบ่งส่วนข้อมูลมากกว่าปริมาณ DZ ทั่วไป

ตัวอย่างเช่นคุณสามารถติดตั้งข้อมูลแอปพลิเคชันทั้งหมดบันทึกและไฟล์ชั่วคราวในe:ไดรฟ์ E:/MP_1สามารถมีไฟล์ข้อมูลสำหรับธุรกิจ A E:/MP_2สามารถมีไฟล์บันทึกE:/mp_3สามารถมีไฟล์ temp สำหรับธุรกิจ A เป็นต้น จากนั้นคุณมี Business B ที่จุดเชื่อมต่อบนF:ไดรฟ์ แต่ละจุดยึดมีพื้นที่ของตัวเอง

ระบบปฏิบัติการไม่มีปัญหากับ MP อย่างแน่นอน Clusters และ Always On ไม่มีปัญหากับ MPs ฉันทำงานให้กับธนาคารที่รู้จักกันดีซึ่งมี SQL Server ส่วนใหญ่ติดตั้งไว้ใน MP เมื่อ DBA ใช้พวกเขาและเข้าใจแนวคิดมันจะขับเคลื่อนพวกเขาไปสู่การแก้ปัญหาที่ง่ายขึ้นในร้านค้าที่ต้องการ

มันบอกว่าจะไม่ติดตั้งอะไรบน MP root ถูกแล้ว. ไม่มีอะไรใน MP root เหมือนคุณจะไม่ติดตั้งอะไรกับรูทของ D เป็นตัวอย่าง

โซลูชันการตรวจสอบและการตรวจสอบเช่น Foglight, Guardiam, EMS และ PBM ก็ไม่มีปัญหากับจุดเชื่อมต่อ

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