SafeKitを検索

Hyper-V SafeKit による高可用性: フェイルオーバー用の hyperv.safe モジュールのインストール

Hyper-V の高可用性クイック インストール ガイド

このガイドでは、セットアップ方法について説明します。 ミラークラスタ のために Hyper-V を使用して SafeKit共有ストレージを必要とせずに、自動フェイルオーバーと同期レプリケーションを保証します。

ヘルプが必要な場合は、次を使用できます SafeKit AI 🤖.

1. 概要

  • アーキテクチャ: 2ノードシステム(プライマリ/セカンダリ)を採用します。
  • データ保護: リアルタイム同期レプリケーションを実装します。 データ損失ゼロ (RPO=0)。

2. インストール

  • ソフトウェア: SafeKit エンジンを両方のサーバーにインストールします。
  • モジュール: 事前設定されたものをダウンロードする hyperv.safe アプリケーションモジュール。

3. 構成

  • ウェブコンソール: Hyper-V ファイルを含む特定のフォルダーを構成します。
  • モニタリング: Hyper-V アプリケーションの監視と保護を開始します。

SafeKit 高可用性の制限事項

制限 / 要件理由と影響推奨される代替案
レプリケーションサイズ: 数 TB障害後の再同期時間 (ステップ 3) :
• 1 Gb/s ネットワーク ≈ 3 時間 / TB
• 10 Gb/s ネットワーク ≈ 1 時間 / TB (ディスクの書き込みパフォーマンスに依存)
• 外部共有ストレージを使用する (より高価、より複雑)。
ファイル数: < 1,000,000 ファイル• 障害後の再同期時間のパフォーマンス (ステップ 3)。
• 両方のノード間で各ファイルを確認するための時間。
• レプリケートする多数のファイルを仮想ハードディスク / 仮想マシン内に配置する。
• この場合、仮想ハードディスク / 仮想マシンを表すファイルのみがレプリケートおよび再同期されます。
フェイルオーバー容量: ≤ 32 VM• 各 VM は独立したミラーモジュールで実行されます。
• 同じクラスターで実行できるミラーモジュールは最大 32 個です。
• 外部共有ストレージと別の VM クラスタリングソリューションを使用する (より高価、より複雑)。
ネットワークアーキテクチャ: リモートサイト間の LAN/VLAN ネットワーク• 同じサブネット内にある 2 つのノードでの仮想 IP アドレスの自動フェイルオーバー。
• 再同期のための良好な帯域幅 (ステップ 3)。
• 同期レプリケーションの低レイテンシ: 通常 < 5 ms RTT。これより高い値は、アプリケーションの書き込みレートに対して検証する必要があります。
• 2 つのノードが 2 つのサブネットにある場合は、仮想 IP アドレス用ロードバランサーを使用する (SafeKit でサポート、特にクラウド環境)。
• 高レイテンシネットワークには、非同期レプリケーションを備えたバックアップソリューションを使用する。

SafeKit / Hyper-V ソリューションの概要

解決策はここで説明されています。 💡シンプル Hyper-V 共有ストレージ (SAN) を使用しない高可用性

のインストール SafeKit / Hyper-V 解決策 Windows (hyperv.safe)

前提条件

  • Hyper-V 2 にインストールされた役割 Windows ノード (すべてに無料で埋め込まれています) Windows を含むバージョン Windows PC用)。
  • 1 つ以上の仮想マシン内にインストールされた重要なアプリケーション。
  • Hyper-V ホストあたり最大 32 の仮想マシン。
  • 複製されるデータの合計は数テラバイトに制限されており、これを超えると再同期にかかる時間が大幅に長くなります。
  • ノード間の相互接続は最低 1Gb/秒 (再同期を高速化するには 10Gb/秒を推奨)。
  • IP フェイルオーバーには、同じ LAN または拡張 LAN (L2) 上の両方のノードが必要です。ルーティングされた L3 ネットワークはサポートされていません (🛠️ クラウド ロード バランサー ] を除く)。

Siemens LMS ライセンス下の製品について

  • フェイルオーバー時に Siemens ライセンスが破損するのを避けるために、Siemens キーを含むドングルを USB over IP デバイス (DIGI AnywhereUSB など) に配置できます。
  • ドングルは、外部 PC に取り付けることもできます。 LMSライセンスサーバー PC上で。
  • Siemens ライセンス システムの最近のバージョンでは、ライセンス キーを VM の Trusted Platform Module に入れることができます。

