Storage Spaces Direct가 디스크를 자동으로 추가하지 못하게하는 방법이 있습니까?


8

S2D (Storage Spaces Direct)를 사용하는 FCI (SQL Failover Cluster Instance)를 호스팅하는 2016 Windows Server Failover Cluster (WSFC)에서 문제가 발생했습니다. 각 서버에서 초기 생성에 성공한 후 S2D는 그렇지 않은 경우 사용하지 않은 RAID 볼륨을 스토리지 풀에 자동으로 추가했습니다 (S2D는 RAID 볼륨에서 생성 할 수없고 무인 디스크를 절대적으로 요구하지만). 이제는 내가 알아낼 수있는 한 정확하게 깨졌습니다. 결과적으로 가상 디스크는 오프라인 상태가되어 전체 클러스터를 중단시킵니다. 클러스터 네트워크 리소스가 없어서 온라인 상태로 돌아 오지 않습니다. 해당 디스크는 폐기 할 수는 있지만 제거 할 수는 없습니다. 가상 디스크 복구가 실행되지 않고 클러스터 호환성 테스트가 잘못된 구성을 요구합니다.

이것은 새로운 설정입니다. 따라서 가상 디스크, 클러스터 또는 서버를 삭제하고 다시 시작할 수 있습니다. 그러나 우리가 생산성을 발휘하기 전에 다시는 이런 일이 발생하지 않도록해야합니다. 지원되지 않는 디스크를 불필요하게 잘못 추가하는 것만으로도 가상 무릎에서 충돌을 멈추게하는 시스템은 배포 할 수있는 플랫폼이 아닙니다. 그래서 나는 주로 이것을 고치기보다는 오히려 이런 일이 일어나지 않도록하는 방법이 필요합니다. 내 생각에 S2D 설정이 생성 된 것보다 많은 디스크를 가져 가지 못하게하면 트릭을 수행 할 수 있습니다. 실제 디스크를 교체하는 동안 잠재적으로 더 많은 수동 상호 작용 비용은 클러스터에 무시할 수 있습니다. 여기에 있습니다. 그러나 지금까지 설명서를 탐색했지만 제어 방법을 찾을 수 없습니다. 내가 빠진 것이 아니라면 Set-StoragePool도

어떤 도움이나 힌트라도 대단히 감사하겠습니다.

위 내용에 대한 자세한 내용은 다음과 같습니다. 2 개의 HPE DL380 Gen9 서버 시스템이 RDMA 가능 10GB 이더넷과 1GB를 통해 클라이언트 네트에 서로 연결되어 있습니다. 각 기능은 RAID 컨트롤러 HP ??? 간단한 HBA 컨트롤러 HP ??? (S2D가 절대적으로 필요하고 직접 연결된 무인 디스크에서만 작동하므로). 스토리지 구성은 RAID 컨트롤러의 OS-RAID, RAID 컨트롤러의 파일 RAID 및 S2D 용 HBA의 직접 연결된 디스크 세트로 구성됩니다.

OS-RAID에 Windows Servers 2016 데이터 센터 에디션 2 개를 설정하고 WSFC 기능을 설치하고 S2D 옵션을 포함하여 클러스터 호환성 테스트를 실행 및 통과했으며 스토리지없이 클러스터를 생성했으며 파일 공유 감시를 별도의 컴퓨터에 추가하고 S2D를 활성화했습니다. 모든 무인 디스크를 자동으로 구성하는 스토리지 풀과 해당 풀의 맨 위에 미러 유형의 가상 디스크를 작성하고 NTFS를 파일 시스템으로 사용했습니다. 이는 SQL FCI에 대해 선택된 FS이기 때문입니다. 설치.

그런 다음 해당 클러스터에 SQL 2016 Standard Edition을 FCI로 설치하고 데이터베이스를 가져 와서 모두 테스트했습니다. 모든 것이 괜찮았다. 데이터베이스가 그 어느 때보 다 빨라졌습니다. 자동 장애 조치뿐만 아니라 강제 실행도 쉬웠습니다. 모든 것이 좋아 보였다.

