2026年1月31日土曜日

2028 年にリタイア予定の Azure VM サイズについて調べた

2028 年にリタイア予定の Azure VM サイズについて(D, Ds, Dv2, Dsv2, Ls および F, Fs, Fsv2, Lsv2, G, Gs, Av2, Amv2, B シリーズ)

という記事を見つけました。うちもBシリーズを使っているのですが、該当するのか否かを調べてみることにしました。記載されているスクリプトなどを実行してみます。

まず全てのAzure VMをResource Graph エクスプローラーで検索しました。

続いて、2028年にリタイヤするAzure VMをResource Graph エクスプローラーで検索しました。
7/8件が該当しました。2028年とまだ先ではありますが、どこかでシャットダウンしてVMサイズを変えておきます。

なお、

2028 年にリタイア予定の Azure VM サイズについて(D, Ds, Dv2, Dsv2, Ls および F, Fs, Fsv2, Lsv2, G, Gs, Av2, Amv2, B シリーズ)

に下記文言があります。下記のAzure VMサイズは、リタイヤ対象では無いです、念のため。

Standard_D2_v3 サイズといった Dv3 シリーズや Standard_B2s_v2 サイズといった Bsv2 サイズなどは、今回のリタイアの対象には含まれておりません。

wSCUGJ 第49回勉強会セッション資料「Azure MigrateによるVMwareからAzure Localへの移行概要」

wSCUGJ 第49回勉強会セッション動画「Azure MigrateによるVMwareからAzure Localへの移行概要」


 

2026年1月28日水曜日

Azure Local のRack Aware/multi-rack deploymentsで要求されるリソースプロバイダーの登録状況を確認する その2

Azure Local のRack Aware/multi-rack deploymentsで要求されるリソースプロバイダーの登録状況を確認する

では、Azure PowerShellをCloud Shellで実行するようにしました。ただ

Prerequisites for multi-rack deployments of Azure Local (preview)

は、Azure CLIで実行するようになっています。だったら、Azure CLIで登録状況を確認できた方が良いですよね。
改めてChatGPTとやりとりして、Cloud Shellで動作確認したものです。

Cloud Shellにcatを使ってファイルを保存します。

cat << 'EOF' > check-providers.sh
#!/usr/bin/env bash
set -euo pipefail

SUBSCRIPTION_ID="$1"

if [[ -z "${SUBSCRIPTION_ID:-}" ]]; then
  echo "Usage: $0 <subscription-id>"
  exit 1
fi

PROVIDERS=(
  "Microsoft.AzureArcData"
  "Microsoft.Compute"
  "Microsoft.AzureStackHCI"
  "Microsoft.ContainerService"
  "Microsoft.ExtendedLocation"
  "Microsoft.GuestConfiguration"
  "Microsoft.HybridCompute"
  "Microsoft.HybridConnectivity"
  "Microsoft.HybridContainerService"
  "Microsoft.HybridNetwork"
  "Microsoft.Insights"
  "Microsoft.KeyVault"
  "Microsoft.Kubernetes"
  "Microsoft.KubernetesConfiguration"
  "Microsoft.ManagedIdentity"
  "Microsoft.ManagedNetworkFabric"
  "Microsoft.Network"
  "Microsoft.NetworkCloud"
  "Microsoft.OperationalInsights"
  "Microsoft.OperationsManagement"
  "Microsoft.Relay"
  "Microsoft.ResourceConnector"
  "Microsoft.Resources"
  "Microsoft.Storage"
  "Microsoft.NexusIdentity"
)

az account set --subscription "$SUBSCRIPTION_ID"

printf "%-40s %s\n" "Provider" "Status"
printf "%-40s %s\n" "--------" "------"

for ns in "${PROVIDERS[@]}"; do
  state=$(az provider show \
    --namespace "$ns" \
    --query "registrationState" \
    -o tsv 2>/dev/null || echo "NotFound")

  printf "%-40s %s\n" "$ns" "$state"
done
EOF

実行権限を付与します。

chmod +x check-providers.sh

実行権限を付与したので、ファイル名とサブスクリプションIDを指定して実行します。

./check-providers.sh <subscription-id>

実行結果の例を下記に貼ります。


結果の内容自体は、Azure Local のRack Aware/multi-rack deploymentsで要求されるリソースプロバイダーの登録状況を確認する と同じです。

2026年1月27日火曜日

Azure Local のRack Aware/multi-rack deploymentsで要求されるリソースプロバイダーの登録状況を確認する

Prerequisites for multi-rack deployments of Azure Local (preview) - Register resource providers

を読んでいまして、Azure Localの通常デプロイにはないリソースプロバイダーがあるなと。とりあえず、未登録のものを知りたいので、chatGPTとやりとりすること数回。結果、

