Apakah ada cara untuk mencegah Storage Spaces Direct dari menambahkan disk secara otomatis?


8

Punya masalah di sini pada Windows Server Failover Cluster (WSFC) 2016 hosting SQL Failover Cluster Instance (FCI) menggunakan Storage Spaces Direct (S2D). Pada setiap server, setelah penciptaan awal yang sukses, S2D secara otomatis menambahkan volume RAID yang tidak digunakan ke kolam penyimpanan (meskipun S2D tidak dapat dibuat pada volume RAID dan benar-benar bersikeras pada disk yang tidak diarahkan). Sekarang sudah rusak, karena - sejauh yang saya tahu - persis seperti itu. Sebagai konsekuensinya, disk virtual sedang offline, membawa seluruh cluster turun bersamanya. Itu tidak akan kembali online, karena sumber daya jaringan cluster hilang. Disk yang dimaksud dapat dipensiunkan tetapi tidak dihapus. Perbaikan disk virtual tidak berjalan, uji kompatibilitas cluster mengklaim konfigurasi tidak valid.

Ini adalah pengaturan baru. Jadi saya bisa menghapus disk virtual, cluster atau bahkan server dan memulai kembali. Tetapi sebelum kita menjadi produktif, saya harus memastikan, ini tidak pernah terjadi lagi. Sistem yang menembak dirinya sendiri di lutut virtual terhenti hanya dengan menambahkan disk yang tidak didukung dengan tidak tepat dan tidak ada platform yang dapat kita gunakan. Jadi terutama saya perlu cara untuk mencegah hal ini terjadi, daripada memperbaikinya sekarang. Dugaan saya adalah bahwa mencegah pengaturan S2D dari mengambil lebih banyak disk daripada yang dibuat akan melakukan trik. Biaya interaksi manual yang berpotensi lebih banyak selama penggantian disk nyata dapat diabaikan oleh clusterf ... yang kita miliki di sini. Namun, sejauh saya menjelajahi dokumentasi, saya tidak dapat menemukan cara untuk mengendalikannya. Kecuali saya kehilangan sesuatu, Set-StoragePool,

Bantuan atau petunjuk apa pun akan sangat dihargai.

Berikut ini hanya rincian lebih lanjut tentang hal di atas: Kami memiliki 2 mesin server HPE DL380 Gen9 yang saling terhubung satu sama lain melalui RDMA yang mampu 10GB Ethernet dan melalui 1GB ke jaringan klien. Setiap fitur pengendali RAID HP ??? dan pengontrol HBA sederhana HP ??? (karena S2D benar-benar membutuhkan dan bekerja hanya pada disk yang terpasang langsung dan tidak diarahkan). Konfigurasi penyimpanan terdiri dari OS-RAID pada pengontrol-RAID, File-RAID pada pengontrol RAID, dan sekumpulan disk yang terpasang langsung pada HBA yang ditujukan untuk S2D.

Saya mengatur 2 edisi Windows Server 2016 datacenter pada OS-RAID, menginstal fitur WSFC, menjalankan dan lulus uji kompatibilitas cluster termasuk opsi S2D, membuat cluster tanpa penyimpanan, menambahkan saksi berbagi file (pada mesin terpisah), mengaktifkan S2D pada kumpulan penyimpanan, yang secara otomatis terdiri dari semua disk yang tidak diarahkan, dan di atas kumpulan tersebut menciptakan disk virtual dari jenis cermin dan menggunakan NTFS sebagai sistem file, karena ini dianggap sebagai FS pilihan untuk SQL FCI instalasi.

Saya kemudian menginstal edisi standar SQL 2016 sebagai FCI pada cluster itu, mengimpor database dan menguji semuanya. Semuanya baik-baik saja. Database ada di sana dan lebih cepat dari sebelumnya. Dipaksa serta kegagalan otomatis sangat mudah. Semuanya terlihat bagus.