다음날 우리는 나머지 Files-RAID를 사용하려고했습니다. 우선 사전 구성이 마음에 들지 않아 RAID 레벨을 변경해야했습니다. 사전 구성된 RAID 볼륨을 삭제하고 각 서버에서 새 볼륨을 구축 한 직후 클러스터가 다운 된 것을 발견했습니다. 지금까지 내가 알 수 있었던 것으로부터, 미리 구성된 Files-RAID 볼륨이 풀에 자동으로 추가되었고 방금 삭제했을 때 풀에서 누락되었습니다. 확인하면서 새 파일 -RAID가 여전히 생성되는 동안 풀의 실제 드라이브로 이미 표시되어 있습니다. 따라서 이제 풀에는 각 서버에 2 개의 RAID 볼륨이 포함되었으며 그 중 하나는 존재하지 않았습니다. 이러한 볼륨 (디스크는 아님)은 Get-PhysicalDisk에 의해 HBA의 실제 물리 디스크와 함께 나열됩니다 (정기적인지 확실하지 않음).

실제 디스크 (즉, 실제로는 RAID 볼륨 인 디스크)를 폐기 할 수 있었고 이제는 폐기 된 것으로 표시되었습니다. 그러나 그들은 여전히 ​​수영장에 있으며 지금은 제거 할 수 없으므로 실패합니다. Repair-VirtualDisk는 나머지 디스크의 가상 디스크를 적절한 상태로 다시 빌드해야합니다 (이는 다음과 같습니다 : https://social.technet.microsoft.com/Forums/windows/en-US/dbbf317b-80d2-4992- b5a9-20b83526a9c2 / storage-spaces-remove-physical-disk? forum = winserver8gen ) 그러나이 작업은 즉시 "성공"으로 끝나지만 아무런 효과가 없습니다.

네트워크로 연결된 클러스터 리소스를 사용할 수 없다는 가상 디스크 다시 온라인 전환 시도가 실패합니다. 내가 아는 한, 누락 된 디스크는 클러스터 리소스가 아니기 때문에 (사용 가능한) 스토리지 풀만 참조 할 수 있습니다. 풀에는 수정할 오류가 표시되지 않습니다. 클러스터 호환성 테스트를 실행하면 클러스터에 적합하지 않은 구성이 요구됩니다.

또 다른 인치를 버릴 수있는 부분을 찾을 수 없습니다. 실행중인 WSFC가 그런 식으로 작동하지 못하게하는 방법에 대한 아이디어가 있습니까?

나는 특히 깨달음을 발견 한 오류 메시지를 발견하지 못했으며 모든 페이지를 게시하여 더 많은 페이지를 폭격하고 싶지 않았습니다. 누구든지 특정 세부 사항을 원하면 알려주세요.

시간 내 주셔서 감사합니다, 여러분!

카르 스텐

Mr. Raspberry의 요청에 따라 업데이트 여기에 이미지 설명을 입력하십시오


3
드라이브 목록과 버스 유형을 알려주시겠습니까? PoweShell 명령 : Get-PhysicalDisk -CanPool $true | Sort Model | ft FriendlyName, BusType, CanPool, OperationalStatus, HealthStatus, Usage, Size또한 S2D 드라이브를 새 RAID에 할당 할 때 File-RAID를 재구성 할 때 실수했을 가능성이 있습니까?
Mr. Raspberry

2
S2D + SQL Server의 요점은 무엇입니까? 실행을 계획하지 않고 (실제로는 할 수없는) 무제한 라이센스 VM에 비용을 지출하고 싶은 이유는 무엇입니까? SQL Server 2016은 Standard에서도 AlwaysOn Basic AG를 사용할 수 있으며 Windows Server Standard 2016을 사용하여 막대한 비용을 절감 할 수 있습니다. docs.microsoft.com/en-us/sql/database-engine/…
BaronSamedi1958

@씨. 라즈베리 : 물리 디스크 목록으로 항목을 업데이트했습니다. 풀링 할 수있는 것이 없으므로 "-CanPool $ true"를 생략했습니다.
Karsten Köpnick

3
@ KarstenKöpnick : SQL Server AlwaysOn FCI + StarWind Virtual SAN Free에 대해 고려해보십시오. 이 구성은 적은 비용으로 2- 노드 클러스터의 경우 더 나은 작업을 수행하며 이러한 문제없이 배포 및 관리가 훨씬 쉽습니다. starwindsoftware.com/…
Mr. Raspberry

1
"S2D는 그것으로가는 길이었다"음 ... 그것으로 행운을 빕니다 :)
BaronSamedi1958

