Amazon Web Services ブログ
Amazon FSx for NetApp ONTAP を使用した Windows サーバーにおけるストレージ管理
この記事は Baris Furtinalar(プリンシパルソリューションアーキテクト)、Ondrej Stavinoha(シニアスペシャリストソリューションアーキテクト)と Andy Ward(シニアスペシャリストソリューションアーキテクト)によって執筆された内容を日本語化したものです。原文はこちらを参照してください。
ワークロードをクラウドへ移行するお客様は、移行に伴うアプリケーションコードの変更や新しいデータ管理手法の習得を回避したいと考えています。理想としては、従来のオンプレミス環境と変わらない機能と管理ができるクラウドサービスを求めています。運用と管理のスキルを再学習することなく、クラウドへの移行とデプロイを加速することを目標としています。
2021 年 9 月のリリース以来、Amazon FSx for NetApp ONTAP (FSx for ONTAP) ストレージは様々なユースケースで数多くの企業に導入されています。これによりワークロードを AWS にシームレスに移行できるだけでなく、データ管理に関しても慣れ親しんだ一貫した体験を実現しています。私たちは、クラスタリングされたワークロードを実行する基盤に FSx for ONTAP を活用しているエンタープライズ企業に対して、支援を提供する多くの機会があります。特に Windows Server Failover Cluster (WSFC) をデプロイする場合です。FSx for ONTAP を活用するメリットの 1 つは、iSCSI 経由で共有ブロックストレージを提供できることです。この共有ブロックストレージを従来の WSFC クラスターストレージ、または Cluster Shared Volumes (CSV) として構成できます。
本記事では、FSx for ONTAP のボリュームと LUN で実行できるさまざまな操作について説明します。お客様の支援を通じて、最も頻繁にガイダンスを求められる 3 つの一般的なシナリオがあることがわかりました。1) ディスクの拡張、2) ディスクやボリュームの新規作成、3) LUN の別ボリュームへの移動です。この記事では、これらの 3 つのシナリオについて詳しく説明していきます。
前提条件
ウォークスルーを進めるためには、FSx for ONTAP と iSCSI で接続された Windows サーバーが少なくとも 1 つ必要です。必要な環境がない場合、または新しいテスト環境を簡単に構築したい場合は、Amazon FSx for NetApp ONTAP を共有ストレージとして使用する SQL Server Always On フェイルオーバークラスターインスタンス を設定するための以前のブログ記事に従って設定できます。このブログでは、Quorum 用 LUN、Data 用 LUN、Logs 用 LUN の 3 つの LUN を含む単一の ONTAP ボリュームをデプロイするための手順を説明しています。
このブログでは、先述のブログ記事に従ってデプロイされた各種オブジェクト (FSx for ONTAP ストレージ仮想マシン、イニシエータグループ、SQL Server クラスターリソース) を参照する多数のスクリプトとコマンドを使用しています。独自の環境にカスタマイズする必要のあるパラメータは、コマンドとスクリプトの中で太字斜体で示されています。
シナリオ 1 – 既存ディスクの拡張
このシナリオでは、図 1 のように、既存のボリューム、LUN、ディスクを拡張する方法を説明します。これは、ディスク領域が不足している状況で役立ちます。ONTAP 9.12.1P2 以降を実行している FSx for ONTAP システムの最大 LUN サイズは 128 TB です。以前の ONTAP バージョンでサポートされる最大 LUN サイズは 16 TB です。
図 1 : ディスク領域の不足時における既存の LUN/OS ディスクの拡張
まず、対象のディスクを特定するために、Amazon EC2 の Windows サーバーに接続します。次に、SSH 経由で FSx for ONTAP の CLI に切り替え、必要なストレージコマンドを実行します。最後に、EC2 の Windows サーバーに戻り、ウォークスルーの手順を最後まで実行します。
ステップ:既存のディスクの拡張
1. リモートデスクトップ (RDP) を使用して、EC2 Windows インスタンスに接続します。
2. 以下の PowerShell スクリプトを管理者権限で実行して、図 2 に示すように、接続された NetApp LUN のドライブレターと対応するディスクのシリアル番号を一覧表示します。
$disklist =@{}
get-disk | ForEach-Object {$disklist.Add($_.DiskNumber, $_.SerialNumber)}
$partitions = get-disk | Where-Object {$_.FriendlyName -eq 'NETAPP LUN C-MODE'} | foreach { Get-Partition -disknumber $_.Number |?{$_.Type -eq 'Basic' -OR $_.type -eq 'IFS'}} | select DiskNumber, Driveletter
foreach($partition in $partitions){$disklist.GetEnumerator() | ForEach-Object { if($partition.DiskNumber -eq $_.Key){Write-Output "Drive Letter $($partition.Driveletter): Disk Serial Number: $($_.value)"}}}
図 2 : 接続された NetApp LUN のドライブレターとディスクシリアル番号を一覧表示する PowerShell コマンド出力
拡張するディスクのシリアル番号をメモに控えます。
3. FSx for ONTAP システムに SSH で接続します (例 : PowerShell から ssh fsxadmin@x.x.x.x)。ファイルシステムにアクセスできない場合は、こちらの Amazon FSx の手順 に従ってください。
4. 拡張可能な LUN サイズの上限は、ONTAP のバージョンによって異なります。LUN のサイズを 16 TB を超えて拡張する必要がある場合は、ONTAP 9.12.1P2 以降のバージョンを実行しているかどうかを確認してください。FSx for ONTAP の SSH セッションから、次のコマンドを使用して、現在の FSx for ONTAP システムのバージョンを表示します。
version
5. 図 3 に示すように、ステップ 2 で控えたシリアル番号と一致する既存の LUN を一覧表示します。
lun show -serial lWB0k$TDzEXX -fields lun,volume,size
図 3 : FSx for ONTAP システムの現行バージョンを表示する「lun show」コマンドの出力
6. ぞれぞれの環境に固有のシリアル番号を使用するようにコマンドを変更してください。また、ステップ 5 で特定した LUN のサイズを 10 GB 拡張してください。
lun resize -vserver sql-svm01 -path /vol/SQLCluster01/sqldata1 -size +10g
7. RDP で EC2 インスタンスに再接続します。
8. 次の PowerShell スクリプトを実行 (管理者権限で実行) して、Windows の OS ディスク (この例では S: ドライブ) を拡張してください。
Resize-Partition -Driveletter S -Size (Get-PartitionSupportedSize -Driveletter S).SizeMax
図 4 は、S: ドライブ拡張前の Windows サーバーにおけるディスクの管理 GUI 上の表示例を示しています。
図 4 : ディスク拡張前の Windows サーバーにおけるディスクの管理 GUI
図 5 に示すように、拡張後は S: ドライブのサイズが 10 GB 増加しました。
図 5 : ディスク拡張後の Windows サーバーにおけるディスクの管理 GUI
シナリオ 2 – ディスク/ボリュームの新規作成
次のシナリオでは、図 6 に示すように、FSx for ONTAP ファイルシステムで新しいボリュームと LUN を作成し、作成した新しい LUN を Windows サーバーの新しいディスクとして追加する手順を説明します。この操作を実行する前に、FSx for ONTAP ファイルシステムに十分な空き領域があることを確認してください。
複数の LUN を含む単一の ONTAP ボリュームを使用する構成は、共有 iSCSI ストレージを利用するほとんどの WSFC のデプロイシナリオで適切に機能する有効な設計上の選択です。ただし、すべての状況において単一の設計が絶対的な最良の選択であることはまれであり、設計の一部として複数の ONTAP ボリュームをデプロイすることでメリットを得られるさまざまなユースケースがあります。
FSx for ONTAP を使用する場合に複数のボリュームをデプロイする主な理由は、NetApp のストレージ操作の大部分 (重複排除、スナップショット、クローニング、レプリケーション、インテリジェントティアリングなど) がボリューム単位で行われ、LUN レベルでは設定できないためです。標準的な SQL Server FCI デプロイシナリオでは、これは問題になる可能性は低いですが、より複雑なシナリオでは、複数の ONTAP ボリュームを使用することで得られる柔軟性が重要になる可能性があります。
たとえば、より複雑なシナリオでは、単一の SQL Server FCI を使用して複数のテナントまたは複数のアプリケーションをサポートする場合があります。各テナント/アプリケーションデータベースに独自の ONTAP ボリュームと LUN の組み合わせを提供することで、単一の ONTAP ボリュームでは不可能なレベルの詳細な制御が可能になります。たとえば、各テナント/アプリケーションは、個々の要件に応じて、ONTAP ボリューム上に個別のストレージ階層化ポリシーやレプリケーションスケジュールを設定できます。
1 つの ONTAP ボリュームだけでは不十分な理由の例としては、次のようなものがあります。
- I/O 集中型のクエリを含むデータベースを異なるボリュームに分離する
- 大規模なデータベース、または最小限の RTO 要件を持つデータベースを別々のボリュームに配置し、より迅速な復旧を可能にする
- SQL トランザクションログファイル (.ldf) を SQL データファイルとは別のボリュームに配置し、独立したバックアップスケジュールを作成できるようにする
前述の例など多くの理由から、デプロイ時に特定の構成でストレージをプロビジョニングしておくか、もしくはデプロイ後に既存ストレージシステムとそれに接続されている Windows サーバーに変更を加える必要があります。
図 6 : ONTAP ボリューム/LUN/OS ディスクの新規作成
FSx for ONTAP の CLI に SSH で接続し、必要なストレージコマンドを実行します。その後、アクティブな SQL Server クラスターノードに切り替えて、ウォークスルーの手順を最後まで実行します。
ステップ:ディスク/ボリュームの新規作成
1. FSx for ONTAP システムに SSH で接続します (例 : PowerShell から ssh fsxadmin@x.x.x.x)。ファイルシステムにアクセスできない場合は、こちらの Amazon FSx の手順に従ってください。
2. FSx for ONTAP の SSH セッションから、以下のコマンドを使用して新しいボリューム (この例では 50 GiB のサイズ) を作成します。前回のブログ記事と同じコマンドを使用しています。
volume create -vserver sql-svm01 -volume newvolume -aggregate aggr1 -size 50G -state online -tiering-policy snapshot-only -percent-snapshot-space 0 -autosize-mode grow -snapshot-policy none
volume modify -vserver sql-svm01 -volume newvolume -fractional-reserve 0
volume modify -vserver sql-svm01 -volume newvolume -space-mgmt-try-first snap_delete
volume snapshot autodelete modify -vserver sql-svm01 -volume newvolume -delete-order oldest_first -enabled true
3. 新しく作成したボリューム内に新しい LUN (サイズは 50GB) を作成し、その LUN を既存の iGroup にマップします。既存の iGroup の名前がわからない場合は、igroup show
コマンドを使って、iGroup のリストを取得してください。
lun create -vserver sql-svm01 -volume newvolume -lun newdisk -size 50G -ostype windows_2008
lun map -vserver sql-svm01 -volume newvolume -lun newdisk -igroup SQLCluster01-IG
4. RDP で Windows EC2 インスタンスに接続します。
5. Windows のディスクの管理ツール (diskmgmt.msc を実行) に移動し、新しい iSCSI ディスクを初期化してフォーマットするか、以下の PowerShell スクリプトを実行 (管理者として実行) して、新しく追加されたディスクを初期化してフォーマットし、ドライブレター「N」を割り当ててください。
#Retrieve a list of added LUNs from FSxN
$disklist = Get-Disk | Where-Object {$_.FriendlyName -eq 'NETAPP LUN C-MODE' -and ($_.OperationalStatus -eq 'Offline')} | Sort-Object -Property Size
#Create a list of drive letters
$driveletters=@("N")
#Initiate, create and format volumes from the list of available FSx for ONTAP disks
foreach($dk in $disklist)
{
if(($dk).IsOffline -eq $True){
Set-Disk -Number ($dk).Number -IsOffline $False
}
if(($dk).PartitionStyle -eq 'RAW'){
Initialize-Disk -Number ($dk).Number -PartitionStyle GPT -ErrorAction SilentlyContinue
}
if($dk.IsReadOnly -eq $True){
Set-Disk -Number ($dk).Number -IsReadOnly $False
}
}
New-Partition -DiskNumber ($disklist[0]).Number -UseMaximumSize -DriveLetter $driveletters[0] | Format-Volume -FileSystem NTFS -Force -NewFileSystemLabel NewDisk
WSFC を使用している場合は、次の 3 つの追加手順を実行する必要があります。
1. フェールオーバークラスターマネージャーに移動し、ディスクをクラスターディスクとして追加するか、次の PowerShell スクリプト (管理者として実行) を実行してください。
Get-ClusterAvailableDisk | Add-ClusterDisk ; start-sleep 05 ; Get-ClusterResource | ?{$_.ResourceType -eq "Physical Disk" -and $_.Name -like "Cluster *"}| %{$_.Name = "newdisk"}
2. フェールオーバークラスターマネージャーで、クラスターディスクを SQL Server ロールに割り当てるか、以下の PowerShell スクリプトを実行 (管理者として実行) します。
Move-ClusterResource -Name "newdisk" -Group "SQL Server (MSSQLSERVER)"
3. 最後のステップとして、SQL Server リソース内に新しく追加されたクラスターディスクの依存関係を追加します。これにより、SQL Server リソースの前にディスクがオンラインになります。これは、フェールオーバークラスターマネージャーから行うか、以下の PowerShell スクリプト (管理者として実行) を通じて実行できます。
Add-ClusterResourceDependency -Resource "SQL Server" -Provider "newdisk"
これら 3 つの追加手順を実行した場合は、クラスターのフェールオーバーをテストして、すべてが適切に構成され、別のノードにフェールオーバーできることを確認することをお勧めします。
シナリオ 3 – 既存の LUN を別の NetAPP ONTAP ボリュームに移動
シナリオ 3 では、図 7 に示すように、既存の LUN を新しい ONTAP ボリュームに移動する手順を説明します。これは、既存の LUN を個別の ONTAP ボリューム上に移動し、前のシナリオで詳しく説明したように、特定の LUN に対してさまざまな ONTAP ボリュームレベルの設定を使用するために実行します。
図 7 : LUN の別の ONTAP ボリュームへの移動
ストレージ仮想マシン (SVM) 内の ONTAP ボリューム間で移動される LUN は、接続を失うことなく即座に移動されます。移動先のボリュームは、移動する LUN のサイズより大きくなければなりません。FSx ONTAP CLI に SSH で接続して、必要なストレージの手順を実行します。Windows サーバーでの追加の手順は必要ありません。
ステップ:既存の LUN を別の NetAPP ONTAP ボリュームに移動
1. FSx for ONTAP システムに SSH で接続します (例 : PowerShell から ssh fsxadmin@x.x.x.x)。ファイルシステムにアクセスできない場合は、こちらの Amazon FSx の手順に従ってください。
2. 新しいボリュームをまだ作成していない場合、そして LUN の移動先となる既存のボリュームがない場合は、前のシナリオのステップ 2 を参照して、新しい ONTAP ボリュームを作成する方法を確認してください。
3. 図 8 に示すように、次のコマンドを使用して、移動対象の LUN とそのサイズを特定します。
lun show
図 8 : 「lun show」コマンドの出力
4. 移動対象の LUN を別のボリュームに移動します。
lun move start -vserver sql-svm01 -source-path /vol/SQLCluster01/sqllog -destination-path /vol/newvolume/sqllog
5. 図 9 に示すように、LUN の移動の進捗状況を確認します。
lun move show
図 9 : ディスク拡張後の「lun move show」コマンドの出力
クリーンアップ
ウォークスルーの実行中にリソースをプロビジョニングした場合は、意図しない料金が発生しないように、不要になったリソースを削除することをお勧めします。
ウォークスルーの完了後は、Amazon FSx for NetApp ONTAP のリソースをクリーンアップし、AWS アカウントを保護する手順に従ってください。
ウォークスルーで作成した他のリソースは、これらのリンクの手順に従ってクリーンアップできます。
まとめ
このブログ記事では、iSCSI ストレージを介して Amazon FSx for NetApp ONTAP ファイルシステムに接続された Amazon EC2 Windows サーバーに対して、3 つの一般的なストレージ管理タスクを実行する方法について説明しました。1) ディスクの拡張、2) ディスクやボリュームの新規作成、3) LUN の別ボリュームへの移動です。これらの 3 つのシナリオは、FSx for ONTAP に新規に移行したお客様から、最も頻繁にガイダンスを求められる一般的なタスクです。FSx for ONTAP の詳細については、「リソース」ページを参照してください。
この記事を読んでいただきありがとうございました。
翻訳はソリューションアーキテクトの宮城が担当しました。