Hari berikutnya kami mencoba memanfaatkan Files-RAID yang tersisa. Hal pertama adalah mengubah level RAID karena kami tidak suka pra-konfigurasi. Segera setelah menghapus volume RAID yang telah dikonfigurasi sebelumnya dan membangun yang baru (di setiap server), kami mendeteksi bahwa gugus sedang down. Dari apa yang saya tahu sejauh ini, volume Files-RAID yang telah dikonfigurasi sebelumnya telah secara otomatis ditambahkan ke pool, dan ketika kami baru saja menghapusnya, sekarang sudah hilang dari pool. Ketika saya mengecek, saya menemukan Files-RAID baru, sementara masih dibuat, sudah ditampilkan sebagai drive fisik dari pool juga. Jadi kumpulan sekarang termasuk 2 volume RAID pada setiap server, salah satunya bahkan tidak ada. Volume ini (tetapi bukan disk mereka) didaftar oleh Get-PhysicalDisk bersama dengan disk sebenarnya fisik pada HBA, tidak yakin apakah itu biasa.

Saya dapat menghentikan disk fisik tersebut (yaitu yang sebenarnya merupakan volume RAID), dan sekarang ditandai sebagai sudah tidak digunakan lagi. Tetapi mereka masih di kolam renang dan saya tidak dapat menghapusnya sekarang, mencoba melakukannya gagal. Perbaikan-VirtualDisk harus membangun kembali disk virtual ke kondisi yang tepat hanya pada disk yang tersisa (saya pergi dengan ini: https://social.technet.microsoft.com/Forums/windows/en-US/dbbf317b-80d2-4992- b5a9-20b83526a9c2 / storage-space-remove-physical-disk? forum = winserver8gen ), tetapi pekerjaan ini segera berakhir, "berhasil" tentu saja, tanpa efek apa pun.

Mencoba mengalihkan disk virtual kembali online gagal, menyatakan bahwa sumber daya gugus jaringan tidak tersedia. Sejauh yang saya mengerti, ini hanya bisa merujuk ke kumpulan penyimpanan (tersedia), karena disk yang hilang bukan cluster ressources. Kolam tidak menunjukkan kesalahan untuk diperbaiki. Menjalankan uji kompatibilitas cluster mengklaim konfigurasi tidak cocok untuk sebuah cluster.

Saya tidak dapat menemukan bagian yang tersisa yang akan bergerak satu inci lagi, semuanya tampak menemui jalan buntu untuk selamanya. Adakah ide tentang cara mencegah WSFC yang sedang berjalan agar tidak naik sendiri?

Saya tidak menemukan pesan kesalahan yang saya temukan sangat mencerahkan, dan saya tidak ingin mengebom halaman lebih banyak lagi dengan memposting semuanya. Jika ada yang ingin memiliki detail spesifik, beri tahu saya.

Terima kasih banyak atas waktu Anda, kawan!

Karsten

Pembaruan seperti yang diminta oleh Mr. Raspberry masukkan deskripsi gambar di sini


3
Bisakah Anda berbagi dengan kami daftar drive Anda dan jenis busnya? Perintah PoweShell: Get-PhysicalDisk -CanPool $true | Sort Model | ft FriendlyName, BusType, CanPool, OperationalStatus, HealthStatus, Usage, SizeJuga, apakah ada kemungkinan Anda melakukan kesalahan ketika mengkonfigurasi ulang File-RAID yang menetapkan drive S2D ke RAID baru?
Tn. Raspberry

2
Apa gunanya S2D + SQL Server? Mengapa Anda ingin menghabiskan uang untuk VM berlisensi yang tidak terbatas jika Anda tidak merencanakan (sebenarnya tidak dapat ...) menjalankannya? SQL Server 2016 dapat melakukan AlwaysOn Basic AG bahkan dengan Standar dan Anda dapat menghemat sejumlah besar uang hanya dengan menggunakan Windows Server Standard 2016. docs.microsoft.com/en-us/sql/database-engine/…
BaronSamedi1958

@Pak. Raspberry: Saya memperbarui entri dengan daftar disk fisik. Harap dicatat bahwa saya meninggalkan "-CanPool $ true" karena tidak ada yang bisa dikumpulkan.
Karsten Köpnick

3
@ KarstenKöpnick: Ya, saya sarankan Anda mempertimbangkan SQL Server AlwaysOn FCI + StarWind Virtual SAN Free. Konfigurasi ini akan melakukan pekerjaan dengan lebih baik dalam kasus gugus 2-simpul Anda dengan biaya lebih murah dan jauh lebih mudah untuk digunakan dan dikelola tanpa masalah seperti itu. starwindsoftware.com/...
Mr. Raspberry

1
"S2D adalah cara untuk pergi sepertinya" Yah ... Semoga berhasil dengan itu :)
BaronSamedi1958

