目的は、Vastai で使用できるツールのリストを作成することです。ツールは自由に使用、変更、配布できます。これが役に立ち、寄付したい場合は、次のウォレットに寄付を送金できます。
BTC 15qkQSYXP2BvpqJkbj2qsNFb6nd7FyVcou
XMR 897VkA8sG6gh7yvrKrtvWningikPteojfSgGff3JAUs3cu7jxPDjhiAZRdcQSYPE2VGFVHAdirHqRZEpZsWyPiNK6XPQKAg
RVN RSgWs9Co8nQeyPqQAAqHkHhc5ykXyoMDUp
USDT(ETH ERC20) 0xa5955cf9fe7af53bcaa1d2404e2b17a1f28aac4f
ペイパル PayPal.Me/cryptolabsZA
広大なホストのインストール ガイド
自己確認テスト
広大な Speedtest-cli 修正
分析ダッシュボード
Nvidia 3000/4000 コア、GPU ホットスポット、および VRAM の温度を監視します
ubuntu-22-および-24使用時のnvmlエラー
Pressentent の赤いエラー メッセージを削除する
メモリOC
OCモニター
RTX3090 の Python ベンチマークを使用した広大な GPU のストレス テスト
Telegram-Vast-Uptime-Bot
マイニング利益に基づいてホストリストの価格を自動更新します
広大なバックグラウンド ジョブまたはアイドル ジョブ
ヘッドレス システムを使用している場合のファン速度の設定
無人アップグレード パッケージを削除する
ホストを更新する方法
膨大な Docker ドライバーを別のドライブに移動する方法
varlibdocker をネットワーク上の別のマシンにバックアップします
VNC を使用して実行中のインスタンスに接続してアプリケーション GUI を表示する
Vastai の Web ブラウザで 3D アクセラレーション デスクトップをセットアップする
便利なコマンド
ネットワーク上のシステムの Docker レジストリをセットアップする方法
#Start with a clean install of ubuntu 22.04.x HWE Kernal server. Just add openssh. sudo apt update && sudo apt upgrade -y && sudo apt dist-upgrade -y && sudo apt install update-manager-core -y #if you did not install HWE kernal do the following sudo apt install --install-recommends linux-generic-hwe-22.04 -y sudo reboot #install the drivers. sudo apt install build-essential -y sudo add-apt-repository ppa:graphics-drivers/ppa -y sudo apt update # to search for available NVIDIA drivers: use this command sudo apt search nvidia-driver | grep nvidia-driver | sort -r sudo apt install nvidia-driver-560 -y # assuming the latest is 560 #Remove unattended-upgrades Package so that the dirver don't upgrade when you have clients sudo apt purge --auto-remove unattended-upgrades -y sudo systemctl disable apt-daily-upgrade.timer sudo systemctl mask apt-daily-upgrade.service sudo systemctl disable apt-daily.timer sudo systemctl mask apt-daily.service # This is needed to remove xserver and genome if you started with ubunut desktop. clients can't run a desktop gui in an continer wothout if you have a xserver. bash -c 'sudo apt-get update; sudo apt-get -y upgrade; sudo apt-get install -y libgtk-3-0; sudo apt-get install -y xinit; sudo apt-get install -y xserver-xorg-core; sudo apt-get remove -y gnome-shell; sudo update-grub; sudo nvidia-xconfig -a --cool-bits=28 --allow-empty-initial-configuration --enable-all-gpus' #if Ubuntu is installed to a SSD and you plan to have the vast client data stored on a nvme follow the below instructions. #WARRNING IF YOUR OS IS ON /dev/nvme0n1 IT WILL BE WIPED. CHECK TWICE change this device to the intended device name that you pan to use. # this is one command that will create the xfs partion and write it to the disk /dev/nvme0n1. echo -e "nnnnnnnwn" | sudo cfdisk /dev/nvme0n1 && sudo mkfs.xfs /dev/nvme0n1p1 sudo mkdir /var/lib/docker #I added discard so that the ssd is trimeds by ubunut and nofail if there is some problem with the drive the system will still boot. sudo bash -c 'uuid=$(sudo xfs_admin -lu /dev/nvme0n1p1 | sed -n "2p" | awk "{print $NF}"); echo "UUID=$uuid /var/lib/docker/ xfs rw,auto,pquota,discard,nofail 0 0" >> /etc/fstab' sudo mount -a # check that /dev/nvme0n1p1 is mounted to /var/lib/docker/ df -h #this will enable Persistence mode on reboot so that the gpus can go to idle power when not used sudo bash -c '(crontab -l; echo "@reboot nvidia-smi -pm 1" ) | crontab -' #run the install command for vast sudo apt install python3 -y sudo wget https://console.vast.ai/install -O install; sudo python3 install YourKey; history -d $((HISTCMD-1)); GRUB_CMDLINE_LINUX="amd_iommu=on nvidia_drm.modeset=0 systemd.unified_cgroup_hierarchy=false" #only run this command if you plan to support VM's on your machines. read vast guide to understand more https://vast.ai/docs/hosting/vms sudo bash -c 'sed -i "/^GRUB_CMDLINE_LINUX=""/s/""/"amd_iommu=on nvidia_drm.modeset=0"/" /etc/default/grub && update-grub' update-grub #if you get nvml error then run this sudo wget https://raw.githubusercontent.com/jjziets/vasttools/main/nvml_fix.py sudo python3 nvml_fix.py sudo reboot #follow the Configure Networking instructions as per https://console.vast.ai/host/setup #test the ports with running sudo nc -l -p port on the host machine and use https://portchecker.co to verify sudo bash -c 'echo "40000-40019" > /var/lib/vastai_kaalia/host_port_range' sudo reboot #After reboot, check that the drive is mounted to /var/lib/docker and that your systems show up on the vast dashboard. df -h # look for /var/lib/docker mount sudo systemctl status vastai sudo systemctl status docker
次のテストを実行して、新しいマシンが検証テストの候補リストに含まれることを確認できます。合格した場合、あなたのマシンは検証の対象となる可能性が高くなります。テストするマシンと同じネットワーク上のマシンからこれを実行する場合、ルーターでループバックを許可する必要があることに注意してください。ループバックを有効にする方法がわからない場合は、クラウド プロバイダーの VM 上でこれを実行するか、PC へのモバイル接続を使用してこれを実行することをお勧めします。
autoverify_machineid.sh
スクリプトは、Vast.ai マーケットプレイスでのマシンのテストを自動化するために設計されたツール スイートの一部です。このスクリプトは、特に単一のマシンをテストして、さらなる検証に必要な最小要件を満たしているかどうかを判断します。
./autoverify_machineid.sh
の使用を開始する前に、次のものが揃っていることを確認してください。
Vast.ai コマンド ライン インターフェイス (vastcli) : このツールは、Vast.ai プラットフォームと対話するために使用されます。
Vast.ai Listing : マシンは広大なマーケットプレイスに掲載される必要があります。
Ubuntu OS : スクリプトは、Ubununt 20.04 以降で実行されるように設計されています。
vastcli
ダウンロードしてセットアップします。
次のコマンドを使用して、Vast.ai CLI ツールをダウンロードします。
wget https://raw.githubusercontent.com/vast-ai/vast-python/master/vast.py -O 広大 chmod +x 広大
Vast.ai API キーを設定します。
./vast セット API キー 6189d1be9f15ad2dced0ac4e3dfd1f648aeb484d592e83d13aaf50aee2d24c07
autoverify_machineid.sh をダウンロードします。
wget を使用して autoverify_machineid.sh をローカル マシンにダウンロードします。
wget https://github.com/jjziets/VastVerification/releases/download/0.4-beta/autoverify_machineid.sh
スクリプトを実行可能にする:
メイン スクリプトの権限を変更して実行可能にします。
chmod +x autoverify_machineid.sh
依存関係
apt update apt install bc jq
以下を実行して必要なパッケージをインストールします
./autoverify_machineid.sh
の使用マシン要件を確認してください:
./autoverify_machineid.sh
スクリプトは、単一のマシンが検証の最小要件を満たしているかどうかをテストするように設計されています。これは、自分のマシンを検証したいホストにとって便利です。
machine_id
で特定のマシンをテストするには、次のコマンドを使用します。
./autoverify_machineid.sh <マシン ID>
、テストするマシンの実際の ID に置き換えます。
要件チェックを無視するには:
./autoverify_machineid.sh --ignore-requirements
このコマンドは、最小要件を満たしているかどうかに関係なく、マシンのテストを実行します。
進行状況と結果のログ:
このスクリプトは、テストの進行状況と結果を記録します。
成功した結果と要件を満たしたマシンはPass_testresults.log
に記録されます。
要件を満たしていないマシン、またはテスト中にエラーが発生したマシンは、 Error_testresults.log
に記録されます。
ログを理解する:
Pass_testresults.log
: このファイルには、すべてのテストに合格したマシンのエントリが含まれています。
Error_testresults.log
: このファイルには、最小要件を満たさなかったか、テスト中にエラーが発生したマシンのエントリが含まれています。
autoverify_machineid.sh
スクリプトを実行してmachine_id
10921 のマシンをテストする方法は次のとおりです。
./autoverify_machineid.sh 10921
API キーの問題: ./vast set api-key
を使用して API キーが正しく設定されていることを確認してください。
権限が拒否されました: 権限の問題が発生した場合は、スクリプト ファイルに実行権限 ( chmod +x
) があることを確認してください。
接続の問題: ネットワーク接続を検証し、Vast.ai CLI が Vast.ai サーバーと通信できることを確認します。
このガイドに従うことで、 ./autoverify_machineid.sh
autoverify_machineid.sh スクリプトを使用して、Vast.ai マーケットプレイスで個々のマシンをテストできるようになります。このプロセスは、マシンが GPU とシステム パフォーマンスの必要な仕様を満たしていることを確認し、市場でのさらなる検証と使用の候補にするのに役立ちます。
マシンのアップロード速度とダウンロード速度が正しく表示されないという問題が発生している場合。
まずスピードテストを強制的に実行して問題があるかどうかを確認します
cd /var/lib/vastai_kaalia ./send_mach_info.py --speedtest
出力は次のようになります
2024-10-03 08:50:04.587469 os version running df checking errors nvidia-smi 560035003 /usr/bin/fio checking speedtest /usr/bin/speedtest speedtest running speedtest on random server id 19897 {"type":"result","timestamp":"2024-10-03T08:50:24Z","ping":{"jitter":0.243,"latency":21.723,"low":21.526,"high":22.047},"download":{"bandwidth":116386091,"bytes":1010581968,"elapsed":8806,"latency":{"iqm":22.562,"low":20.999,"high":296.975,"jitter":3.976}},"upload":{"bandwidth":116439919,"bytes":980885877,"elapsed":8508,"latency":{"iqm":36.457,"low":6.852,"high":349.495,"jitter":34.704}},"packetLoss":0,"isp":"Vox Telecom","interface":{"internalIp":"192.168.1.101","name":"bond0","macAddr":"F2:6A:67:0C:85:8B","isVpn":false,"externalIp":"41.193.204.66"},"server":{"id":19897,"host":"speedtest.wibernet.co.za","port":8080,"name":"Wibernet","location":"Cape Town","country":"South Africa","ip":"102.165.64.110"},"result":{"id":"18bb02e4-466d-43dd-b1fc-3f106319a9f6","url":"https://www.speedtest.net/result/c/18bb02e4-466d-43dd-b1fc-3f106319a9f6","persisted":true}} ....
上記のスピードテストが機能しない場合は、代替の新しいものをインストールしてみてください。新しい速度テストの出力は同じ形式ではないため、スクリプトはそれを変換して、vast が新しい速度テストを使用できるようにします。すべてのコマンドを組み合わせたもの
bash -c "sudo apt-get install curl -y && sudo curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash && sudo apt-get install speedtest -y && sudo apt install python3 -y && cd /var/lib/vastai_kaalia/latest && sudo mv speedtest-cli speedtest-cli.old && sudo wget -O speedtest-cli https://raw.githubusercontent.com/jjziets/vasttools/main/speedtest-cli.py && sudo chmod +x speedtest-cli"
または段階的に
sudo apt-get install curl sudo curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash sudo apt-get install speedtest -y sudo apt install python3 -y cd /var/lib/vastai_kaalia/latest sudo mv speedtest-cli speedtest-cli.old sudo wget -O speedtest-cli https://raw.githubusercontent.com/jjziets/vasttools/main/speedtest-cli.py sudo chmod +x speedtest-cli
これにより、速度テストが新しいものに更新され、Vast Demon が使用できるように出力が変換されました。速度が遅くなった場合は、次に従ってください
## If migrating from prior bintray install instructions please first... # sudo rm /etc/apt/sources.list.d/speedtest.list # sudo apt-get update # sudo apt-get remove speedtest -y ## Other non-official binaries will conflict with Speedtest CLI # Example how to remove using apt-get # sudo apt-get remove speedtest-cli sudo apt-get install curl curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash sudo apt-get install speedtest
Prometheus Grafana 監視システムは、アラートを送信し、機器に関するすべての指標を追跡し、収益とレンタルも追跡します。 https://github.com/jjziets/DCMontoring
22、24 の広大なインストーラーと nvml エラーに問題がある場合は、以下のスクリプトを実行してください。このスクリプトは Bo26fhmC5M に基づいているため、彼の功績は彼にあります。
sudo wget https://raw.githubusercontent.com/jjziets/vasttools/main/nvml_fix.py sudo python nvml_fix.py
マシンに赤色のエラー メッセージが表示され、対処済みであることが確認された場合。 /var/lib/vastai_kaalia/kaalia.log を削除して再起動すると役立つ場合があります
sudo rm /var/lib/vastai_kaalia/kaalia.log sudo systemctl restart vastai
Analytics ダッシュボードをセットアップせず、GPU 上のすべての Temp を確認したいだけの場合は、以下のツールを使用できます。
sudo wget https://github.com/jjziets/gddr6_temps/raw/master/nvml_direct_access sudo chmod +x nvml_direct_access sudo ./nvml_direct_access
RTX 3090 の OC を設定するには次のものが必要です
ホスト上で次のコマンドを実行します。
sudo apt-get install libgtk-3-0 && sudo apt-get install xinit && sudo apt-get install xserver-xorg-core && sudo update-grub && sudo nvidia-xconfig -a --cool-bits=28 --allow-empty-initial-configuration --enable-all-gpus wget https://raw.githubusercontent.com/jjziets/vasttools/main/set_mem.sh sudo chmod +x set_mem.sh sudo ./set_mem.sh 2000 # this will set the memory OC to +1000mhs on all the gpus. You can use 3000 on some gpu's which will give 1500mhs OC.
実行中のプログラムに基づいてメモリ oc を変更する監視プログラムをセットアップします。 RTX3090 向けに設計されており、この段階ではイーサマイナーをターゲットとしています。 set_mem.sh と ocmonitor.sh の両方をルートで実行する必要があります。
wget https://raw.githubusercontent.com/jjziets/vasttools/main/ocminitor.sh sudo chmod +x ocminitor.sh sudo ./ocminitor.sh # I suggest running this in tmux or screen so that when you close the ssh connetion. It looks for ethminer and if it finds it it will set the oc based on your choice. you can also set powerlimits with nvidia-smi -pl 350
再起動時にロードするには、以下の crontab を使用します
sudo (crontab -l; echo "@reboot screen -dmS ocmonitor /home/jzietsman/ocminitor.sh") | crontab - #replace the user with your user
マイニングは、Python のワークロードほどシステムにストレスを与えないため、これも実行するのに適したテストです。
まず、メンテナンス期間を設定し、実行中のクライアントがなくなったら、ストレス テストを実行できます。
https://github.com/jjziets/pytorch-benchmark-volta
ストレス テストの完全なスイートは、フォルダー /app/ の docker イメージ jjziets/vastai-benchmarks:latest にあります。
stress-ng - CPU stress stress-ng - Drive stress stress-ng - Memory stress sysbench - Memory latency and speed benchmark dd - Drive speed benchmark Hashcat - Benchmark bandwithTest - GPU bandwith benchmark pytorch - Pytorch DL benchmark
#test または bash インターフェイス
sudo docker run --shm-size 1G --rm -it --gpus all jjziets/vastai-benchmarks /bin/bash apt update && apt upgrade -y ./benchmark.sh
#デフォルト設定を使用して実行 結果は ./output に保存されます。
sudo docker run -v ${PWD}/output:/app/output --shm-size 1G --rm -it --gpus all jjziets/vastai-benchmarks Run with params SLEEP_TIME/BENCH_TIME sudo docker run -v ${PWD}/output:/app/output --shm-size 1G --rm -it -e SLEEP_TIME=2 -e BENCH_TIME=2 --gpus all jjziets/vastai-benchmarks
GPU 書き込みテストを行うこともできます。
sudo docker run --gpus all --rm oguzpastirmaci/gpu-burn
1 つの GPU に対して実行する場合は、x を 0 から始まる GPU 番号に置き換えて、以下のコマンドを実行します。
sudo docker run --gpus '"device=x"' --rm oguzpastirmaci/gpu-burn
*leona/vast.ai-toolsに基づく
これは、マシンのクラッシュを監視するためのスクリプトのセットです。クライアントを巨大なマシン上で実行し、サーバーをリモートのマシン上で実行します。タイムアウト (デフォルトは 12 秒) 以内にハートビートが送信されなかった場合、Telegram で通知を受け取ります。 https://github.com/jjziets/Telegram-Vast-Uptime-Bot
eth の RTX 3090 120Mhs に基づいています。それが私の2台のホストの価格を設定します。ここにあるカスタム Vast-cli で動作します https://github.com/jjziets/vast-python/blob/master/vast.py マネージャーはここにあります https://github.com/jjziets/vasttools/ blob/main/setprice.sh
これはホストではなく vps 上で実行する必要があります。 Vast API キーをホスト上で使用して公開しないでください。
wget https://github.com/jjziets/vast-python/blob/master/vast.py sudo chmod +x vast.py ./vast.py set api-key UseYourVasset wget https://github.com/jjziets/vasttools/blob/main/setprice.sh sudo chmod +x setprice.sh
アイドル状態のジョブを管理する最良の方法は、広大な CLI を使用することです。私の知る限り、GUI 設定ジョブは壊れています。したがって、アイドル ジョブを設定するには、次の手順に従います。膨大な CLI をダウンロードし、次のコマンドを実行する必要があります。アイデアは、中断可能な仕事として自分自身をレンタルすることです。膨大な CLI を使用すると、すべての GPU に対して 1 つのアイドル ジョブを設定するか、インスタンスごとに 1 つの GPU を設定できます。 SSH 接続方法またはその他の方法を設定することもできます。 https://cloud.vast.ai/cli/ に移動し、cli フレーバーをインストールします。
広大な CLI を使用できるようにアカウント キーを設定します。このキーはアカウント ページから取得します。
./vast set api-key API_KEY
私の SetIdleJob.py スクリプトを使用して、マシンに設定されている最低価格に基づいてアイドル ジョブをセットアップできます。
wget https://raw.githubusercontent.com/jjziets/vasttools/main/SetIdleJob.py
これはnicehashをマイニングする方法の例です
python3 SetIdleJob.py --args 'env | grep _ >> /etc/environment; echo "starting up"; apt -y update; apt -y install wget; apt -y install libjansson4; apt -y install xz-utils; wget https://github.com/develsoftware/GMinerRelease/releases/download/3.44/gminer_3_44_linux64.tar.xz; tar -xvf gminer_3_44_linux64.tar.xz; while true; do ./miner --algo kawpow --server stratum+tcp://kawpow.auto.nicehash.com:9200 --user 3LNHVWvUEufL1AYcKaohxZK2P58iBHdbVH.${VAST_CONTAINERLABEL:2}; done'
または、デフォルトを使用したくない場合は完全なコマンド
python3 SetIdleJob.py --image nvidia/cuda:12.4.1-runtime-ubuntu22.04 --disk 16 --args 'env | grep _ >> /etc/environment; echo "starting up"; apt -y update; apt -y install wget; apt -y install libjansson4; apt -y install xz-utils; wget https://github.com/develsoftware/GMinerRelease/releases/download/3.44/gminer_3_44_linux64.tar.xz; tar -xvf gminer_3_44_linux64.tar.xz; while true; do ./miner --algo kawpow --server stratum+tcp://kawpow.auto.nicehash.com:9200 --user 3LNHVWvUEufL1AYcKaohxZK2P58iBHdbVH.${VAST_CONTAINERLABEL:2}; done' --api-key b149b011a1481cd852b7a1cf1ccc9248a5182431b23f9410c1537fca063a68b1
インスタンス ページのログを使用して bash -c コマンドのトラブルシューティングを行う
あるいは、次のコマンドを使用して自分自身をレンタルし、ログインして実行したいものをロードすることもできます。必ずプロセスを onstart.sh に追加して自分自身をレンタルし、最初にマシン ID で自分のマシンを見つけてください。
./vast search offers "machine_id=14109 verified=any gpu_frac=1 " # gpu_frac=1 will give you the instance with all the gpus.
または
./vast search offers -i "machine_id=14109 verified=any min_bid>0.1 num_gpus=1" # it will give you the instance with one GPU
off_id を取得したら。この場合、 -i スイッチを使用して検索すると、割り込み可能なインスタンス ID が得られます。
lolminer でマイニングしたいと仮定しましょう
./vast create instance 9554646 --price 0.2 --image nvidia/cuda:12.0.1-devel-ubuntu20.04 --env '-p 22:22' --onstart-cmd 'bash -c "apt -y update; apt -y install wget; apt -y install libjansson4; apt -y install xz-utils; wget https://github.com/Lolliedieb/lolMiner-releases/releases/download/1.77b/lolMiner_v1.77b_Lin64.tar.gz; tar -xf lolMiner_v1.77b_Lin64.tar.gz -C ./; cd 1.77b; ./lolMiner --algo ETCHASH --pool etc.2miners.com:1010 --user 0xYour_Wallet_Goes_Here.VASTtest"' --ssh --direct --disk 100
価格 0.2 でインスタンスが開始されます。
./vast show instances # will give you the list of instance ./vast change bid 9554646 --price 0.3 # This will change the price to 0.3 for the instance
これは、ファンの管理に使用できる 2 つのプログラムといくつかのスクリプトを含むリポジトリです https://github.com/jjziets/GPU_FAN_OC_Manager/tree/main
bash -c "wget https://github.com/jjziets/GPU_FAN_OC_Manager/raw/main/set_fan_curve; chmod +x set_fan_curve; CURRENT_PATH=$(pwd); nohup bash -c "while true; do $CURRENT_PATH/set_fan_curve 65; sleep 1; done" > output.txt & (crontab -l; echo "@reboot screen -dmS gpuManger bash -c 'while true; do $CURRENT_PATH/set_fan_curve 65; sleep 1; done'") | crontab -"
Vast の実行中にシステムが更新されたり、さらに悪いことにクライアントがレンタルしているときにシステムが更新されたりすると、認証が解除されたり、禁止されたりする可能性があります。システムがレンタルされておらず、リストから削除されている場合にのみ更新することをお勧めします。最善の方法は、リスティングの終了日を設定し、その段階で更新とアップグレードを行うことです。無人アップグレードを停止するには、次のコマンドを実行します。
sudo apt purge --auto-remove unattended-upgrades -y sudo systemctl disable apt-daily-upgrade.timer sudo systemctl mask apt-daily-upgrade.service sudo systemctl disable apt-daily.timer sudo systemctl mask apt-daily.service
システムがアイドル状態でリストから削除されたら、次のコマンドを実行します。膨大なデーモンと Docker サービスが停止されます。このように Nvidia ドライバーをアップグレードすることもお勧めします。そうしないと、アップグレードによってパッケージにブレーキがかかる場合、認証が解除されたり、Vaste から追放されたりする可能性があります。
bash -c ' sudo systemctl stop vastai; sudo systemctl stop docker.socket; sudo systemctl stop docker; sudo apt update; sudo apt upgrade -y; sudo systemctl start docker.socket ; sudo systemctl start docker; sudo systemctl start vastai'
このガイドでは、既存のドライブから Vastai Docker データをバックアップし、それを新しいドライブに転送する方法を説明します。この場合、RAID ドライバー /dev/md0
クライアントは稼働しておらず、広大な市場から上場されていません。
Docker データは現在のドライブに存在します。
必要なツールをインストールします。
sudo apt install pv pixz
関連するサービスを停止して無効にします。
sudo systemctl stop vastai docker.socket docker sudo systemctl disable vastai docker.socket docker
Docker ディレクトリをバックアップする: /var/lib/docker
ディレクトリの圧縮バックアップを作成します。 OS ドライブにこのバックアップ用に十分なスペースがあることを確認してください。または、データをバックアップ サーバーに移動します。 https://github.com/jjziets/vasttools/blob/main/README.md#backup-varlibdocker-to-another-machine-on-your-network を参照してください。
sudo tar -c -I 'pixz -k -1' -f ./docker.tar.pixz /var/lib/docker | pv #you can change ./ to a destination directory
注: pixz
圧縮を高速化するために複数のコアを利用します。
Docker ディレクトリをアンマウントします。シャットダウンして新しいドライブをインストールする予定がある場合は、次のようにします。
sudo umount /var/lib/docker
/etc/fstab
更新します。起動時の問題を防ぐために、起動時に現在の Docker ディレクトリの自動マウントを無効にします。
sudo nano /etc/fstab
/var/lib/docker
に関連付けられた行を、行の先頭に#
追加してコメントアウトします。
新しいドライブのパーティションを作成します: (システムに基づいてデバイス名を調整します。ガイドでは例として、RAID ドライブの場合は/dev/md0
、NVMe ドライブの場合は/dev/nvme0n1
を使用します。)
sudo cfdisk /dev/md0
新しいパーティションを XFS でフォーマットします。
sudo mkfs.xfs -f /dev/md0p1
UUID を取得します。 /etc/fstab
更新するには UUID が必要です。
sudo xfs_admin -lu /dev/md0p1
/etc/fstab
新しいドライブで更新します。
sudo nano /etc/fstab
次の行を追加します (UUID を取得したものに置き換えます)。
UUID="YOUR_UUID_HERE" /var/lib/docker xfs rw,auto,pquota,discard,nofail 0 0
新しいパーティションをマウントします。
sudo mount -a
マウントを確認します。
df -h
/dev/md0p1
(または適切なデバイス名) が/var/lib/docker
にマウントされていることを確認します。
Docker データを復元します。ルート ディレクトリに移動します。
CD /
解凍して復元: ユーザーを適切な名前に変更してください。
sudo cat /home/user/docker.tar.pixz | pv | sudo tar -x -I 'pixz -d -k'
サービスを有効にする:
sudo systemctl enable vastai docker.socket docker
再起動:
sudo reboot
目的のドライブが/var/lib/docker
にマウントされているかどうかを確認し、 vastai
動作していることを確認します。
/var/lib/docker
ネットワーク上の別のマシンにバックアップしますドライブの交換や RAID のセットアップなど、Docker セットアップを別のマシンに移行する場合は、このガイドに従ってください。この例では、バックアップ サーバーの IP アドレスが192.168.1.100
であると仮定します。
ルート SSH ログインを一時的に有効にする: バックアップ プロセス中、特に圧縮された Docker データなどの大きなファイルを転送する場合は、SSH 通信が中断されないようにすることが不可欠です。 a. SSH 構成を開きます。
sudo nano /etc/ssh/sshd_config
b.次の行を見つけて変更します。
PermitRootLogin no
に:
PermitRootLogin yes
c. SSH 構成をリロードします。
sudo systemctl restart sshd
SSH キーを生成し、バックアップ サーバーに転送します。 SSH キーを作成します。
sudo ssh-keygen
b. SSH キーをバックアップ サーバーにコピーします。
sudo ssh-copy-id -i ~/.ssh/id_rsa [email protected]
root パスワード認証を無効にする: root ログインに SSH キーのみが使用できるようにして、セキュリティを強化します。 a. SSH 構成を変更します。
sudo nano /etc/ssh/sshd_config
b.行を次のように変更します。
PermitRootLogin 禁止パスワード
c. SSH 構成をリロードします。
sudo systemctl restart sshd
バックアップの準備: バックアップする前に、関連するサービスが停止していることを確認してください。
sudo systemctl stop docker.socket sudo systemctl stop docker sudo systemctl stop vastai sudo systemctl disable vastai sudo systemctl disable docker.socket sudo systemctl disable docker
バックアップ手順: この手順では、 /var/lib/docker
ディレクトリを圧縮し、バックアップ サーバーに転送します。 a. root ユーザーに切り替えて、必要なツールをインストールします。
sudo su apt install pixz apt install pv
tmux または screen でバックアップ コマンドを実行して、ssh 接続が失われた場合でもプロセスが終了するようにしておくとよいでしょう。 b.バックアップを実行します。
tar -c -I 'pixz -k -0' -f - /var/lib/docker | pv | ssh [email protected] "cat > /mnt/backup/machine/docker.tar.pixz"
バックアップの復元: 新しいドライブが/var/lib/docker
にマウントされていることを確認します。 a. root ユーザーに切り替えます。
sudo su
b.バックアップから復元します。
cd / ssh [email protected] "cat /mnt/backup/machine/docker.tar.pixz" | pv | sudo tar -x -I 'pixz -d -k'
サービスを再アクティブ化する:
sudo systemctl enable vastai sudo systemctl enable docker.socket sudo systemctl enable docker sudo reboot
再起動後: ターゲット ドライブが/var/lib/docker
にマウントされており、 vastai
動作していることを確認します。
開いたポートを持つインスタンスを使用する ディスプレイの色深度が 16 ビットではなく 16 である場合は、別の VNC ビューアを試してください。 TightVNCはWindows上で機能しました
まず、ポートの割り当てを許可するように、vast に指示します。 -p 8081:8081 を使用し、直接コマンドにチェックを入れます。
ポートが開いているホストを見つけてレンタルします。できればオンデマンドで。クライアント インスタンス ページに移動し、接続ボタンが表示されるまで待ちます。
ssh を使用してインスタンスに接続します。
以下のコマンドを実行します。 2 番目の部分は onstart.sh に配置して、再起動時に実行できます。
bash -c 'apt-get update; apt-get -y upgrade; apt-get install -y x11vnc; apt-get install -y xvfb; apt-get install -y firefox;apt-get install -y xfce4;apt-get install -y xfce4-goodies' export DISPLAY=:20 Xvfb :20 -screen 0 1920x1080x16 & x11vnc -passwd TestVNC -display :20 -N -forever -rfbport 8081 & startxfce4
接続するには、ホストの IP と提供されたポートを使用します。この場合は 400010 です
それからデスクトップをお楽しみください。残念ながら、これはハードウェアアクセラレータではありません。だからどんなゲームも動かない
ghcr.io/ehfd/nvidia-glx-desktop:latest を使用します。
この環境パラメータを使用します
-e TZ=UTC -e SIZEW=1920 -e SIZEH=1080 -e REFRESH=60 -e DPI=96 -e CDEPTH=24 -e VIDEO_PORT=DFP -e PASSWD=mypasswd -e WEBRTC_ENCODER=nvh264enc -e BASIC_AUTH_PASSWORD=mypasswd -p 8080:8080
開いているポートがあるシステムを見つける
読み込みが完了したら、「開く」をクリックします
username はuserで、password はこの場合mypasswdに設定したものです
ヒットスタート
Web ブラウザーでの 3D アクセラレーション デスクトップ環境
これにより、パブリック IP からのプル リクエストの数が減ります。 Docker は、匿名ログインの場合、6 時間あたり 100 回のプルに制限されており、レンタルの起動時間を短縮できます。このガイドでは、Docker Compose を使用して Docker レジストリ サーバーをセットアップする方法と、このレジストリを使用するように Docker クライアントを構成する方法について説明します。前提条件 Docker および Docker Compose は、ローカル LAN 上に高速ストレージを大量に備えたサーバーにインストールされています。 Docker はすべてのクライアント マシンにインストールされます。
Docker レジストリ サーバーのセットアップ docker-compose をまだインストールしていない場合はインストールします。
sudo su curl -L "https://github.com/docker/compose/releases/download/v2.24.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose apt-get update && sudo apt-get install -y gettext-base
docker-compose.yml ファイルを作成する: 次の内容を含む docker-compose.yml という名前のファイルをサーバー上に作成します。
version: '3' services: registry: restart: unless-stopped image: registry:2 ports: - 5000:5000 environment: - REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io - REGISTRY_STORAGE_DELETE_ENABLED="true" volumes: - data:/var/lib/registry volumes: data:
この構成では、ポート 5000 で実行される Docker レジストリ サーバーをセットアップし、ストレージとして data という名前のボリュームを使用します。 Docker レジストリを起動します。
docker-compose.yml ファイルが存在するディレクトリで次のコマンドを実行します。
sudo docker-compose up -d
このコマンドにはスターが付きます