Drive vs. Mount Points?

12

DBA Senior sebelumnya mengatur titik pemasangan untuk semua drive kami di setiap SQL Server di seluruh perusahaan. DBA Senior yang baru merasa ngeri dengan poin-poin yang ingin mengubah standar kita (terutama, saya pikir, karena dia tidak memiliki pengalaman dengan mereka).

Berdasarkan hasil berbagai pencarian internet, saya tidak dapat menemukan alasan (post-SQL Server 2000) untuk tidak menggunakan poin mount.

Adakah yang mengetahui keterbatasan OS Windows mengenai topik ini?

  • Saya telah mendengar klaim "OS tidak mengenali poin mount" belakangan ini. (Tidak Benar, berdasarkan penelitian saya ke dalam versi Windows Server yang kami gunakan).

Apakah ada alasan berbasis bukti atau pengalaman TIDAK untuk menggunakan poin mount dengan SQL Server?

  • Anggap bahwa kehabisan huruf drive bukan masalah bagi kami.

Ini pemahaman saya bahwa poin mount sangat berguna untuk memisahkan beban kerja.

Adakah yang bisa mengkonfirmasi atau membantah pemahaman saya bahwa titik mount sebenarnya memisahkan / mengisolasi beban kerja dari berbagai jenis data dan file log (file database sistem, file database pengguna, tempDB) lebih efisien daripada satu drive masing-masing untuk file data, file log, dan tempdb ?

SQL_Underworld
sumber
Penyimpanan fisik sebagian besar disarikan ketika seseorang menggunakan SAN. Terlepas dari apakah seseorang menggunakan huruf drive atau titik pemasangan, Anda harus bekerja dengan admin penyimpanan untuk memberikan LUN dengan karakteristik yang dibutuhkan. SQL Server maupun OS tidak akan memiliki pengetahuan tentang konfigurasi yang mendasarinya, meskipun Anda dapat menginstal alat vendor untuk memberikan visibilitas.
Dan Guzman

Jawaban:

13

Itu tergantung pada apa yang ada di ujung mount point lainnya. Jika semua mount LUNS tersebar di drive fisik yang sama, maka tidak ada keuntungan. Jika LUNS adalah seluruh saluran iSCSI yang dibagikan, lambat, mungkin tidak ada untungnya. Jika LUNS semuanya di bawah 1 controller ... Anda melihat berapa banyak variabel yang berperan. Tidak ada satu jawaban.

Untuk menentukan konfigurasi titik pemasangan, lihat Menemukan Titik Pemasangan Menggunakan PowerShell oleh Boe Prox.


SQL Server tidak memiliki masalah dengan mount point. Ini didefinisikan pada tingkat OS dan SQL Server "tidak tahu 1 " mereka tidak volume yang sama dengan drive yang tampaknya dipasang.

Namun, beberapa alat Pemantauan mungkin memberi Anda informasi buruk berdasarkan kalimat terakhir itu.

Misalnya jika Anda memiliki tiga titik mount suka

  1. C:\SQLData\SQL_Data di mana semua file .MDB Anda disimpan
  2. C:\SQLData\SQL_Logs di mana semua file .LDF Anda disimpan
  3. C:\SQLData\SQL_Backups di mana semua file cadangan .BAK dan .TRN Anda disimpan

Kemudian SQL Server akan bekerja tanpa masalah. Tetapi jika Anda menjalankan semacam alat yang memperingatkan Anda ketika disk kekurangan ruang, itu mungkin memeriksa C: dan bukan volume yang dipasang di bawahnya , jadi Anda mungkin tidak tahu kapan titik pemasangan rendah pada ruang disk. Juga, berbagai kueri "praktik terbaik" akan memberikan peringatan palsu yang memberi tahu Anda bahwa Anda seharusnya tidak memiliki data, log, dan cadangan semua pada disk yang sama karena SQL Server mengira mereka pada disk yang sama. Itu adalah bendera palsu, dan dapat diabaikan.

Tetapi pada dasarnya Anda ingin mengatur beberapa langkah tambahan dalam pemantauan server Anda untuk memastikan drive C: memiliki cukup ruang dan bahwa setiap titik pemasangan juga.

