Skip to main content
NetApp Solutions
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Parte 1 - integrazione di AWS FSX per NetApp ONTAP (FSxN) come bucket S3 privato in AWS SageMaker

Collaboratori

Autore(i):
Jian Jian (Ken), Senior Data & Applied Scientist, NetApp

Introduzione

Utilizzando SageMaker come esempio, questa pagina fornisce istruzioni sulla configurazione di FSxN come bucket S3 privato.

Per ulteriori informazioni su FSxN, si prega di dare un'occhiata a questa presentazione (."Collegamento video")

Guida dell'utente

Creazione server

Creare un'istanza di notebook SageMaker

  1. Apri la console AWS. Nel pannello di ricerca, cerca SageMaker e fai clic sul servizio Amazon SageMaker.

    Errore: Aprire la console AWS

  2. Aprire istanze notebook nella scheda notebook, fare clic sul pulsante arancione Crea istanza notebook.

    Errore: Console istanza notebook AWS SageMaker

  3. Nella pagina di creazione,
    Immettere il nome istanza notebook
    Espandere il pannello rete
    Lasciare le altre voci predefinite e selezionare i gruppi VPC, Subnet e protezione. (Questa VPC e sottorete verranno utilizzate per creare il file system FSxN in un secondo momento)
    Fare clic sul pulsante arancione Crea istanza notebook in basso a destra.

    Errore: Creare l'istanza del notebook

Creare un file system FSxN

  1. Apri la console AWS. Nel pannello di ricerca, cercate FSX e fate clic sul servizio FSX.

    Errore: Pannello FSX

  2. Fare clic su Crea file system.

    Errore: Creare il file system

  3. Selezionare la prima scheda FSX per NetApp ONTAP e fare clic su Avanti.

    Errore: Selezionare il tipo di file system

  4. Nella pagina di configurazione dei dettagli.

    1. Selezionare l'opzione creazione standard.

      Errore: Pannello Crea file system

    2. Immettere il nome del file system e la capacità di archiviazione SSD.

      Errore: Specificare i dettagli del file system

    3. Assicurarsi di utilizzare VPC e subnet uguali all'istanza SageMaker notebook.

      Errore:  di rete; configurazione di sicurezza

    4. Immettere il nome Storage Virtual Machine e specificare una password per la SVM (Storage Virtual Machine).

      Errore: Configurazione predefinita della macchina virtuale di archiviazione

    5. Lasciare le altre voci predefinite e fare clic sul pulsante arancione Avanti in basso a destra.

      Errore: Confermare la configurazione

    6. Fare clic sul pulsante arancione Crea file system in basso a destra nella pagina di revisione.

      Errore: Esaminare la configurazione e confermare la creazione

  5. L'accelerazione del file system FSX può richiedere circa 20-40 minuti.

    Errore: Esaminare la console FSX

Server Configuration (Configurazione server)