Windows へのパッケージのインストール

  • SafeKit の無料バージョンをダウンロードして、2 つの Windows ノードにインストールします。
    注: 無料版には、SafeKit のすべての機能が含まれています。トライアル終了後は、パッケージをアンインストールせずに永久ライセンス キーをアクティブ化できます。
  • パッケージのインストールが完了したら、 Set console credentials and firewall rules now のパスワードを設定します admin SafeKit コンソールのユーザー。
    すべてのノードに同じパスワードを設定します。
  • ウイルス対策スキャンから除外する C:/safekit/ (デフォルトのインストールディレクトリ) および すべてのレプリケートされたフォルダー あなたが定義しようとしているものです。
    SafeKit は、OS、仮想 IP メカニズム、リアルタイム レプリケーション、重要なサービスの再起動と緊密に統合されているため、ウイルス対策製品は検出の課題に直面する可能性があります。

ダウンロード SafeKit (Windows) >

Windows へのモジュールのインストール

  • ダウンロード hyperv.safe モジュール。モジュールは無料です。ファイルが含まれています userconfig.xml そして再起動スクリプト。
  • 置く hyperv.safe 下 C:/safekit/Application_Modules/generic.

ダウンロード hyperv.safe (Windows) >

SafeKit / Hyper-V ソリューションの段階的な構成

⚠️ 開始する前に、以下の項目をよくお読みください。

  • Hyper-V 構成には、という名前の仮想マシンが表示されます。 VM1。 「1. 前提条件」をよくお読みください。 VM1 ファイルの構成 そうしないと、セカンダリ ノードでのリカバリがデータの不整合により失敗する可能性があります。
  • レプリケートして再起動するすべての VM に対してこの構成を繰り返す必要があります。
  • SafeKit によってレプリケートされた VM ファイルが保存されるファイル システムは、NTFS である必要があります。 ReFSはサポートされていません.
  • SafeKit は、次のレプリケーションをサポートします。 Hyper-V 本番チェックポイントですが、標準チェックポイントではありません。標準チェックポイントは使用しないでください。使用しないと、セカンダリ ノードでのリカバリがデータの不整合により失敗する可能性があります。

1. 前提条件

SafeKit レプリケーションの場合、これが Hyper‑V のデフォルトの動作ではない場合でも、すべての VM1 仮想マシン ファイル (構成ファイル、仮想ハード ディスクなど) を同じフォルダーに保存する必要があります (例: D:/Repli-Hyper-V/VM1、ここで VM1 は仮想マシンの名前です)。

VM1 のすべてのファイルが同じフォルダーにない場合は、Hyper-V マネージャーを使用します。

  • VM1 をフォルダー (たとえば、D:/Repli-Hyper-V) にエクスポートします。
  • このエクスポートにより、フォルダー D:/Repli- が作成されます。Hyper-V/VM1 すべてを含む VM1 ファイル
  • 削除 VM1 の在庫から Hyper-V マネージャー
  • 以前にエクスポートした VM1 を Hyper-V マネージャーにインポートします

⚠️ 手順を開始する前に、スナップショットまたは VM を作成します。

⚠️ VM1 は単一ノード上にのみ作成する必要があります。他のノードに作成するのは、VM1 ディレクトリ (D:/Repli-Hyper-V/VM1) だけです。

⚠️ 仮想マシンによって参照される仮想スイッチ名が両方の Hyper-V サーバーに存在し、同じ物理ネットワークに対応していることを確認してください。

⚠️ VM 移行の前提条件が満たされていない場合、Hyper‑V モジュール (hyperv.safe) フェイルオーバーが失敗する可能性があります。 Hyper‑V ノード間の互換性の問題 (ハードウェア、ネットワーク、構成) を検出するには、🛠️ を参照してください。 本書ではKB SK-0088.

2. SafeKit コンソールを起動します

  • に接続して、1 つのクラスター ノード上のブラウザーで Web コンソールを起動します。 http://localhost:9010.
  • 入力してください admin インストール時に定義されたユーザー名とパスワードとして。

クラスター外部のワークステーション上のブラウザーでコンソールを実行することもできます。