Jawaban:


5

Ya, Anda dapat menonaktifkan perilaku auto-pooling. Pengalamannya tidak bagus, tetapi tentu saja bisa dilakukan dan didukung. Nama pengaturan, dan contoh sintaks cmdlet, ada di bagian Pengaturan pada dokumen publik ini:

https://technet.microsoft.com/en-us/windows-server-docs/failover-clustering/health-service-overview

Intinya, jalankan ini sebagai Administrator:

Get-StorageSubSystem Cluster * | Set-StorageHealthSetting -Name "System.Storage.PhysicalDisk.AutoPool.Enabled" -Nilai Palsu

Semoga ini membantu! - Cosmos (@cosmosdarwin), Microsoft PM


@CosmosDarvin: Terima kasih! Sepertinya itu bisa melakukan trik. Saya perlu membaca sedikit lebih dalam dan memahami implikasinya, maka saya akan mencobanya dan melaporkannya.
Karsten Köpnick

@CosmosDarvin: Terima kasih banyak. Saya akhirnya memiliki kesempatan untuk menggali lebih dalam topik ini untuk mencari tahu tentang kemungkinan dampaknya. Sejauh yang saya tahu, dengan opsi itu dinonaktifkan, satu-satunya konsekuensi adalah bahwa disk harus ditambahkan ke kumpulan secara manual dengan perintah Add-PhysicalDisk. Yang merupakan trade-off yang bagus. Saya tidak dapat menemukan indikasi tentang komplikasi atau kerugian lain, jadi saya akan mencoba ini. - Hanya perlu mendokumentasikan keharusan untuk menambahkan disk secara manual jika terjadi penggantian. - Saya akan melaporkan hasilnya.
Karsten Köpnick

Melaporkan hasilnya: Saya ingin menambahkan bahwa saya tidak dapat mengumpulkan pengalaman kehidupan nyata dengan pendekatan ini. Diputuskan untuk menambahkan penutup disk dan menggunakannya bukan S2D. Pengganti disk dalam RAID yang ukurannya merupakan tugas yang sering, dan persyaratan untuk memiliki seseorang dengan keahlian yang cukup setiap saat untuk melakukan intervensi PowerShell, bahkan yang terdokumentasi, untuk pertukaran disk sederhana dipandang sebagai penghenti acara. Melihatnya seperti itu, saya sepenuhnya setuju. Jadi kami menginstal ulang menggunakan enklosur dan tidak memiliki masalah sejak itu. - Terima kasih atas bantuan dan bantuan ahli Anda.
Karsten Köpnick

2

Solusi yang saya temukan untuk masalah ini adalah mengubah Jenis Bus dari volume atau disk RAID dengan mengubahnya dari salah satu jenis yang didukung ke yang tidak didukung.

Anda harus mengidentifikasi driver pengontrol dari Device Manager dan setelah masuk registri dan menemukan nama driver di lokasi di bawah ini.

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ SmartPqi \ Parameters

Dalam kasus saya, saya telah mengubah kunci registri yang sesuai dengan SAS menjadi RAID

«BusType» = 0x00000008 (RAID) (bukan 0x0000000a) (SAS)

reboot mesin

Setelah perubahan ini, Anda dapat memiliki kumpulan penyimpanan di subsistem Penyimpanan Windows alih-alih Ruang Penyimpanan Clustered

Harap berhati-hati jika Anda ingin menerapkan solusi seperti ini karena ini bukan solusi yang divalidasi dan dapat membuat lingkungan produksi Anda berisiko tinggi.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.