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 Amazon FSX per NetApp ONTAP (FSX ONTAP) come bucket S3 privato in AWS SageMaker

Collaboratori

Questa sezione fornisce una guida alla configurazione di FSX ONTAP come bucket S3 privato tramite AWS SageMaker.

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

Introduzione

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

Per ulteriori informazioni su FSX ONTAP, date 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.

    Apri la console AWS

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

    Console istanza notebook AWS SageMaker

  3. Nella pagina di creazione, immettere il nome dell'istanza del notebook* espandere il pannello rete lasciare le altre voci predefinite e selezionare un gruppo VPC, sottorete e protezione. (Questa VPC e sottorete verranno utilizzate per creare il file system FSX ONTAP in seguito) fate clic sul pulsante arancione Crea istanza notebook in basso a destra.

    Creare l'istanza del notebook

Crea un file system FSX ONTAP

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

    Pannello FSX

  2. Fare clic su Crea file system.

    Creare il file system

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

    Selezionare il tipo di file system

  4. Nella pagina di configurazione dei dettagli.

    1. Selezionare l'opzione creazione standard.

      Pannello Crea file system

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

      Specificare i dettagli del file system

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

       di rete; configurazione di sicurezza

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

      Configurazione predefinita della macchina virtuale di storage

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

      Confermare la configurazione

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

      Esaminare la configurazione e confermare la creazione

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

    Esaminare la console FSX

Server Configuration (Configurazione server)

Configurazione ONTAP

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

    Attendere la creazione del backend

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

    Console dei dettagli del file system

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

    Console istanza notebook AWS SageMaker

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

    Pagina di benvenuto di Jupyter Lab

  5. Inserisci il comando ssh ssh <nome utente admin>@<IP server ONTAP> per accedere al file system FSX ONTAP. (Il nome utente e l'indirizzo IP vengono recuperati dal passaggio 2) utilizzare la password utilizzata per creare la Storage Virtual Machine.

    Terminale Jupyter Lab

  6. Eseguire i comandi nel seguente ordine. Usiamo fsxn-ONTAP come nome per il FSX ONTAP private S3 bucket name. 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

    Uscita terminale Jupyter Lab

  7. Eseguire i seguenti comandi per recuperare l'IP dell'endpoint e le credenziali per FSX ONTAP 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.

    Terminale Jupyter Lab

Client Configuration (Configurazione client)

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

    Aprire un nuovo notebook Jupyter

  2. Utilizza il codice riportato di seguito come soluzione per caricare i file nel bucket S3 privato di FSX ONTAP. 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 FSx ONTAP IP address>'        # Please get this IP address from FSx ONTAP
    # -------- 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 FSx ONTAP 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 FSx ONTAP 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 FSx ONTAP 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 FSX ONTAP e l'istanza di SageMaker.

Utile elenco di controllo per il debug

  • Verificare che l'istanza del notebook SageMaker e il file system FSX ONTAP 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 in FSX ONTAP?

R: Come bucket S3 privato, FSX ONTAP supporta il caricamento di file fino a 100MB KB. 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 FSX ONTAP private S3 non supporta questa funzione.

D: Perché viene visualizzato l'errore "si è verificato un errore (accesso negato) quando si chiamano le operazioni PutObject: Accesso negato" quando si caricano i file in FSX ONTAP?

R: Per accedere al bucket S3 privato FSX ONTAP da un'istanza di notebook SageMaker, passare le credenziali AWS alle credenziali FSX ONTAP. 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 FSX ONTAP 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, FSX ONTAP S3 non è compatibile con i servizi SageMaker come Sagemaker Data Wrangler, Sagemaker Clarify, Sagemaker Glue, Sagemaker Athena, Sagemaker AutoML e altri.