답변:


5

예, 자동 풀링 동작을 비활성화 할 수 있습니다. 경험은 크지는 않지만 확실히 할 수 있고 지원됩니다. 설정 이름 및 예제 cmdlet 구문은이 공개 문서의 설정 섹션에 있습니다.

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

기본적으로 이것을 관리자 권한으로 실행하십시오.

Get-StorageSubSystem 클러스터 * | Set-StorageHealthSetting-이름 "System.Storage.PhysicalDisk.AutoPool.Enabled"-값 False

도움이 되었기를 바랍니다! -코스모스 (@cosmosdarwin), Microsoft PM


@CosmosDarvin : 감사합니다! 그 트릭을 할 수있는 것 같습니다. 나는 그것의 깊이에 대해 조금 더 읽고 의미를 이해하고 나서 시도하고보고 할 것입니다.
Karsten Köpnick

@CosmosDarvin : 감사합니다. 나는 마침내 잠재적 영향에 대해 알아볼 수있는 주제를 깊이 파고 들었다. 내가 알 수있는 한, 해당 옵션을 비활성화하면 Add-PhysicalDisk 명령으로 디스크를 풀에 수동으로 추가해야합니다. 좋은 절충점입니다. 다른 합병증이나 단점에 대한 징후를 찾을 수 없으므로 시도해 보겠습니다. -교체시 디스크를 수동으로 추가해야 할 필요성을 문서화하면됩니다. -결과를보고하겠습니다.
Karsten Köpnick

결과보고 :이 방법으로 실제 경험을 수집 할 수 없다고 덧붙이고 싶습니다. 디스크 인클로저를 추가하고 S2D 대신 사용하기로 결정했습니다. 크기가 큰 RAID의 디스크 교체는 빈번한 작업이며, 간단한 디스크 스왑을 위해 PowerShell 개입 (문서화 된 것)을 수행하기 위해 언제든지 충분한 전문 지식을 가진 사람이 필요하다는 것은 쇼 스토퍼로 여겨졌습니다. 그런 식으로 보면 완전히 동의합니다. 그래서 우리는 인클로저를 사용하여 다시 설치했으며 이후 아무런 문제가 없었습니다. -친절하고 전문적인 도움을 주셔서 감사합니다.
Karsten Köpnick

2

이 문제에 대한 해결책은 지원되는 유형 중 하나에서 지원되지 않는 유형으로 변경하여 RAID 볼륨 또는 디스크의 버스 유형을 변경하는 것입니다.

장치 관리자에서 컨트롤러 드라이버를 식별하고 레지스트리로 이동 한 후 아래 위치에서 드라이버 이름을 찾아야합니다.

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ SmartPqi \ Parameters

필자의 경우 SAS에 해당하는 레지스트리 키를 RAID로 변경했습니다.

«버스 유형»= 0x00000008 (RAID) (0x0000000a 대신) (SAS)

기계를 재부팅

이 변경 후에는 클러스터 스토리지 공간 대신 ​​Windows 스토리지 서브 시스템에 스토리지 풀을 가질 수 있습니다.

이 유형의 해결 방법은 검증 된 솔루션이 아니므로 프로덕션 환경이 위험에 노출 될 수 있으므로주의하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.