O objetivo é montar uma lista de ferramentas que podem ser utilizadas com o Vastai. As ferramentas são gratuitas para usar, modificar e distribuir. Se você achar isso útil e quiser doar, poderá enviar suas doações para as seguintes carteiras.
BTC 15qkQSYXP2BvpqJkbj2qsNFb6nd7FyVcou
XMR 897VkA8sG6gh7yvrKrtvWningikPteojfSgGff3JAUs3cu7jxPDjhiAZRdcQSYPE2VGFVHAdirHqRZEpZsWyPiNK6XPQKAg
RVN RSgWs9Co8nQeyPqQAAqHkHhc5ykXyoMDUp
USDT(ETH ERC20) 0xa5955cf9fe7af53bcaa1d2404e2b17a1f28aac4f
Paypal PayPal.Me/cryptolabsZA
Guia de instalação de host para vasto
Teste de autoverificação
Correção Speedtest-cli para vasto
Painel de análise
Monitore seu Nvidia 3000/4000 Core, GPU Hotspot e temperaturas Vram
erro nvml ao usar o Ubuntu-22 e 24
Remover mensagens de erro vermelhas do Pressitent
Memória oc
Monitor de CO
Teste de estresse de GPUs em grande escala com benchmark Python de RTX3090
Telegram-Vast-Uptime-Bot
Atualize automaticamente o preço da listagem de hosts com base nos lucros da mineração
Trabalho em segundo plano ou trabalho ocioso para vastos
Definir a velocidade do ventilador se você tiver um sistema headless
Remover pacote de atualizações autônomas
Como atualizar um host
Como mover seu vasto driver docker para outra unidade
Faça backup do varlibdocker para outra máquina na sua rede
Conectando-se à instância em execução com VNC para ver a GUI dos aplicativos
Configurando a área de trabalho acelerada 3D no navegador da web em vastai
Comandos úteis
Como configurar um registro docker para os sistemas da sua rede
#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
Você pode executar o teste a seguir para garantir que sua nova máquina estará na lista para testes de verificação. Se você passar, há uma grande chance de sua máquina ser elegível para verificação. Não pense que seu roteador precisa permitir loopback se você executar isso em uma máquina na mesma rede que a máquina que deseja testar. Se você não sabe como habilitar o loopback, será melhor executá-lo em uma VM de um provedor de nuvem ou com conexão móvel ao seu PC.
O script autoverify_machineid.sh
faz parte de um conjunto de ferramentas projetadas para automatizar o teste de máquinas no mercado Vast.ai. Este script testa especificamente uma única máquina para determinar se ela atende aos requisitos mínimos necessários para verificação adicional.
Antes de começar a usar ./autoverify_machineid.sh
, certifique-se de ter o seguinte:
Interface de linha de comando Vast.ai (vastcli) : esta ferramenta é usada para interagir com a plataforma Vast.ai.
Listagem Vast.ai : A máquina deve estar listada no vasto mercado.
Ubuntu OS : Os scripts são projetados para rodar no Ubununt 20.04 ou mais recente.
Baixe e configure vastcli
:
Baixe a ferramenta Vast.ai CLI usando o seguinte comando:
wget https://raw.githubusercontent.com/vast-ai/vast-python/master/vast.py -O vasto chmod +x vasto
Defina sua chave de API Vast.ai:
./vasto conjunto de chave de API 6189d1be9f15ad2dced0ac4e3dfd1f648aeb484d592e83d13aaf50aee2d24c07
Baixe autoverify_machineid.sh :
Use wget para baixar autoverify_machineid.sh para sua máquina local:
wget https://github.com/jjziets/VastVerification/releases/download/0.4-beta/autoverify_machineid.sh
Torne os scripts executáveis :
Altere as permissões dos scripts principais para torná-los executáveis:
chmod +x autoverify_machineid.sh
Dependências
apt update apt install bc jq
Execute o seguinte para instalar os pacotes necessários
./autoverify_machineid.sh
Verifique os requisitos da máquina :
O script ./autoverify_machineid.sh
foi projetado para testar se uma única máquina atende aos requisitos mínimos para verificação. Isto é útil para hosts que desejam verificar suas próprias máquinas.
Para testar uma máquina específica por seu machine_id
, use o seguinte comando:
./autoverify_machineid.sh
Substitua
pelo ID real da máquina que você deseja testar.
Para ignorar a verificação de requisitos :
./autoverify_machineid.sh --ignore-requirements
Este comando executa os testes da máquina, independentemente de ela atender aos requisitos mínimos.
Registro de progresso e resultados :
O script registra o progresso e os resultados dos testes.
Os resultados bem-sucedidos e as máquinas que atenderem aos requisitos serão registrados em Pass_testresults.log
.
As máquinas que não atenderem aos requisitos ou encontrarem erros durante o teste serão registradas em Error_testresults.log
.
Compreendendo os registros :
Pass_testresults.log
: Este arquivo contém entradas para máquinas que passaram com sucesso em todos os testes.
Error_testresults.log
: Este arquivo contém entradas para máquinas que não atenderam aos requisitos mínimos ou encontraram erros durante o teste.
Veja como você pode executar o script autoverify_machineid.sh
para testar uma máquina com machine_id
10921:
./autoverify_machineid.sh 10921
Problemas de chave de API : certifique-se de que sua chave de API esteja definida corretamente usando ./vast set api-key
.
Permissão negada : se você encontrar problemas de permissão, certifique-se de que os arquivos de script tenham permissões executáveis ( chmod +x
).
Problemas de conexão : verifique sua conexão de rede e certifique-se de que a CLI do Vast.ai possa se comunicar com os servidores Vast.ai.
Seguindo este guia, você poderá usar o script ./autoverify_machineid.sh
para testar máquinas individuais no mercado Vast.ai. Esse processo ajuda a garantir que as máquinas atendam às especificações exigidas de GPU e desempenho do sistema, tornando-as candidatas para verificação adicional e uso no mercado.
Se você está tendo problemas com sua máquina não mostrando a velocidade de upload e download corretamente.
primeiro verifique se há algum problema forçando a execução do speedtest
cd /var/lib/vastai_kaalia ./send_mach_info.py --speedtest
a saída deve ficar assim
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}} ....
Se o speedtest acima não funcionar, você pode tentar instalar um teste alternativo mais recente. Devido à saída do teste de velocidade mais recente não ter o mesmo formato, um script irá traduzi-la para que o vasto possa usar o novo teste de velocidade. Todos os comandos combinados
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"
ou passo a passo
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
Isso atualizou seu teste de velocidade para o mais recente e traduziu a saída para que Vast Demon possa usá-lo. Se agora você obtiver velocidades mais lentas, siga este
## 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
Os sistemas de monitoramento Prometheus Grafana, enviam alertas e acompanham todas as métricas referentes aos seus equipamentos e também acompanham ganhos e aluguéis. https://github.com/jjziets/DCMontoring
execute o script abaixo se você tiver um problema com o vasto instalador em 22,24 e erro nvml, este script é baseado em Bo26fhmC5M, então o crédito vai para ele
sudo wget https://raw.githubusercontent.com/jjziets/vasttools/main/nvml_fix.py sudo python nvml_fix.py
se você tiver uma mensagem de erro vermelha em sua máquina que confirmou que foi resolvida. Pode ajudar excluir /var/lib/vastai_kaalia/kaalia.log e reiniciar
sudo rm /var/lib/vastai_kaalia/kaalia.log sudo systemctl restart vastai
Se você não deseja configurar o painel do Analytics e deseja apenas ver todos os Temps em sua GPU, você pode usar a ferramenta abaixo
sudo wget https://github.com/jjziets/gddr6_temps/raw/master/nvml_direct_access sudo chmod +x nvml_direct_access sudo ./nvml_direct_access
definir o OC do RTX 3090. Requer o seguinte
no host execute o seguinte comando:
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.
configure o programa de monitoramento que alterará a memória oc com base no programa que está sendo executado. ele foi projetado para RTX3090 e tem como alvo o ethminer neste estágio. Requer que set_mem.sh e ocmonitor.sh sejam executados na raiz.
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
Para carregar na reinicialização use o crontab abaixo
sudo (crontab -l; echo "@reboot screen -dmS ocmonitor /home/jzietsman/ocminitor.sh") | crontab - #replace the user with your user
A mineração não sobrecarrega seu sistema da mesma forma que as cargas de trabalho do Python, portanto, este também é um bom teste para executar.
Primeiro, defina uma janela de manutenção e, quando não houver clientes em execução, você poderá fazer o teste de estresse.
https://github.com/jjziets/pytorch-benchmark-volta
um conjunto completo de testes de estresse pode ser encontrado docker image jjziets/vastai-benchmarks:latest na pasta /app/
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 ou interface bash
sudo docker run --shm-size 1G --rm -it --gpus all jjziets/vastai-benchmarks /bin/bash apt update && apt upgrade -y ./benchmark.sh
#Run usando configurações padrão Os resultados são salvos em ./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
Você também pode fazer um teste de queima de GPU.
sudo docker run --gpus all --rm oguzpastirmaci/gpu-burn
Se você quiser executá-lo para uma GPU, execute o comando abaixo, substituindo x pelo número da GPU começando em 0.
sudo docker run --gpus '"device=x"' --rm oguzpastirmaci/gpu-burn
*baseado em leona/vast.ai-tools
Este é um conjunto de scripts para monitorar falhas de máquinas. Execute o cliente em sua vasta máquina e o servidor em uma máquina remota. Você receberá notificações no Telegram se nenhuma pulsação for enviada dentro do tempo limite (padrão 12 segundos). https://github.com/jjziets/Telegram-Vast-Uptime-Bot
baseado em RTX 3090 120Mhs para eth. define o preço do meu 2 host. funciona com um Vast-cli personalizado que pode ser encontrado aqui https://github.com/jjziets/vast-python/blob/master/vast.py O gerenciador está aqui https://github.com/jjziets/vasttools/ blob/main/setprice.sh
Isso deve ser executado em um vps e não em um host. não exponha suas chaves de API do Vast usando-as no host.
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
A melhor maneira de gerenciar seu trabalho ocioso é por meio do vasto cli. Que eu saiba, o trabalho do conjunto de GUI está quebrado. Portanto, para definir um trabalho ocioso, siga as etapas a seguir. Você precisará baixar o vasto cli e executar os seguintes comandos. A ideia é alugar-se como um trabalho interrompível. O vasto cli permite definir um trabalho ocioso para todas as GPUs ou uma GPU por instância. Você também pode definir o método de conexão SSH ou qualquer outro método. Vá para https://cloud.vast.ai/cli/ e instale seu sabor cli.
configure sua chave de conta para que você possa usar o vasto cli. você obtém essa chave na página da sua conta.
./vast set api-key API_KEY
Você pode usar meu script SetIdleJob.py para configurar seu trabalho ocioso com base no preço mínimo definido em suas máquinas.
wget https://raw.githubusercontent.com/jjziets/vasttools/main/SetIdleJob.py
Aqui está um exemplo de como eu uso o 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'
Ou o comando completo se você não quiser usar os padrões
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
Solucione o problema do comando bash -c usando os logs na página da instância
Alternativamente, você pode alugar-se com o seguinte comando e, em seguida, fazer login e carregar o que deseja executar. Certifique-se de adicionar seu processo a onstart.sh para alugar você mesmo, primeiro encontre sua máquina com o ID da máquina
./vast search offers "machine_id=14109 verified=any gpu_frac=1 " # gpu_frac=1 will give you the instance with all the gpus.
ou
./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
Depois de ter o off_id. e neste caso, a pesquisa com uma opção -i fornecerá um instance_id interrompível
Vamos supor que você queira minerar com o 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
ele iniciará a instância no preço 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
Aqui está um repositório com dois programas e alguns scripts que você pode usar para gerenciar seus fãs 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 -"
Se o seu sistema for atualizado enquanto o vasto estiver em execução ou, pior ainda, quando um cliente estiver alugando você, você poderá ser desverificado ou banido. É aconselhável atualizar apenas quando o sistema não estiver alugado e for removido da lista. o melhor seria definir uma data de término para sua listagem e realizar atualizações e upgrades nessa fase. para interromper atualizações autônomas, execute os seguintes comandos.
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
Quando o sistema estiver ocioso e excluído, execute os seguintes comandos. vastos serviços demon e docker foram interrompidos. Também é uma boa ideia atualizar os drivers da Nvidia como este. Se você não fizer isso e as atualizações frearem um pacote, você poderá ser desverificado ou até mesmo banido do vasto.
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'
Este guia ilustra como fazer backup de dados vastos do Docker de uma unidade existente e transferi-los para uma nova unidade. neste caso, um driver raid /dev/md0
Nenhum cliente está em execução e você não está listado no vasto mercado.
Os dados do Docker existem na unidade atual.
Instale as ferramentas necessárias :
sudo apt install pv pixz
Pare e desative os serviços relevantes :
sudo systemctl stop vastai docker.socket docker sudo systemctl disable vastai docker.socket docker
Faça backup do diretório Docker : crie um backup compactado do diretório /var/lib/docker
. Certifique-se de que haja espaço suficiente na unidade do sistema operacional para esse backup. Ou mova os dados para o servidor de backup. consulte 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
Nota: pixz
utiliza vários núcleos para compactação mais rápida.
Desmonte o diretório Docker : se você planeja desligar e instalar uma nova unidade:
sudo umount /var/lib/docker
Atualizar /etc/fstab
: desative a montagem automática do diretório atual do Docker na inicialização para evitar problemas de inicialização:
sudo nano /etc/fstab
Comente a linha associada a /var/lib/docker
adicionando um #
no início da linha.
Particione a nova unidade : (Ajuste o nome do dispositivo com base no seu sistema. O guia usa /dev/md0
para RAID e /dev/nvme0n1
para unidades NVMe como exemplos.)
sudo cfdisk /dev/md0
Formate a nova partição com XFS :
sudo mkfs.xfs -f /dev/md0p1
Recupere o UUID : Você precisará do UUID para atualizar /etc/fstab
.
sudo xfs_admin -lu /dev/md0p1
Atualize /etc/fstab
com a nova unidade :
sudo nano /etc/fstab
Adicione a seguinte linha (substitua o UUID pelo que você recuperou):
UUID="YOUR_UUID_HERE" /var/lib/docker xfs rw,auto,pquota,discard,nofail 0 0
Monte a nova partição :
sudo mount -a
Confirme a montagem:
df -h
Certifique-se de que /dev/md0p1
(ou o nome do dispositivo apropriado) esteja montado em /var/lib/docker
.
Restaure os dados do Docker : Navegue até o diretório raiz:
cd /
Descompacte e restaure: certifique-se de alterar o usuário para o nome relevante
sudo cat /home/user/docker.tar.pixz | pv | sudo tar -x -I 'pixz -d -k'
Habilitar serviços :
sudo systemctl enable vastai docker.socket docker
Reinício :
sudo reboot
Verifique se a unidade desejada está montada em /var/lib/docker
e certifique-se de que vastai
esteja operacional.
/var/lib/docker
para outra máquina em sua rede Se você deseja migrar a configuração do Docker para outra máquina, seja para substituir a unidade ou configurar um RAID, siga este guia. Neste exemplo, assumiremos que o endereço IP do servidor de backup é 192.168.1.100
.
Habilitar temporariamente o login SSH raiz : é essencial garantir a comunicação SSH ininterrupta durante o processo de backup, especialmente ao transferir arquivos grandes, como dados compactados do Docker. um. Abra a configuração SSH:
sudo nano /etc/ssh/sshd_config
b. Localize e altere a linha:
PermitRootLogin no
para:
PermitRootLogin yes
c. Recarregue a configuração SSH:
sudo systemctl restart sshd
Gere uma chave SSH e transfira-a para o servidor de backup : a. Crie a chave SSH:
sudo ssh-keygen
b. Copie a chave SSH para o servidor de backup:
sudo ssh-copy-id -i ~/.ssh/id_rsa [email protected]
Desativar autenticação de senha root : certifique-se de que apenas a chave SSH possa ser usada para login root, aumentando a segurança. um. Modifique a configuração SSH:
sudo nano /etc/ssh/sshd_config
b. Mude a linha para:
PermitRootLogin senha proibida
c. Recarregue a configuração SSH:
sudo systemctl restart sshd
Preparação para backup : Antes de fazer backup, certifique-se de que os serviços relevantes sejam interrompidos:
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
Procedimento de backup : Este procedimento compacta o diretório /var/lib/docker
e o transfere para o servidor de backup. um. Mude para o usuário root e instale as ferramentas necessárias:
sudo su apt install pixz apt install pv
Pode ser uma boa ideia executar o comando de backup no tmux ou na tela para que, se você perder a conexão ssh, o processo seja concluído. b. Execute o backup:
tar -c -I 'pixz -k -0' -f - /var/lib/docker | pv | ssh [email protected] "cat > /mnt/backup/machine/docker.tar.pixz"
Restaurando o backup : certifique-se de que sua nova unidade esteja montada em /var/lib/docker
. um. Mude para o usuário root:
sudo su
b. Restaurar do backup:
cd / ssh [email protected] "cat /mnt/backup/machine/docker.tar.pixz" | pv | sudo tar -x -I 'pixz -d -k'
Reativar serviços :
sudo systemctl enable vastai sudo systemctl enable docker.socket sudo systemctl enable docker sudo reboot
Pós-reinicialização : certifique-se de que sua unidade de destino esteja montada em /var/lib/docker
e que o vastai
esteja operacional.
Usando uma instância com portas abertas Se a tela tiver profundidade de cor de 16 e não 16 bits, tente outro visualizador vnc. TightVNC funcionou para mim no Windows
primeiro diga ao vasto para permitir que uma porta seja atribuída. use o -p 8081:8081 e marque o comando direto.
encontre um host com portas abertas e alugue-o. de preferência sob demanda. vá para a página de instâncias do cliente e aguarde o botão de conexão
use ssh para se conectar às instâncias.
execute os comandos abaixo. a segunda parte pode ser colocada no onstart.sh para ser executada na reinicialização
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
Para conectar use o ip do host e a porta que foi fornecida. Neste caso é 400010
então aproveite o destkop. infelizmente, isso não é acelerado por hardware. então nenhum jogo funcionará
Estaremos usando ghcr.io/ehfd/nvidia-glx-desktop:latest
use estes parâmetros de ambiente
-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
encontre um sistema que tenha portas abertas
quando terminar de carregar clique em abrir
nome de usuário é usuário e senha é o que você definiu como mypasswd neste caso
aperte Iniciar
Ambiente de desktop acelerado 3D em um navegador da web
Isso reduzirá o número de solicitações pull do seu IP público. O Docker é restrito a 100 pulls por 6h para login não anônimo e pode acelerar o tempo de inicialização de seus aluguéis. Este guia fornece instruções sobre como configurar um servidor de registro Docker usando Docker Compose, bem como configurar clientes Docker para usar esse registro. Pré-requisitos Docker e Docker Compose estão instalados no servidor que possui muito armazenamento rápido em sua LAN local. O Docker está instalado em todas as máquinas clientes.
Configurando o Docker Registry Server, instale docker-compose se ainda não o fez.
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
Crie um arquivo docker-compose.yml: Crie um arquivo chamado docker-compose.yml em seu servidor com o seguinte conteúdo:
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:
Esta configuração configura um servidor de registro Docker em execução na porta 5000 e usa um volume denominado data para armazenamento. Inicie o registro do Docker:
Execute o seguinte comando no diretório onde o arquivo docker-compose.yml está localizado:
sudo docker-compose up -d
Este comando irá estrelar