$subscriptionId = "あなたのサブスクリプションID"
Select-AzSubscription -SubscriptionId $subscriptionId
$providers = @(
  "Microsoft.AzureArcData",
  "Microsoft.Compute",
  "Microsoft.AzureStackHCI",
  "Microsoft.ContainerService",
  "Microsoft.ExtendedLocation",
  "Microsoft.GuestConfiguration",
  "Microsoft.HybridCompute",
  "Microsoft.HybridConnectivity",
  "Microsoft.HybridContainerService",
  "Microsoft.HybridNetwork",
  "Microsoft.Insights",
  "Microsoft.Keyvault",
  "Microsoft.Kubernetes",
  "Microsoft.KubernetesConfiguration",
  "Microsoft.ManagedIdentity",
  "Microsoft.ManagedNetworkFabric",
  "Microsoft.Network",
  "Microsoft.NetworkCloud",
  "Microsoft.OperationalInsights",
  "Microsoft.OperationsManagement",
  "Microsoft.Relay",
  "Microsoft.ResourceConnector",
  "Microsoft.Resources",
  "Microsoft.Storage",
  "Microsoft.NexusIdentity"
)
$providers |
ForEach-Object {
    $rp = Get-AzResourceProvider -ProviderNamespace $_ -ErrorAction SilentlyContinue
    if ($null -eq $rp) {
        [PSCustomObject]@{
            Provider = $_
            Status   = "NotFound"
        }
    }
    else {
        [PSCustomObject]@{
            Provider = $_
            Status   = ($rp | Select-Object -First 1).RegistrationState
        }
    }
} |
Format-Table -AutoSize

が出来上がりました。出力結果は下記の通りなのですが、しばらく待つ必要がありますのでご注意ください。

別途、未登録のリソースプロバイダーを登録するように改良もできますね。

2026年1月22日木曜日

Nested Azure Localクラスターを解体する

PoC環境なので、定期的にNested Azure Localクラスターを解体しています。今回はUpdateに失敗した状況でそれができるかというものです。。。

なおここから記載する順番は、何か根拠があってではなく、デプロイの順番をおおよそ巻き戻していく感じで進めていくことをご了承ください。この手順通りにやったとして何か起きてもご自身でリスクを負っていただきます。(今回は自分自身でもリスクを負っています)

注)アップデートの失敗は、Azureサポートに照会するのが本来かと思います。今回は、PoC故にHyper-Vホストのリソースを開けることを目的としたに解体です。改めてご承知おきください。

一番問題なのが、Azure Localクラスターがアップデート実行中のまま(もしくはアップデートが失敗)であることです。

この状態で、Azure LocalクラスターのリソースをAzureから削除できるのだろうかということで、強行してみます。

最初のエラーは、Lockオブジェクトの削除し忘れなので気にしないでください。

改めてロックオブジェクトを削除します。
Azure Localのオブジェクトを削除します。
無事に削除できました。

続いてAzrure Arc対応サーバーであるAzure Localのノードを削除します。Lockオブジェクトの削除、Extensionの削除、ノードのオブジェクトを削除といった順で進めます。

注)Azure Arc対応サーバーのリソースは、拡張を削除してから削除しています。Azure Arc対応サーバーが稼働している状態で、拡張を削除、Azure Connecte Machine Agentの関連付け削除といった順番です。

あとは、リソースグループに残っている不要なリソースを削除します。下記ではまとめて削除しました。(Arcゲートウェイを除きます)

実際には、Lockオブジェクトを持つストレージアカウントの二つが残りました。こちらはLockオブジェクトを削除後、改めて削除しました。

Azure側の登録解除が終わりましたら、S2D無効化、クラスターの解体、OU内のオブジェクトクリーンアップ、OUの削除、DNSレコードの削除を進めれば完了します。この辺りは、画面キャプチャを省略させていただきます。

2026年1月21日水曜日

Network ATCを入れたつもりが、Windows Admin Centerで未インストールになっていた

Nestec Windows Server 2025に対して、下記のコマンドでNetwork ATCを有効化していました。

install-WindowsFeature -Vhd $VhdPath -Name "BitLocker", "Data-Center-Bridging", "Failover-Clustering", "FS-FileServer", "FS-Data-Deduplication", "Hyper-V", "Hyper-V-PowerShell", "RSAT-AD-Powershell", "RSAT-Clustering-PowerShell", "Storage-Replica", "NetworkATC" -IncludeAllSubFeature -IncludeManagementTools

が、Windows Admin CenterのNetwork ATCが未インストールになっておりました。
Get-WindowsFeatureなど実行しつつ、加えて情報を探してみました。

Network ATC を使用してホスト ネットワークをデプロイする

に下記の記載があり、赤字箇所が足りていないと気づきました。

Install-WindowsFeature -Name NetworkATC, Hyper-V, 'Failover-Clustering', 'Data-Center-Bridging', FS-SMBBW -IncludeManagementTools

Windows Admin CenterでNetwork ATCを有効化前のGet-WindowsFeatureで該当行は、下記でした。
[ ] SMB 帯域幅制限                                                  FS-SMBBW                                         Available
Windows Admin CenterでNetwork ATCを有効化後は、下記でした。
[X] SMB 帯域幅制限                                                  FS-SMBBW                                         Installed

ビンゴでした。。。
ということで、VHDへのInstall-WindowsFeatureを書き直しましたよ。
install-WindowsFeature -Vhd $VhdPath -Name "BitLocker", "Data-Center-Bridging", "Failover-Clustering", "FS-FileServer", "FS-Data-Deduplication", "Hyper-V", "Hyper-V-PowerShell", "RSAT-AD-Powershell", "RSAT-Clustering-PowerShell", "Storage-Replica", "NetworkATC" FS-SMBBW -IncludeAllSubFeature -IncludeManagementTools

2026年1月22日 追伸

下記も参考にいたしました。

Network ATC ってなに?