⚠️ SafeKit の設定は、単一のブラウザから両方のノードで実行されます。

ℹ️ Web コンソールを保護するには、🛠️ を参照してください。 11\。 SafeKit Web サービスのセキュリティ保護 ユーザーズガイドに記載されています。

SafeKit Web コンソールを起動して、Hyper-V クラスターを構成します。

3. ノードアドレスを設定する

  • ノード IP アドレスを入力し、 Tab key 接続を確認し、ノード名を入力します。ノード 1 またはノード 2 のいずれかが赤色の場合は、両方のノードへのブラウザの接続を確認し、両方のノードのファイアウォールで 🛠️ を確認してください。 トラブルシューティング.
  • 次に、 をクリックします Save and apply をクリックして設定を保存します。
  • チェックしてください Success ✅ 両方のノードにメッセージが表示されます。
  • 構成の場合 Failure ❌ が 1 つのノードで発生した場合は、そのノードの ▼ アコーディオンを開いてメッセージを確認します。 SafeKit AI 🤖 を使用できることに注意してください。

ℹ️ 必要に応じて、新しいものを追加できます LAN and nodes (最初の➕) 2 番目のハートビートと専用のレプリケーション ネットワークを作成します。

ℹ️クリックしていただければ Advanced configuration、 cluster.xml ファイルが表示されます。このファイルはコンソールによって自動的に設定され、ノードにデプロイされます。

Hyper-V クラスターのノードを入力します。

4. モジュールを選択します

  • で New moduleをクリックして、 hyperv.safe モジュール。

ℹ️ 上部の青いバナーに、🛜 node1 はコンソール接続ノードを表します。このノードはリクエストを中継します node2 必要な場合。

ℹ️ コンソールは次のものを探します xxx.safe で Application_Modules/generic/ 接続ノード上のディレクトリ (node1) インストール中にそこにモジュールを配置した場合。

Hyper-V のモジュールを選択してください

5. モジュールの構成

  • を選択してください Automatic 起動時に遅延なくモジュールが開始されます。
  • 通常は 1 つあります Heartbeat レプリケーションが行われるネットワーク。ただし、必要に応じてプライベート ネットワークを定義できます (ステップ 3 で LAN を追加します)。
  • 入れて VM_PATH、レプリケートされたディレクトリのルート パス (D:/Repli-Hyper-V)。
  • 入力してください VM_NAME、仮想マシンの名前 (VM1)。

すべての VM1 ファイルが D:/Repli-Hyper-V/VM1 にあると仮定します (「 前提条件)。このディレクトリは、SafeKit によってリアルタイムでレプリケートされます。フェイルオーバーが機能しないため、部分レプリケーションは実行しないでください。

の NORMAL_STOP そして FORCE_STOP 値は “stop”, “save「または」off”:

  • “stop” モジュールが停止すると VM がシャットダウンされます。
  • “save” は、モジュールが停止したときに VM の現在の状態 (サスペンド) を保存します。
  • “off” は、モジュールの停止時に VM をオフ (電源オフ) にします。

“stopモジュールを停止して再起動すると、VM がシャットダウンしてから再起動するため、「」を使用することをお勧めします。したがって、VM 内のアプリケーションに障害が発生した場合は、再起動されます。

これは、たとえば、プライマリ ロールとセカンダリ ロールを切り替える場合に当てはまります。

ℹ️ 仮想環境を設定する必要はありません。 IP 住所。 VM1 セカンダリで再起動されます Hyper-V その物理的な IP 住所とこれ IP アドレスは再ルーティングされます。

ℹ️ SafeKit 構成を適用すると、 Automatic Start Action 仮想マシンの設定は Nothing Hyper-Vで。これにより、Hyper-V ホストの起動時に VM が自動的に起動せず、モジュール自体が起動した場合にのみ VM が起動されるようになります。

Hyper-Vパラメータを入力します

6. VMの異常を検出するカスタムチェッカー

カスタム チェッカーは、ハートビート メッセージをホストから VM に定期的に送信します。これらの各ハートビート メッセージに対する応答を送信するのは、VM にインストールされている Hyper-V ハートビート サービスの役割です。

