[ad_1]
Un caso de uso global en la abundancia es adjuntar/eliminar volúmenes dinámicamente. Identificar el dispositivo de disco adjunto en el sistema eficaz de la VSI no siempre es obvio.
En IBM Cloud Potencial Server for VPC, el disco que está conectado a la VSI se identifica mediante el identificador de conexión de bulto. Cada bulto tiene un UUID, pero la conexión entre el bulto y la VSI todavía tiene un UUID. El UUID de ese archivo adjunto de bulto es lo que se puede usar para identificar el disco de respaldo en el VSI.
ejemplo basado en IU
Detallar los identificadores de archivos adjuntos de bulto es simple con la CLI de ibmcloud:
Drews-MBP ~ % ibmcloud is in-vols 0727_fa4230b2-e167-4a09-8d7c-2822bdb016bf Relación de archivos adjuntos de bulto de instancia 0727_fa4230b2-e167-4a09-8d7c-2822bdb016bf bajo cuenta Cuenta de Drew Thorstensen como becario th orst@us.ibm.com… ID Nombre Masa Estado Tipo Dispositivo Aniquilación cibernética 0727-7db66159-5910-4ddc-a5b4-51f9333a9c3a secrecy-robust-anyone-agile test-metadata-volume adjunto datos 0727-7db66159-5910-4ddc-a5b4-51f9333a9c3a-4xjjc hipócrita 07 27-4b98cbf2 -4e57-4b3b-9bd2-83f2439da3bc aliento-pesebre-pájaro-axioma prueba-metadata-arranque-1649335137000 inicio adjunto 0727-4b98cbf2-4e57-4b3b-9bd2-83f2439da3bc-5jx6t definitivo
Esto muestra dos volúmenes adjuntos a la VSI: el inicio y luego un bulto de datos. Si iniciamos sesión en el VSI, podemos ver los discos de bulto:
[root@test-metadata ~]# ls -la /dev/disk/by-id total 0 drwxr-xr-x. 2 raíz raíz 200 7 de abril 12:58 . drwxr-xr-x. 7 raíz raíz 140 7 de abril 12:51 .. lrwxrwxrwx. 1 raíz raíz 9 7 de abril 12:52 virtio-0727-4b98cbf2-4e57-4 -> ../../vda lrwxrwxrwx. 1 raíz raíz 10 7 de abril 12:52 virtio-0727-4b98cbf2-4e57-4-part1 -> ../../vda1 lrwxrwxrwx. 1 root root 10 7 de abril 12:52 virtio-0727-4b98cbf2-4e57-4-part2 -> ../../vda2 lrwxrwxrwx. 1 root root 10 7 de abril 12:52 virtio-0727-4b98cbf2-4e57-4-part3 -> ../../vda3 lrwxrwxrwx. 1 raíz raíz 9 7 de abril 12:58 virtio-0727-7db66159-5910-4 -> ../../vdd lrwxrwxrwx. 1 root root 10 7 de abril 12:58 virtio-0727-7db66159-5910-4-part1 -> ../../vdd1 lrwxrwxrwx. 1 raíz raíz 9 7 de abril 12:52 virtio-cloud-init- -> ../../vdc lrwxrwxrwx. 1 raíz raíz 9 7 de abril 12:52 virtio-cloud-init-0727_fa42 -> ../../vdb
Si queremos encontrar el bulto de datos llamado test-metadata-volume, vemos que es el disco vdd. Los primeros 20 caracteres del identificador de archivo adjunto de bulto se utilizan para la identificación del disco. El enlace simbólico todavía nos muestra el nombre del disco al que se asigna.
Simplificando con el servicio de metadatos
La mayoría de los usuarios buscan una forma más rápida de identificar el nombre del disco, y es probable que estos usuarios todavía comiencen con el bulto en emplazamiento del archivo adjunto de bulto. A Dios gracias, esto es posible de hacer.
Recientemente, IBM Cloud VPC presentó el servicio de metadatos. Esta capacidad permite al becario final consultar datos sobre sí mismo y obtener tokens de identidad y más del VSI. Uno de los casos de uso en los que puede ayudar es ayudar a simplificar la elaboración del nombre del disco en función del nombre de un bulto.
Los pasos para encontrar el nombre del disco internamente de una VSI de un bulto determinado son los siguientes:
Implementar el VSI con los metadatos activados Obtener un token de identidad de instancia Consultar el servicio de metadatos para obtener una directorio de los archivos adjuntos de bulto Despabilarse el archivo adjunto de bulto que tiene el bulto especificado Despabilarse el nombre del disco en función del archivo adjunto de bulto
Adjunto a esta publicación hay un script que se puede usar para recuperar el nombre del disco para un UUID de bulto determinado (no el UUID adjunto). La ulterior es la salida de muestra:
[root@test-metadata ~]# scripts de python3/find_disk.py -v 0727-7db66159-5910-4ddc-a5b4-51f9333a9c3a-4xjjc vdd
En este caso, el disco se candela vdd internamente del VSI para el bulto 0727-7db66159-5910-4ddc-a5b4-51f9333a9c3a-4xjjc.
Código
El ulterior código se puede grabar en su instancia o datos de becario para ayudar a identificar rápidamente los nombres de los discos internamente de la VSI entregado el UUID del bulto. Asegúrese de rememorar que el servicio de metadatos debe estar ejecutándose para que esto funcione correctamente:
# ================================================= ===================== # Copyright 2022 IBM Corp. # # Con abuso de Apache License, Lectura 2.0 (la “Atrevimiento”); # no puede usar este archivo excepto de conformidad con la Atrevimiento. # Puede obtener una copia de la Atrevimiento en # # http://www.apache.org/licenses/LICENSE-2.0 # # A menos que lo exija la ley aplicable o se acuerde por escrito, el software # distribuido bajo la Atrevimiento se distribuye en un BASE “TAL CUAL”, # SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, ya sean expresas o implícitas. # Consulte la Atrevimiento para conocer el idioma específico que rige los permisos y # las limitaciones en virtud de la Atrevimiento. # ================================================= ===================== import argparse import json import os solicitudes de importación import sys def init_argparse(): parser = argparse.ArgumentParser( description=(“Rebusca un disco restringido por UUID”) ) parser.add_argument(“-v”, “–volume-uuid”, required=True, help=(“El UUID del bulto.”)) return parser.parse_args() def get_token(): result = request.put(“http://169.254.169.254/instance_identity/v1/token?version=2021-10-12”, headers={‘Metadata-Flavor’: ‘ibm’}) return json.loads(result.text )[‘access_token’]
def get_volume_attachments(access_token): resultado = solicitudes.get(“http://169.254.169.254/metadata/v1/instance/volume_attachments?version=2021-10-12″, headers={‘Autorización’: f”Bearer {access_token }”}) devuelve json.loads(resultado.texto)[‘volume_attachments’]
def get_disk_device(adjunto_uuid): ruta_esperada = f’/dev/disk/by-id/virtio-{adjunto_uuid[:20]}’ full_path = os.path.realpath(expected_path) return full_path.split(‘/’)[-1]
def main(): args = init_argparse() access_token = get_token() volume_attachments = get_volume_attachments(access_token) for volumen_archivo adjunto en volumen_archivo adjunto: if volumen_archivo adjunto[‘device’][‘id’] == args.volume_uuid: print(get_disk_device(volume_attachment[‘id’])) sys.exit(0) else: print(f”No se pudo encontrar el disco por bulto {args.volume_uuid}”) sys.exit(1) if __name__ == ‘__main__’: main()
Conclusión
El servicio de metadatos es un servicio poderoso que facilita que una instancia determinada recopile información sobre sí misma. Sin exigencia de apetecer a ninguna API, los usuarios pueden detectar el nombre del disco desde internamente del VSI para un UUID de bulto determinado. Estos scripts se pueden ampliar para asilar casos de uso adicionales, incluida la búsqueda de volúmenes e interfaces de red.
Para obtener más información sobre IBM Cloud VPC, visite nuestro sitio web. Asimismo puede obtener USD 1000 en créditos para utilizarlos en cualquiera de sus nuevos bienes de VPC, incluidos todos los componentes informáticos, de red y de almacenamiento.
Aplicar el código VPC1000
[ad_2]
Source link