Um dos recursos que mais chamou a atenção com o anúncio do OCI foi a possibilidade de realizar uma conexão na console da máquina, aqui eu já escrevi sobre isso, hoje quero mostrar como fazer a mesma coisa em um DBCS para momentos em que você por algum motivo perdeu acesso na máquina.
Diferente do primeiro artigo, aqui vamos usar o cloud shell para o acesso, o primeiro passo é gerar um par de chaves ssh caso você ainda não tenha:
$ ssh-keygen -t rsa
Você precisa do conteúdo da chave pública que fica em ~/.ssh/id_rsa.pub para criar a conexão:
Com a chave copiada, vá no DBCS -> Console Connection e crie uma nova, use a opção Paste SSH e cole o conteúdo do seu arquivo id_rsa.pub:
Após a conexão criada, clique nos 3 pontinhos do lado direito e copie o comando SSH e cole no Cloud Shell, ele vai te pedir duas vezes a confirmação (basta digitar yes e dar enter) e após a segunda vez basta dar um enter e você já vai estar na console da máquina.
Estando no console da máquina você tem duas opções, a primeira é digitar o usuário e senha e após isso reestabelecer seu acesso via ssh, mas por padrão as máquinas em OCI não possuem usuário e senha e sim par de chaves para acesso, sendo assim você precisa fazer o que chamamos de login single user.
DBCS Single User login
O primeiro passo é continuar conectado na console e dar um reboot no serviço em Nodes -> Reboot, ao fazer isso volte para o Cloud shell pois precisamos interromper o boot da vm para alterar alguns parâmetros.
Quando a tela de selecionar o Kernel aparecer, aperte ESC para parar o boot
Com a primeira linha selecionada, aperte a letra e para editar o boot:
Navegue até a linha que começa com linuxefi e adicione ao final rw init=/bin/bash e aperte ctrl + x
Após isso o sistema deve fazer o boot e você já vai estar logado como root
Agora você pode por exemplo editar o arquivo de chaves e adicionar uma nova:
Editar o fstab:
Montar o LVM para copiar algum arquivo
NÃO FAÇA ISSO CASO VOCÊ NÃO PRECISE, ESSE É UM PROCEDIMENTO QUE NÃO DEVE SER EXECUTADO EM AMBIENTES PRODUTIVOS, ELE FOI DOCUMENTADO APENAS PARA TESTAR AS FUNCIONALIDADES DO LINUX!
Se você tentar montar diretamente um erro vai acontecer:
bash-4.2# mount -a mount: special device /dev/mapper/DATA_GRP-DATA does not exist mount: special device /dev/mapper/RECO_GRP-RECO does not exist mount: special device /dev/mapper/BITS_GRP-BITS does not exist bash-4.2#
Então você precisa executar alguns comandos antes:
Exporte o sbin para seu path para facilitar nos comandos
PATH=/usr/sbin:$PATH
Subir iscsid
bash-4.2# /sbin/iscsid
Conectar nos discos
bash-4.2# iscsiadm -m node -l Logging in to [iface: default, target: iqn.2015-12.com.oracleiaas:916d7433-83b6-4415-b650-261f51bdae67, portal: 169.254.2.5,3260] (multiple) Logging in to [iface: default, target: iqn.2015-12.com.oracleiaas:53102c23-f9d2-49fa-ada5-eb9b3b32f051, portal: 169.254.2.4,3260] (multiple) Logging in to [iface: default, target: iqn.2015-12.com.oracleiaas:b23cdeb7-68c1-4711-914f-37b80d5c215b, portal: 169.254.2.3,3260] (multiple) iscsiadm: could not read session targetname: 5 iscsiadm: could not find session info for session2 Logging in to [iface: default, target: iqn.2015-12.com.oracleiaas:be2fc602-e691-4703-af75-303f10f73490, portal: 169.254.2.2,3260] (multiple) Logging in to [iface: default, target: iqn.2015-12.com.oracleiaas:f2d9acb0-ad78-41de-9026-cf812bf5f91b, portal: 169.254.2.6,3260] (multiple) Login to [iface: default, target: iqn.2015-12.com.oracleiaas:916d7433-83b6-4415-b650-261f51bdae67, portal: 169.254.2.5,3260] successful. Login to [iface: default, target: iqn.2015-12.com.oracleiaas:53102c23-f9d2-49fa-ada5-eb9b3b32f051, portal: 169.254.2.4,3260] successful. Login to [iface: default, target: iqn.2015-12.com.oracleiaas:b23cdeb7-68c1-4711-914f-37b80d5c215b, portal: 169.254.2.3,3260] successful. Login to [iface: default, target: iqn.2015-12.com.oracleiaas:be2fc602-e691-4703-af75-303f10f73490, portal: 169.254.2.2,3260] successful. Login to [iface: default, target: iqn.2015-12.com.oracleiaas:f2d9acb0-ad78-41de-9026-cf812bf5f91b, portal: 169.254.2.6,3260] successful. bash-4.2#
Nesse momento o LVM já vai estar disponível, mas ainda não vai ter criado os diretórios no mapper:
bash-4.2# pvs WARNING: Failed to connect to lvmetad. Falling back to device scanning. PV VG Fmt Attr PSize PFree /dev/sda3 VolGroupSys0 lvm2 a-- 61.46g 476.00m /dev/sdb RECO_GRP lvm2 a-- <128.00g 0 /dev/sdc RECO_GRP lvm2 a-- <128.00g 0 /dev/sdd BITS_GRP lvm2 a-- <200.00g 0 /dev/sde DATA_GRP lvm2 a-- <128.00g 0 /dev/sdf DATA_GRP lvm2 a-- <128.00g 0 bash-4.2# bash-4.2# mount -a mount: special device /dev/mapper/DATA_GRP-DATA does not exist mount: special device /dev/mapper/RECO_GRP-RECO does not exist mount: special device /dev/mapper/BITS_GRP-BITS does not exist bash-4.2#
Você precisa ativar:
bash-4.2# /usr/sbin/lvm pvscan --cache --activate ay WARNING: Failed to connect to lvmetad. Falling back to device scanning. pvscan[878] activating all directly (lvmetad unused) WARNING: Autoactivation reading from disk instead of lvmetad. pvscan[878] VG DATA_GRP run autoactivation. 1 logical volume(s) in volume group "DATA_GRP" now active pvscan[878] VG BITS_GRP run autoactivation. 1 logical volume(s) in volume group "BITS_GRP" now active pvscan[878] VG RECO_GRP run autoactivation. 1 logical volume(s) in volume group "RECO_GRP" now active pvscan[878] VG VolGroupSys0 skip autoactivation.
E forçar a criação dos diretórios:
bash-4.2# vgscan --mknodes WARNING: Failed to connect to lvmetad. Falling back to device scanning. Reading all physical volumes. This may take a while... Found volume group "DATA_GRP" using metadata type lvm2 Found volume group "BITS_GRP" using metadata type lvm2 Found volume group "RECO_GRP" using metadata type lvm2 Found volume group "VolGroupSys0" using metadata type lvm2
E sua montagem vai funcionar:
bash-4.2# mount -a bash-4.2# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 7.2G 0 7.2G 0% /dev tmpfs 7.3G 0 7.3G 0% /dev/shm tmpfs 7.3G 8.1M 7.3G 1% /run tmpfs 7.3G 0 7.3G 0% /sys/fs/cgroup /dev/mapper/VolGroupSys0-LogVolRoot 45G 7.7G 35G 19% / /dev/sda2 1.4G 78M 1.2G 7% /boot /dev/sda1 486M 7.5M 478M 2% /boot/efi /dev/mapper/DATA_GRP-DATA 251G 16G 223G 7% /u02 /dev/mapper/RECO_GRP-RECO 251G 15G 224G 7% /u03 /dev/mapper/BITS_GRP-BITS 196G 13G 174G 7% /u01 bash-4.2#
Depois de ter feito o que precisava, basta reiniciar a máquina pela console ou executando /usr/sbin/reboot -f