Hyper-V ハートビート サービスがメッセージに応答しない場合 (VM がロックアップ、クラッシュ、または機能停止)、カスタム チェッカーは同じ Hyper-V ノードまたは別のノードで VM を再起動するアクションを実行します。

  • をクリックしてください Checkers / Custom (画像を参照)。
  • 好きな名前を設定するだけです Resource name (例: VM1)。 Resource name SafeKit のリソース名を持つ仮想マシンを識別します。 custom.VM1.
  • と restart で Action、VM は同じ Hyper-V ノードで再起動されます。 24 時間以内に再起動が 3 回失敗すると、プライマリ ノードで SafeKit hyperv モジュールが停止し、セカンダリ ノードで VM のフェールオーバーが発生します。
  • 設定した場合 stopstart で Action、VM がハートビートに応答しないとすぐに、他の Hyper-V ノードで直接フェールオーバーが行われます。

ℹ️ メンテナンスのために仮想マシンを停止したい場合、カスタム チェッカーは仮想マシンを自動的に再起動します。それを回避するには、一時的に チェッカーを一時停止します 🖼️。または、コンソールの設定行を削除して削除することもできます。

ℹ️ チェックポイントを復元したい場合も同様です。 Hyper-V は操作を実行するために VM を停止しますが、VM チェッカーは VM を自動的に再起動することで否定的な反応を示す可能性があります。これを回避するには、 チェッカーを一時停止します 🖼️ 操作を続行する前に。

ℹ️ デフォルトでは、カスタム チェッカーは、VM が使用不可であるとみなされるまで、VM の起動に 50 秒を許可します。もしあなたの Hyper-V VM の起動にはさらに時間がかかります。次の値を追加すると、この遅延を増やすことができます。InitialGrace に vmcheck.ps1 カスタムチェッカー userconfig.xml。値は 5 秒単位で表されます。たとえば、-InitialGrace 20 では 100 秒の猶予期間が許可されます。 <custom ident="VM1" exec="vmcheck.ps1" arg="%VM_NAME% -InitialGrace 20" when="prim" action="restart"></custom>.

Hyper-V カスタム チェッカー パラメータを入力します

7. スクリプトの編集 (オプション)

  • スクリプトを編集しないでください。

8. 通信の暗号化(オプション)

  • ノード間の通信の暗号化を維持します。

Hyper-Vモジュールの通信暗号化

9. 保存して適用する

  • Save and apply 両方のノードの構成とスクリプト。

Hyper-V モジュール構成を保存して適用します。

10. 構成が成功したことを確認する

  • チェックしてください Success ✅ 両方のノードでメッセージを表示し、クリックします Monitor modules.
  • 構成の場合 Failure ❌ が 1 つのノードで発生した場合は、そのノードの ▼ アコーディオンを開いてメッセージを確認します。 SafeKit AI 🤖 を使用できることに注意してください。

Hyper-V モジュール構成の成功を確認します。

11. 最新のデータを使用してノードを起動します

  • ノード 1 に最新のレプリケートされたディレクトリがある場合、 VM1/、それを選択し、⋯ Force start ▶ As primary.

ノード 2 が起動すると、すべてのデータがノード 1 からノード 2 にコピーされます。

⚠️ 選択を誤ると、両方のノードで古いデータが同期される危険があります。

⚠️次のようにも想定されます。 VM1 ノード 1 で停止しているため、SafeKit はレプリケーション メカニズムをインストールしてから開始します。 VM1 で start_prim スクリプト。

⚠️使用する Start 以降の起動の場合: SafeKit は最新のサーバーを保持します。開始 As primary は、初回または例外的な操作中の特別な起動です。

最新のデータを使用して Hyper-V ノードをプライマリとして開始します。

12. ALONE (緑色) への遷移を待ちます。

  • ノード 1 は ALONE (緑色) 状態になるはずです。 start_prim スクリプトはノード 1 で実行されました。

⚠️ ALONE (緑) に達しない場合、または VM1 が開始されない場合は、 モジュールログ 🖼️ ノード1の。

  • 🔍をクリックしてください ログ のアイコン node1 モジュール ログを開いて、チェッカーがエラーを検出してモジュールを停止したなどのエラー メッセージを探します。
  • をクリックしてください start_prim ログ: スクリプトの出力メッセージが右側に表示され、VM1 が正しく開始されていないなどのエラーを検出できます。
  • ログ メッセージに関する支援として、SafeKit AI 🤖 を使用してください。