Saat saya menggunakan mount point di SQL Server, itulah satu-satunya masalah yang saya alami: laporan kesehatan sistem SQL Server yang memberikan data palsu tentang ruang kosong yang tersedia, dan kesalahan palsu mengatakan Anda seharusnya tidak memiliki semua data Anda pada drive yang sama. Karena Anda tahu itu adalah kesalahan palsu, mereka cukup mudah untuk diabaikan.


1 SQL Server memiliki data yang membuatnya menyadari titik mount, tetapi dari sudut pandang penggunaan praktis, tidak ada perbedaan dalam perilaku. Itu "hanya bekerja," mempercayai OS untuk menangani spesifik. Sama seperti mempercayai OS untuk menangani spesifik untuk LUN iSCSI yang terhubung sebagai drive lokal.

CaM
sumber
2
Tidak yakin apakah masih ada masalah di sekitar instalasi SQL dan ACL di sekitar titik mount pada root drive, tapi mungkin ada baiknya menempatkan mereka di dalam folder mountpoint untuk berjaga-jaga. Mis: C: \ SQLMountPoints \ SQL_Data, C: \ SQLMountPoints \ SQL_Log
Nic
Benar. Satu kali saya melakukannya dengan cara ini, saya memiliki folder "SQLDATA", kemudian "data", "Log", dan "cadangan" mount poin di bawahnya. Atau sesuatu untuk efek itu.
CaM
8

Selain CM_Dayton ini jawaban dan Sean Gallardy ini jawabannya , satu masalah belum teridentifikasi dengan Gunung Poin terkait dengan keamanan. Mengutip Pedoman untuk Mengatur Izin SQL pada Mount Point Folders :

Meskipun folder root mount-point mungkin terlihat seperti folder biasa dan diakses dengan cara yang sama folder diakses, mereka bukan folder biasa. Akibatnya, ketika Anda menetapkan izin pada folder root mount-point, izin tidak diwarisi dari "volume induk" dengan cara yang sama seperti folder biasa. Bahkan, mereka tidak diwariskan sama sekali. Ini karena meskipun tampaknya volume yang dipasang adalah anak dari "volume induk", tidak. Anda cukup mengakses volume yang dipasang melalui jalur dari "volume induk".

Singkatnya, Anda harus menetapkan izin untuk Mount Folders secara berbeda jika Anda ingin menggunakan folder root mount-point. Alih-alih memberikan izin seperti yang Anda lakukan dengan folder normal, Anda harus memberikan izin pada volume. Sekali lagi, dari artikel yang sama (sorotan adalah milik Microsoft):

Gotcha

Sayangnya, masih dimungkinkan untuk mengatur / melihat izin pada folder root mount-point melalui Windows Explorer, yang dapat menyebabkan hasil yang tidak terduga karena izin folder root mount-point mungkin tampak valid dan Anda dapat melihat izin yang diwarisi "semestinya" , namun ini bukan izin yang diterapkan pada volume yang dipasang.

Pedoman

  1. Disarankan agar Anda tidak menempatkan file apa pun secara langsung di folder root mount-point . Ini akan membuat manajemen izin lebih sederhana, karena kecenderungannya adalah selalu memeriksa izin folder, yang dalam hal ini menyesatkan. Sebagai gantinya, buat subfolder di bawah folder root mount-point, dan atur izin yang sesuai untuk subfolder itu . Karena subfolder adalah folder biasa, izin folder yang Anda amati dan atur memang izin yang sedang diterapkan. Jadi, dengan menggunakan contoh sebelumnya, Anda ingin membuat folder baru: D: \ FolderForVol3 ** SubfolderXYZ **. Sekarang, atur izin folder Anda terhadap folder SubfolderXYZ yang baru seperti biasanya.
  2. Jika Anda benar-benar harus menempatkan item langsung di folder root mount-point (Bukan pendekatan yang disarankan), maka Anda perlu mengatur volume izin, bukan izin folder. Ingat, bahwa ini karena izin folder root mount-point bukan izin yang sebenarnya akan ditetapkan pada volume yang dipasang (karena folder root mount-point bukan folder nyata). Anda dapat mengatur izin volume sebagai berikut:
  3. Jika Anda menambahkan folder baru untuk digunakan oleh SQL, perhatikan izin yang diperlukan untuk akses SQL:

Jika Anda tidak ingin menyarangkan semuanya dalam subfolder di bawah Mount Point seperti yang disarankan MS, cara saya merasa termudah untuk menetapkan izin adalah melalui cacls.exeutilitas. Instruksi terperinci untuk itu dapat ditemukan di Anda tidak dapat menerapkan izin ke direktori root volume sistem file NTFS di Windows Server 2003 .

Saya belum berpikir ini masalah yang sepenuhnya terselesaikan. Pertanyaan baru-baru ini instalasi SQL Server FCI dengan masalah izin Mount Point menunjukkan itu masih bisa terjadi pada Windows 2012 dengan SQL Server 2016.

Bergantung pada keamanan yang ingin Anda tetapkan, perintahnya mungkin berbeda-beda, tetapi pengujian adalah kunci keberhasilan jadi berkenalanlah dengan perintah sebelum menjalankannya terhadap titik pemasangan langsung karena Anda dapat dengan cepat merusak keamanan jika Anda melupakan sesuatu yang sederhana seperti \Ebendera.

John Eisbrener
sumber
DBA senior sebelumnya tidak mengetahui masalah keamanan ini (ack!) Dan saya juga tidak sampai pos ini. Saya akan mengumpulkan permintaan CMS untuk menemukan semua file db terpengaruh. Cacls sepertinya rute yang bagus (meskipun saya akan mencari sesuatu yang berbasis PoSh). @JohnEisbrener - apakah Anda memiliki masalah pengaturan ACL pada file db ketika dikunci dalam penggunaan eksklusif? Jika demikian, apa langkah selanjutnya?
SQL_Underworld
1
@ SQL_Underworld, saya akan merekomendasikan melakukan apa pun dengan cacls selama jendela pemeliharaan, di mana Anda dapat mengambil contoh database offline. Meskipun mungkin tidak perlu , itu akan mengurangi jumlah variabel yang bisa terjadi.
John Eisbrener
8

Berdasarkan hasil berbagai pencarian internet saya tidak dapat menemukan alasan (post-SQL Server 2000) untuk tidak menggunakan poin mount.

Alasan utamanya adalah seseorang memiliki pengalaman buruk dengan mereka (atau, sebaliknya, tidak memiliki pengalaman dengan mereka) dan telah menunggangi mereka ... selamanya. Ini dikenal sebagai preferensi pribadi.

Sekarang, ada yang beberapa alasan bahwa Anda tidak bisa menggunakannya. Alasan nomor satu yang dapat saya pikirkan adalah bahwa driver pihak ke-3 atau aplikasi / alat (think driver filter, replikasi disk, dll.) Tidak mendukungnya. Contoh singkatnya adalah alat replikasi disk level blok yang tidak mendukung apa pun selain NTFS, dengan hanya ukuran kluster khusus dan tidak bisa melampaui 2 TB untuk volume spesifik apa pun.

Adakah yang mengetahui keterbatasan OS Windows mengenai topik ini?

Tidak, Anda dapat membuat banyak, banyak titik pemasangan. Bahkan, Anda biasanya akan memiliki masalah dengan antarmuka perangkat Anda sebelum Anda mencapai batas yang cukup dalam Windows Server (Asumsikan Anda tidak menggunakan versi Windows Server yang berusia lebih dari 17 tahun ...).

• Saya sering mendengar klaim "OS tidak mengenali titik mount" belakangan ini. (Tidak Benar, berdasarkan penelitian saya ke dalam versi Windows Server yang kami gunakan).

Jika OS tidak mengenali titik mount, lalu bagaimana caranya membiarkan Anda menggunakan titik mount? Itu tidak masuk akal.