Configurazione ONTAP

  1. Aprire il file system FSX creato. Assicurarsi che lo stato sia disponibile.

    Errore: Attendere la creazione del backend

  2. Selezionare la scheda Amministrazione e mantenere endpoint di gestione - indirizzo IP e nome utente amministratore ONTAP.

    Errore: Console dei dettagli del file system

  3. Aprire l'istanza creata SageMaker notebook e fare clic su Apri JupyterLab.

    Errore: Console istanza del notebook AWS SageMaker

  4. Nella pagina Jupyter Lab, aprire un nuovo terminale.

    Errore: Pagina di benvenuto di Jupyter Lab

  5. Inserisci il comando ssh ssh <nome utente admin>@<IP server ONTAP> per accedere al file system FSxN ONTAP. (Il nome utente e l'indirizzo IP sono recuperati dalla fase 2)
    Utilizzare la password utilizzata durante la creazione della Storage Virtual Machine.

    Errore: Terminale Jupyter Lab

  6. Eseguire i comandi nel seguente ordine.
    Utilizziamo fsxn-ontap come nome per il nome bucket S3 privato FSxN.
    Utilizzare storage virtual machine name per l'argomento -vserver.

    vserver object-store-server create -vserver fsxn-svm-demo -object-store-server fsx_s3 -is-http-enabled true -is-https-enabled false
    
    vserver object-store-server user create -vserver fsxn-svm-demo -user s3user
    
    vserver object-store-server group create -name s3group -users s3user -policies FullAccess
    
    vserver object-store-server bucket create fsxn-ontap -vserver fsxn-svm-demo -type nas -nas-path /vol1

    Errore: Uscita terminale Jupyter Lab

  7. Eseguire i seguenti comandi per recuperare l'IP dell'endpoint e le credenziali per FSxN private S3.

    network interface show -vserver fsxn-svm-demo -lif nfs_smb_management_1
    
    set adv
    
    vserver object-store-server user show
  8. Conservare l'IP dell'endpoint e le credenziali per un utilizzo futuro.

    Errore: Terminale Jupyter Lab

Client Configuration (Configurazione client)

  1. Nell'istanza di notebook SageMaker, creare un nuovo notebook Jupyter.

    Errore: Aprire un nuovo notebook Jupyter

  2. Utilizzare il codice riportato di seguito come soluzione alternativa per caricare i file nel bucket S3 privato di FSxN.
    Per un esempio di codice completo, fare riferimento a questo notebook.
    "fsxn_demo.ipynb"

    # Setup configurations
    # -------- Manual configurations --------
    seed: int = 77                                              # Random seed
    bucket_name: str = 'fsxn-ontap'                             # The bucket name in ONTAP
    aws_access_key_id = '<Your ONTAP bucket key id>'            # Please get this credential from ONTAP
    aws_secret_access_key = '<Your ONTAP bucket access key>'    # Please get this credential from ONTAP
    fsx_endpoint_ip: str = '<Your FSxN IP address>'             # Please get this IP address from FSXN
    # -------- Manual configurations --------
    
    # Workaround
    ## Permission patch
    !mkdir -p vol1
    !sudo mount -t nfs $fsx_endpoint_ip:/vol1 /home/ec2-user/SageMaker/vol1
    !sudo chmod 777 /home/ec2-user/SageMaker/vol1
    
    ## Authentication for FSxN as a Private S3 Bucket
    !aws configure set aws_access_key_id $aws_access_key_id
    !aws configure set aws_secret_access_key $aws_secret_access_key
    
    ## Upload file to the FSxN Private S3 Bucket
    %%capture
    local_file_path: str = <Your local file path>
    
    !aws s3 cp --endpoint-url http://$fsx_endpoint_ip /home/ec2-user/SageMaker/$local_file_path  s3://$bucket_name/$local_file_path
    
    # Read data from FSxN Private S3 bucket
    ## Initialize a s3 resource client
    import boto3
    
    # Get session info
    region_name = boto3.session.Session().region_name
    
    # Initialize Fsxn S3 bucket object
    # --- Start integrating SageMaker with FSXN ---
    # This is the only code change we need to incorporate SageMaker with FSXN
    s3_client: boto3.client = boto3.resource(
        's3',
        region_name=region_name,
        aws_access_key_id=aws_access_key_id,
        aws_secret_access_key=aws_secret_access_key,
        use_ssl=False,
        endpoint_url=f'http://{fsx_endpoint_ip}',
        config=boto3.session.Config(
            signature_version='s3v4',
            s3={'addressing_style': 'path'}
        )
    )
    # --- End integrating SageMaker with FSXN ---
    
    ## Read file byte content
    bucket = s3_client.Bucket(bucket_name)
    
    binary_data = bucket.Object(data.filename).get()['Body']

Si conclude così l'integrazione tra FSxN e l'istanza SageMaker.

Utile elenco di controllo per il debug

  • Verificare che l'istanza di SageMaker notebook e il file system FSxN si trovino nello stesso VPC.

  • Ricordarsi di eseguire il comando set dev su ONTAP per impostare il livello di privilegio su dev.

FAQ (al 27 settembre 2023)

D: Perché viene visualizzato l'errore "si è verificato un errore (NotImplemented) quando si chiama l'operazione CreateMultipartUpload: Il comando S3 richiesto non è implementato" quando si caricano i file su FSxN?

R: Come bucket S3 privato, FSxN supporta il caricamento di file fino a 100MB MB. Quando si utilizza il protocollo S3, i file di dimensioni superiori a 100MB KB vengono divisi in 100MB blocchi e viene richiamata la funzione "CreateMultipartUpload". Tuttavia, l'attuale implementazione di FSxN private S3 non supporta questa funzione.

D: Perché ricevo l'errore "si è verificato un errore (AccessDenied) quando si chiamano le operazioni PutObject: Access Denied" quando si caricano i file su FSxN?

R: Per accedere al bucket S3 privato FSxN da un'istanza di SageMaker notebook, passare le credenziali AWS alle credenziali FSxN. Tuttavia, la concessione del permesso di scrittura all'istanza richiede una soluzione alternativa che implica il montaggio del bucket e l'esecuzione del comando shell 'chmod' per modificare le autorizzazioni.

D: Come posso integrare il bucket S3 privato di FSxN con altri servizi ML di SageMaker?

R: Purtroppo, SageMaker Services SDK non fornisce un modo per specificare l'endpoint per il bucket S3 privato. Di conseguenza, FSxN S3 non è compatibile con i servizi SageMaker come Sagemaker Data Wrangler, Sagemaker Clarify, Sagemaker Glue, Sagemaker Athena, Sagemaker AutoML, e altri.