Grup File Database SQL Server di SAN: Relevan atau Tidak?

Saya akan membangun SQL Server baru dan saya berencana untuk menggunakan grup file secara ekstensif. Saya mengharapkan pertumbuhan besar, dan banyak membaca/menulis ke 5 database berbeda di server ini. Saya berencana membuat 2 grup file tambahan (satu untuk data pengguna dan satu untuk indeks) di setiap database dengan total 3 grup file per database. Saya berencana membagi grup file di antara drive/spindel yang berbeda. Server ini adalah server virtual (VMWare) pada EMC SAN. Saya baru mengenal arsitektur SAN dan saya bukan administrator SAN. Saya membaca uraian singkat tentang grup file dan SAN di buku "Microsoft SQL Server 2012 Unleashed" bahwa grup file mungkin tidak relevan saat menggunakan SAN. Sayangnya, tidak ada lebih banyak detail dari itu, dan saya belum menemukan banyak hal lain mengenai topik ini.

Apakah ada gunanya menggunakan grup file saat menggunakan SAN untuk penyimpanan?

Jika tidak, mengapa tidak? Jika ya, lalu mengapa?

Pertanyaan apa yang mungkin saya ajukan kepada Admin SAN saya tentang topik ini?


person DMill    schedule 22.09.2014    source sumber
comment
Ini mungkin lebih baik ditempatkan di serverfault.com   -  person bic    schedule 22.09.2014
comment
Mungkin relevan dengan kasus Anda - serverfault.com/questions/51511/   -  person bic    schedule 22.09.2014
comment
Pertanyaan ini tampaknya di luar topik karena lebih cocok untuk Kesalahan Server atau mungkin Administrator Basis Data. Ini bukan pertanyaan pemrograman seperti yang didefinisikan dalam pedoman pusat bantuan.   -  person Ken White    schedule 22.09.2014
comment
Saya akan memposting pertanyaan saya di dba.stackexchange.com. Terima kasih.   -  person DMill    schedule 23.09.2014


Jawaban (1)


Yang perlu Anda pahami adalah apa itu SAN.

SAN adalah satu atau lebih susunan penyimpanan, yang saling terhubung melalui jaringan saluran serat. Host Anda memiliki kartu jaringan khusus - yang disebut Host Bus Adapters (HBA) - untuk berbicara dengan jaringan tersebut. Protokol jaringan dirancang untuk lalu lintas penyimpanan, sehingga sangat cocok untuk lalu lintas berperforma tinggi dan latensi rendah.

Array yang Anda ajak bicara... yah, kemampuannya sangat bervariasi. Bahkan EMC SAN seperti yang Anda sebut - mungkin merupakan berbagai produk EMC sebagai rangkaian penyimpanan. Tujuan utamanya adalah mengkonsolidasikan kinerja penyimpanan.

Anda mendapatkan kinerja puncak yang lebih baik dari 100 spindel yang dibagikan dengan 10 server, dibandingkan jika setiap server memiliki 10 spindel masing-masing. Jadi yang pada dasarnya lakukan adalah membagi 100 spindel menjadi unit logis - dan kemudian mengembalikannya ke host Anda, sehingga setiap host memiliki rata-rata kinerja, tetapi puncaknya adalah 10x ukurannya. (Atau lebih mungkin lebih realistis - mereka mungkin menggunakan 50 spindel, karena Anda akan mendapatkan 5x puncaknya, tetapi setengah biayanya, dengan imbalan rata-rata yang lebih rendah).

Sekarang - Grup File. Seperti yang saya pahami (menjadi insinyur penyimpanan, daripada mengetahui banyak tentang SQL). Grup file memungkinkan Anda mengelola penempatan data, khususnya ke penyimpanan yang mendasarinya.

Ini adalah hal yang menggelitik - karena itu tergantung. Biasanya susunan penyimpanan Anda akan melakukan beberapa hal yang cukup pintar untuk menyederhanakan penempatan dan throughput data. Hal-hal seperti caching yang cukup agresif - jauh lebih banyak daripada yang Anda dapatkan pada host normal - yang berarti bahwa sebagian besar beban kerja akses acak Anda berjalan pada 'kecepatan RAM' daripada 'kecepatan disk'. Ini mungkin akan menghasilkan lebih banyak spindel daripada yang biasanya Anda harapkan.

Sejauh yang saya tahu - pada dasarnya adalah apa yang ingin dicapai oleh grup file - Anda secara manual menempatkan file pada disk, dan membiarkan SQL menangani IO paralel ke disk tersebut. Array penyimpanan Anda sudah melakukan hal ini untuk Anda, dan paling banter Anda akan membuat admin pusing kepala yang tidak perlu, dan paling buruk Anda justru akan membuat pengoptimalan sisi array menjadi lebih buruk.

Anda mungkin masih ingin memisahkan berbagai tipe konten, namun saya sarankan Anda melakukannya melalui LUN berbeda yang dialokasikan dari SAN Anda. Terlebih lagi Anda tidak dapat menguras ruang dari satu database dengan mengisi yang lain - namun hal ini juga memungkinkan lebih banyak fleksibilitas saat mengambil snapshot atau klon.

Apa yang saya sarankan:

  • bicaralah dengan petugas penyimpanan Anda tentang profil IO yang diharapkan dari database Anda. (IO adalah hal yang mahal di SAN, dan biasanya database menggunakan lebih banyak daripada aplikasi 'normal')
  • letakkan setiap instance pada kumpulan LUN yang berbeda - pisahkan DB, log, dan tempdb.
  • Di dalam vmware, Anda mungkin mendapatkan disk 'logis' di penyimpanan data yang sama. Jika kinerja sangat penting, mungkin ada baiknya meneruskan SAN LUN langsung ke host.

Dan kemudian jangan terlalu mengkhawatirkannya - jika Anda melihat masalah tertentu, LUN individu seharusnya dapat disetel ulang/dipindahkan untuk memperbaiki situasi.

person Sobrique    schedule 06.10.2014