ノード運用サポート

障害レイヤーを特定してから次のコマンドを実行

専用Apple Silicon物理ノードの接続、ビルド、ランナー、ネットワーク、ストレージを診断する手順をまとめています。各手順で確認対象、コマンド、次の判断に使える結果を示します。

ノードをお持ちの場合は、まずノード番号と問題が発生した時間帯を記録してください。まだご注文前の場合は、販売中の3つの構成と選択可能な4つのノードを確認できます。

RUNBOOK / NODE CHECK L0—L4
L0
ノードの状態 ノード番号、リージョン、コンソールの返却ステータスを確認
最初に確認
L1
接続経路 アドレス、ポート、鍵の権限、ホストフィンガープリント
SSH
L2
ツールチェーン Xcode、署名素材、Keychain、ビルドログ
BUILD
L3
ジョブ実行 ランナープロセス、作業ディレクトリ、キャッシュ、並列ジョブ
CI
L4
ハードウェア経路 ディスク空き容量、外付けSSD、ネットワーク、Thunderbolt 5
I/O
サポート依頼に必要な最小情報 ノード番号 + 時間帯 + コマンド出力
トラブルシューティングの入口を選択

障害が発生した場所で振り分ける

複数のレイヤーを同時に変更しないでください。現象に最も近い項目を選び、基本チェックを完了してから、結果を持って次のレイヤーへ進みます。

接続の問題

SSHまたはグラフィカルデスクトップに接続できない

アドレス、ポート、鍵の権限、ホストフィンガープリント、認証情報の有効性から確認します。SSHには接続できてもグラフィカルセッションに問題がある場合は、解像度、ロック状態、セッション復元を確認してください。

接続のトラブルシューティングへ
ビルドの問題

Xcode、署名、またはパイプラインが失敗する

まずXcodeのバージョンを固定して元のログを保存し、署名ID、プロビジョニングプロファイル、Keychain権限、DerivedData、ランナーの作業ディレクトリを確認します。

ビルドのトラブルシューティングへ
アカウントと注文

更新、請求、またはノード情報について確認したい

コンソールで注文番号、レンタル期間、ノード番号、支払い状況を確認します。サポート依頼に秘密鍵の内容や完全な支払い認証情報を記載しないでください。

コンソールへ
ハードウェアとネットワーク

ディスク、帯域幅、または外付けデバイスに異常がある

ディスク空き容量、ボリュームラベル、ネットワーク品質、Thunderboltデバイスツリーを記録します。バックアップなしでディスクをフォーマットしたり、ボリュームを再構築したりしないでください。

ハードウェアのトラブルシューティングへ
SSHクイック診断

ローカル権限とハンドシェイクから確認

接続失敗が必ずしもノードのオフラインを意味するとは限りません。アドレスの誤り、ポート到達不能、ローカル鍵の権限不備、ホストフィンガープリントの変更、サーバー側の認証拒否を切り分けます。

接続チェックコマンド SSH / VERBOSE
$ chmod 600 ~/.ssh/orbvps_node
$ ssh-keygen -F node-address
$ nc -vz node-address 22
$ ssh -vvv -p 22 \
  -i ~/.ssh/orbvps_node \
  node-user@node-address
Permission denied
認証情報が一致しない

ユーザー名と秘密鍵が現在のノードに対応していることを確認し、ローカルSSH設定の別のIdentityFileに鍵が上書きされていないか確認します。

Connection timed out
接続経路を確立できない

コンソールに表示されたアドレスとポートを確認し、いったんローカルのプロキシ設定を無効にして再テストします。発生時刻と利用中のネットワークも記録してください。

Connection refused
宛先には到達できるがポートが接続を受け付けていない

verbose出力全体を保存し、ホスト記録を何度も削除しないでください。まずポートがノードの引き渡し情報と一致しているか確認します。

REMOTE HOST IDENTIFICATION
ホストフィンガープリントがローカル記録と異なる

警告をそのまま無視しないでください。表示されたフィンガープリントをコンソールの引き渡し記録と照合し、ノード情報を確認してからローカル記録を更新します。

01

接続パラメータを確認

コンソールからアドレス、ポート、ユーザー名を再取得し、古いターミナル履歴のアドレスを推測して使わないでください。