Jika OS tidak mengenali titik pemasangan, mengapa ia melacaknya dan menanyakan metadata mereka ? Juga, harap dicatat bahwa mount point adalah konstruksi dari sistem file yang mungkin didukung atau tidak didukung oleh OS. Tidak semua filesystem yang Anda temui dapat mendukung mount point, namun filesystem yang paling umum di Windows Server adalah NTFS yang sebenarnya mendukung mount point dan hanya sebentar.

Hanya untuk membawa barang tidak benar ini pulang lebih jauh; Windows Clustering memiliki sesuatu yang disebut Cluster Shared Volumes (CSVs) yang sebenarnya menggunakan mount point untuk volume ... itu adalah item asli yang menggunakan teknologi. Saya harus mengatakan, siapa pun yang memberi tahu Anda ini perlu dididik dalam masalah ini.

Apakah ada alasan berbasis bukti atau pengalaman TIDAK untuk menggunakan poin mount dengan SQL Server?

Ya, selalu ada satu server yang menjalankan Windows NT 4 ... tidak menggunakannya di sana. Anda mungkin juga ingin memastikan Anda menjalankan versi Windows Server yang didukung dan tetap mengikuti pembaruan.

Namun, seperti yang saya jelaskan di atas, mungkin ada item pihak ke-3 yang tidak didukung atau tidak berfungsi dengan benar. Saya akan mengatakan menjatuhkan penyedia itu dan menemukan yang baru.

Ini pemahaman saya bahwa poin mount sangat berguna untuk memisahkan beban kerja.

Poin mount sangat berguna. Ada banyak cara untuk menggunakannya, yang paling umum adalah untuk mengatasi keterbatasan huruf drive (seperti, hanya ada begitu banyak) Windows. Penggunaan paling umum berikutnya adalah memiliki drive berukuran yang lebih kecil yang dapat dikelola (bayangkan LUNs, virtual disk [VMDK, VHDX]) untuk membantu menjauh dari volume monolit yang besar dan jarang dikelola (itu benar-benar menjadi masalah untuk mengelola drive dalam kisaran 10TB seperti satu LUN, disk virtual, dll.) terutama pada versi NTFS yang lebih lama di mana implementasinya kurang dari kemungkinan penggunaan ... misalnya, dalam versi Windows yang lebih lama ukuran maksimum NTFS adalah 2TB.

Pemisahan beban kerja adalah kegunaan lain. Anda pasti bisa melihat, ada banyak kegunaan dan itu tergantung pada kasus penggunaan pribadi Anda. Ada juga cara yang tidak tepat untuk menggunakannya ... seperti membuat pernyataan selimut bahwa semuanya harus menjadi titik pemasangan. Itu hanya overhead administrasi yang gila pada saat itu.

Sean Gallardy
sumber
3

Mountpoint adalah cara yang harus dilakukan untuk server yang memiliki aplikasi bersama atau untuk mengiris data lebih dari sekedar volume DZ biasa.

Misalnya, Anda dapat menginstal semua data aplikasi, log dan temp file pada e:drive misalnya. E:/MP_1dapat memiliki file data untuk Bisnis A, E:/MP_2dapat memiliki file log E:/mp_3dapat memiliki file temp untuk Bisnis A dan sebagainya. Kemudian Anda memiliki Bisnis B di titik pemasangan di F:Drive. Setiap titik pemasangan memiliki ruangnya sendiri.

OS sama sekali tidak memiliki masalah dengan anggota parlemen. Cluster dan Selalu Aktif tidak memiliki masalah dengan anggota parlemen. Saya bekerja untuk bank yang sangat terkenal yang memiliki sebagian besar SQL Server mereka diinstal pada anggota parlemen. Setelah DBA menggunakannya dan memahami konsepnya, DBA akan mendorong mereka ke solusi yang lebih mudah di toko-toko yang membutuhkannya.

Disebutkan untuk tidak menginstal apapun pada MP root. Itu benar. Tidak ada pada MP root sama seperti Anda tidak akan menginstal apapun ke root D sebagai contoh.

Solusi audit dan pemantauan seperti Foglight, Guardiam, EMS, dan PBM juga tidak memiliki masalah dengan poin pemasangan.

Shellz
sumber