⚠️クラスターが存在する場合 WAIT (red) not uptodate, STOP (red) not uptodate 状態、WAIT ノードを停止し、 強制的にプライマリとして開始します 🖼️.

最初の Hyper-V ノードはプライマリとして開始され、ALONE になります。

13. ノード 2 を開始します

  • ⋯ Start ノード 2 とそのコンテキスト メニュー。
  • SECOND (緑色) 状態になるまで待ちます。

ℹ️ 複製されたディレクトリ (ノード 1 からノード 2 へのコピー) を再同期している間、ノード 2 は SECOND (オレンジ) 状態のままです。

  • 複製されたディレクトリ内で再同期するファイルのサイズとネットワーク帯域幅によっては、時間がかかる場合があります。
  • コピーの進行状況を確認するには、 モジュールログ 🖼️ そして レプリケーションリソース 🖼️ ログ メッセージについては、SafeKit AI 🤖 を使用してください。

ℹ️ Hyper-V 差分ディスクを使用する場合、初期同期後に再同期が必要なのは差分ディスクのみであり、大容量の仮想ハード ディスクの時間を節約できます。

Hyper-V ノード 2 を開始します。

14. クラスターが動作していることを確認します。

  • クラスターが緑色/緑色であることを確認します。 VM1 PRIM ノードでは実行されていますが、SECOND ノードでは実行されていません。

この状態では、ファイル内の変更のみがリアルタイムでレプリケートされます。

Hyper-V ノード 2 は SECOND (緑)

15. テスト

  • コンテキスト メニューを下にスクロールして をクリックして、PRIM ノードを停止します。 Stop.
  • SECOND ノードにフェイルオーバーが存在し、ALONE (緑色) になることを確認します。
  • Hyper-V マネージャーに確認してください。 VM1 ノード 2 で実行されています。

⚠️ ノード 2 で ALONE (緑) に到達しない場合、または VM1 が開始されない場合は、次のコマンドを使用して理由を分析します。 モジュールログ 🖼️ ノード2の。

  • 🔍をクリックしてください ログ のアイコン node2 モジュール ログを開いて、チェッカーがエラーを検出してモジュールを停止したなどのエラー メッセージを探します。
  • をクリックしてください start_prim ログ: スクリプトの出力メッセージが右側に表示され、VM1 が正しく開始されていないなどのエラーを検出できます。
  • ログ メッセージに関する支援として、SafeKit AI 🤖 を使用してください。

⚠️として start_prim スクリプトはノード 2 に仮想マシンをインポートしますが、次の理由でフェイルオーバーが失敗する可能性があります🛠️ Hyper-V 設定 (本書の KB SK-0088 を参照).

⚠️ すべてが正常であれば、node1 で起動を開始します。これにより、node2 から複製されたディレクトリが再同期されます。

問題が発生した場合は、node2 を停止し、 プライマリとして強制的に開始します 🖼️ ノード 1 は、停止時にローカルに正常なデータを使用して再起動されます。

ℹ️ 🕒 があることに注意してください。 タイムライン🖼️ これは、クラスター内で何が起こっているかを理解するのに役立ちます。

やめてください Hyper-V 上のモジュール PRIM サーバー

16. 必要に応じて、スプリットブレイン チェッカーを構成します

パラメータ :

  • Resource name リソース名で監視者を識別します。 splitbrain.witness。この値を変更して証人を識別できます。
  • Witness address ノードが PRIM から ALONE に、または SECOND から ALONE に移行するときの ping の引数です。この値は、監視 (堅牢な要素、通常はルーター) の IP で変更します。
  • 注: 複数の IP を空白で区切って設定できます。 IP アドレスは 1 つのノードからはアクセス可能である必要がありますが、ネットワークが分離されている場合は他のノードからはアクセスできないことに注意してください。

Hyper-V スプリットブレイン パラメータを入力します

17. VM 内で重要なサービスに障害が発生した場合の自動再起動

VM 内の重要なサービスに障害が発生したときに自動再起動またはフェイルオーバーが必要な場合は、サービスの回復プロパティを構成できます (画像を参照)。

まず、設定する必要があります VMカスタムチェッカー 前に説明した。

次に、VM 内の Microsoft Service Manager で重要なサービスを選択し、サービスの回復プロパティで、重要なサービスが失敗した場合の VM のシャットダウンを構成するだけです。