02

鍵の権限を適切に設定

秘密鍵は現在のユーザーのみが読み書きできる状態を推奨します。SSH設定と上位ディレクトリも、関係のないユーザーが変更できないようにしてください。

03

ハンドシェイク出力を保存

verboseモードで一度再試行し、接続開始から失敗箇所までの完全な出力を保存して、アドレスは機密情報を削除してください。

グラフィカルデスクトップ接続

認証情報、表示、ロック、再接続の順に確認

グラフィカルセッションとSSHは別の接続経路です。SSHが正常でもグラフィカルセッションの設定が正常とは限らないため、現象を分けて記録してください。

01

認証情報の対象を確認

現在のノードで提供されたグラフィカルセッションの認証情報だけを使用してください。認証情報を更新した後は、クライアントに保存された古いパスワードを削除し、古い情報による自動再試行を防ぎます。

02

初回接続の解像度を下げる

画面が黒い、または表示が停止する場合は、まず低い解像度かつ単一ディスプレイで接続します。デスクトップ表示後、サイズを段階的に上げ、表示パラメータとの関連を確認してください。

03

セッションのロック状態を確認

ロック画面は表示されるのに先へ進めない場合は、まずキーボード入力とフォーカスを確認し、次にSSHでシステム負荷とディスク空き容量を確認します。

04

切断後にセッションを再確立

まずクライアント接続を明示的に閉じ、セッションが解放されるのを待ってから再接続します。デスクトップの使用状況が分からなくなるため、複数のグラフィカルセッションを短時間に並行作成しないでください。

サポート時は2種類の結果を記録

SSHが正常か、グラフィカルクライアントがどの段階で停止したか、使用した解像度、クライアントのエラー原文、最後に正常接続できた時間帯を記載してください。完全なアクセスパスワードは送信しないでください。

Xcodeと署名

ツールチェーンを固定して署名失敗の範囲を絞る

実際に呼び出されているXcodeのパスとバージョンを確認してから、利用可能な署名ID、プロビジョニングプロファイル、Keychainアクセス、プロジェクトキャッシュを確認します。同じ調査中に依存関係の更新と署名素材の変更を同時に行わないでください。

ツールチェーン

Xcodeとコマンドラインツールを確認

  • 次の完全な結果を保存します。 xcodebuild -version
  • 次のコマンドで xcode-select -p 現在のDeveloperディレクトリを確認します。
  • パイプラインと対話型ターミナルが同じ環境変数を使用していることを確認します。
署名素材

署名IDとプロビジョニングプロファイルを分けて確認

  • 現在コード署名に使用できるIDと、その有効状態を一覧表示します。
  • プロビジョニングプロファイルのアプリID、チーム、有効期限を確認します。
  • ビルドプロセスが、現在のデスクトップユーザーから見えるだけでなく、該当するKeychainを読み取れることを確認します。
キャッシュとログ

再現可能なクリーンベースラインを作成

  • まず失敗ログを保存し、その後対象プロジェクトのDerivedDataを削除します。
  • 同じscheme、configuration、destinationで再実行します。
  • 元の .xcresultをアーカイブし、ターミナルの最後の数行だけを提出しないでください。
署名とバージョンの確認 XCODE / CODESIGN
$ xcode-select -p
$ xcodebuild -version
$ security find-identity \
  -v -p codesigning
$ profiles show \
  -type provisioning
$ xcodebuild \
  -workspace App.xcworkspace \
  -scheme App \
  -configuration Release \
  -resultBundlePath Build.xcresult \
  build
ログに含める範囲

コマンド、scheme、configuration、失敗したターゲット、最初のerrorとその前後のコンテキストを保存します。提出前にリポジトリの認証情報、トークン、業務データを削除してください。

CI/CDランナー

プロセス、ディレクトリ、リソースのどこで停止したかを確認

self-hosted runnerがオンラインでも、ジョブ環境が完全とは限りません。ランナープロセス、作業ディレクトリの権限、キャッシュ使用量、並列ジョブ、再起動後の自動復旧経路を確認します。

A

プロセスの状態