そのためには、重要なサービスの回復オプションで、「」を選択してください。プログラムを実行する " 失敗した場合、プログラムの実行オプションで設定します”C:/Windows/System32/shutdown.exe " そして、「コマンドラインパラメータ」で、設定します /s /c “サービスが失敗します”.

もちろん、独自のスクリプトを使用して、より微妙な回復を実装することもできます。ただし、VM をシャットダウンすると、ホストのカスタム チェッカーが有効になることに注意してください。カスタム チェッカーは、Hyper-V ハートビートが応答しなくなったことを検出し、同じ Hyper-V サーバー上で VM を再起動するか、(構成に応じて) 他の Hyper-V サーバー上でフェールオーバーを実行します。

この機能をテストするには、タスク マネージャーを使用して、重要なサービスに関連付けられたプロセス (タスクの終了) を強制終了します。 Service Manager または「net stop」コマンドを使用してサービスを完全に停止しても、Windows Service Manager 内の回復アクションはトリガーされません。

Hyper-V VM の重要なサービスの Hyper-V モジュールのフェイルオーバー

18. サポート

  • サポートを受けるには、SafeKit を 2 つ受け取ります Snapshots (2 つの .zip ファイル)、ノードごとに 1 つ。

ℹ️ 詳しいサポート情報はこちら.

サポートのために Hyper-V スナップショットを取得します

SafeKit / Hyper-V ソリューションのデモンストレーション

SafeKit ビデオ: Hyper-V を使用した仮想マシン レベルのクラスタリング (5:15)

このビデオでは、SafeKit がどのように実装されているかをご覧ください。 Hyper-V の高可用性 SAN の複雑さはありません。構成を学ぶ 仮想マシンのレプリケーション 2 つのノード間で、重要な仮想化ワークロードのシームレスなフェイルオーバーを保証します。このデモでは Windows 上の Hyper-V を使用しますが、ソリューションは Linux 上の KVM と同様に機能します。

章

  1. 🎬 アーキテクチャの概要: 2 つの Hyper-V ノードと 2 つの仮想マシン (0:49)
  2. 🎬 クラスターとhyperv.safeモジュールの構成 (1:59)
  3. 🎬 ライブテスト: VMのレプリケーション、移行、クラッシュ時の自動フェイルオーバー (2:26)

段階的な実装

🔍 SafeKit 高可用性ナビゲーションハブ

SafeKit の探索:機能、技術ビデオ、ドキュメント、無料トライアル

リソースタイプ説明ダイレクトリンク
主な機能シンプルでコスト効率の高い高可用性に SafeKit が選ばれる理由SafeKit が選ばれる理由を見る
ユースケースSafeKit が重要インフラの高可用性をどのように確保するかをご覧くださいすべてのユースケースを見る(OEMソフトウェア、エッジサーバー、SCADA、など)
導入モデルオールインワンの SANレス HA:共有ディスク不要のソフトウェアクラスタリングSafeKit オールインワン SANレス HA を見る
HA 戦略SafeKit:インフラ(VM)レベル vs. アプリケーションレベルの高可用性SafeKit HA と冗長性:VM vs. アプリレベルを見る
技術仕様SafeKit クラスタリングの技術的制限事項SafeKit 高可用性の制限事項を見る
動画SafeKit:高可用性構成とフェイルオーバーのデモSafeKit フェイルオーバーチュートリアルを見る
アーキテクチャSafeKit ミラークラスターの仕組み(リアルタイムレプリケーションとフェイルオーバー)SafeKit ミラークラスター:リアルタイム複製とフェイルオーバーを見る
アーキテクチャSafeKit ファームクラスターの仕組み(ネットワーク負荷分散とフェイルオーバー)SafeKit ファームクラスター:負荷分散とフェイルオーバーを見る
競争優位性比較:SafeKit vs. 伝統的な高可用性(HA)クラスターSafeKit と伝統的 HA クラスターの比較を見る
技術リソースSafeKit 高可用性:ドキュメント、ダウンロード、トライアルSafeKit HA 無料トライアルと技術ドキュメントを見る
構成済みソリューションSafeKit アプリケーションモジュールライブラリ:すぐに使える HA ソリューションSafeKit 高可用性アプリケーションモジュールを見る
SafeKit AI Chat SafeKit AI