ランナーサービスが想定したユーザーで実行され、起動パラメータが正しい設定を指していることを確認します。プロセスが繰り返し終了する場合は、終了コードと直近のログを保存します。

ps aux | grep -i runner
B

作業ディレクトリ

ディレクトリの所有者、空き容量、古いジョブのロックファイルを確認します。実行中のジョブが使用している作業ディレクトリを直接削除しないでください。

df -h && du -sh ./work
C

キャッシュ戦略

依存関係キャッシュ、DerivedData、ビルド成果物を区別します。まず異常なキャッシュキーを特定し、全再利用可能データを一度に消去せず、プロジェクト単位でクリーンアップします。

du -sh ~/Library/Developer/Xcode/DerivedData
D

並列実行と復旧

複数のジョブが同じKeychain、シミュレータ、作業ディレクトリを取り合っていないか確認します。再起動後は制御されたテストジョブを1つ実行してから通常のキューに戻します。

uptime && sysctl -n hw.memsize
復旧手順 新規ジョブを一時停止 → ログを保存 → 異常プロセスを終了 → ディレクトリを検証 → ランナーを起動 → 単一ジョブをテスト実行

テストジョブは成功するのに並列ジョブが失敗する場合は、並列数、ジョブラベル、共有リソースの一覧を併せて提供してください。

ネットワークとストレージ

経路品質、ディスク容量、デバイス認識を分けて検証

スループット低下、ビルドの遅延、外付けボリュームの消失は似た症状を示すことがあります。まずシステム内蔵の診断結果を収集し、ネットワーク、ファイルシステム、外付けデバイスのどの経路に問題があるか判断します。

ネットワーク

基本的な経路品質を確認

システム内蔵のネットワーク品質ツールで上下りの性能と応答性を記録し、テストした時間帯も記録します。リージョンをまたぐ結果は、利用中の通信事業者や経路の影響を受けます。

networkQuality -v
route -n get default
ifconfig
内部ストレージ

容量とボリュームの状態を確認

まずシステムボリュームとデータボリュームの空き容量を確認し、次に使用量の多い作業ディレクトリを特定します。ビルド失敗時は一時ディレクトリとDerivedDataも重点的に確認してください。

df -h
diskutil list
du -sh ~/Library/Developer/*
外付けデバイス

SSDとThunderbolt 5の経路を確認

ディスク一覧とThunderboltデバイスツリーを別々に確認します。デバイスは認識されているのにボリュームがマウントされていない場合は、まず状態を収集し、すぐに消去や再パーティションを行わないでください。

diskutil list external
system_profiler SPThunderboltDataType
diskutil info /Volumes/VolumeName
アップグレードと運用変更

まずロールバック用のベースラインを残してから再起動を検証

OrbVPSのノードは365日、年間を通じて通常稼働しています。システムアップグレード、ツールチェーンの切り替え、再起動が必要な操作は、ユーザーがワークロードに合わせて実施してください。インフラストラクチャ上で緊急対応が必要な変更が発生した場合は、コンソールに関連情報を記録します。

01

変更項目を作成

現在のmacOS、Xcode、ランナーのバージョン、主要な依存関係、ロールバック可能なビルドログを記録し、ベースラインなしでツールチェーンを直接上書きしないでください。

02

データをバックアップ

リポジトリ、署名素材、ランナー設定、キャッシュ戦略、必要なビルド成果物をバックアップし、独立した場所で読み取れることを確認します。

03

ユーザー側で再起動時間を設定

新規ジョブを一時停止し、実行中のジョブが終了するのを待ってログを保存してから再起動します。再起動中にネットワーク、署名、ビルド設定を同時に変更しないでください。

04

復旧を検証

SSH、グラフィカルデスクトップ、ディスクマウント、Xcodeバージョン、制御されたビルドジョブを順番に検証してから、通常の並列キューに戻します。

それでも特定できない場合

再現可能な証拠をサポートチームに提出

ノード番号、問題が発生した時間帯、影響を受けたジョブ、実行済みコマンド、元の出力、機密情報を削除したスクリーンショットを添えてください。注文済みのユーザーはコンソールからサポート依頼を送信してください。購入前の構成やリージョンに関する質問は、問い合わせページから support@orbvps.com に送信できます。