Skip to main content
NetApp Solutions
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

Teil 1 – Integration von Amazon FSX for NetApp ONTAP (FSX ONTAP) als privaten S3-Bucket in AWS SageMaker

Beitragende

Dieser Abschnitt enthält einen Leitfaden zur Konfiguration von FSX ONTAP als privaten S3-Bucket mit AWS SageMaker.

Autor(en):
Jian Jian (Ken), Senior Data & Applied Scientist, NetApp

Einführung

Anhand von SageMaker als Beispiel enthält diese Seite Anleitungen zur Konfiguration von FSX ONTAP als privaten S3-Bucket.

Für weitere Informationen über FSX ONTAP, nehmen Sie bitte einen Blick auf diese Präsentation ("Video-Link")

Benutzerhandbuch

Server-Erstellung

Erstellen Sie eine SageMaker-Notebook-Instanz

  1. Öffnen Sie die AWS-Konsole. Suchen Sie im Suchfeld nach SageMaker und klicken Sie auf den Dienst Amazon SageMaker.

    Öffnen Sie die AWS-Konsole

  2. Öffnen Sie die Notizbuchinstanzen unter der Registerkarte Notizbuch, klicken Sie auf die orangefarbene Schaltfläche Notizbuchinstanz erstellen.

    AWS SageMaker Notebook-Instanzkonsole

  3. Geben Sie auf der Erstellungsseite den Namen der Notebook-Instanz ein erweitern Sie das Feld Netzwerk andere Einträge standardmäßig lassen und wählen Sie eine VPC, Subnetz und Sicherheitsgruppe(n) aus. (Diese VPC und Subnetz werden später verwendet, um FSX ONTAP Dateisystem zu erstellen) Klicken Sie auf die orangefarbene Schaltfläche Notizbuchinstanz erstellen unten rechts.

    Notizbuchinstanz erstellen

Erstellen Sie ein FSX ONTAP Dateisystem

  1. Öffnen Sie die AWS-Konsole. Suchen Sie im Suchfeld FSX und klicken Sie auf den Dienst FSX.

    FSX-Panel

  2. Klicken Sie auf Dateisystem erstellen.

    Erstellen Sie ein Dateisystem

  3. Wählen Sie die erste Karte FSX ONTAP und klicken Sie auf Weiter.

    Wählen Sie den Dateisystemtyp aus

  4. Auf der Konfigurationsseite für Details.

    1. Wählen Sie die Option Standard create.

      Dateisystemfenster erstellen

    2. Geben Sie den Namen des Dateisystems und die Kapazität des SSD-Speichers ein.

      Geben Sie Dateisystemdetails an

    3. Stellen Sie sicher, dass Sie die VPC und Subnetz mit der SageMaker Notebook-Instanz identisch verwenden.

      Netzwerk-  Sicherheitskonfiguration

    4. Geben Sie den Namen der Storage Virtual Machine und Geben Sie ein Passwort für Ihre SVM (Storage Virtual Machine) ein.

      Standardmäßige Konfiguration der virtuellen Storage-Maschine

    5. Lassen Sie andere Einträge standardmäßig und klicken Sie auf die orangefarbene Schaltfläche Weiter unten rechts.

      Bestätigen Sie die Konfiguration

    6. Klicken Sie auf die orangefarbene Schaltfläche Dateisystem erstellen unten rechts auf der Überprüfungsseite.

      Überprüfen Sie die Konfiguration und bestätigen Sie die Erstellung

  5. Es kann ungefähr 20-40 Minuten* dauern, um das FSX Dateisystem hochzudrehen.

    Überprüfen Sie die FSX-Konsole

Serverkonfiguration

ONTAP-Konfiguration

  1. Öffnen Sie das erstellte FSX Dateisystem. Bitte stellen Sie sicher, dass der Status verfügbar ist.

    Warten Sie auf die Back-End-Erstellung

  2. Wählen Sie die Registerkarte Verwaltung aus und behalten Sie die Optionen Verwaltungsendpunkt - IP-Adresse und ONTAP-Administratorbenutzername bei.

    Detailkonsole des Dateisystems

  3. Öffnen Sie die erstellte SageMaker Notebook-Instanz und klicken Sie auf JupyterLab öffnen.

    AWS SageMaker Notebook-Instanzkonsole

  4. Öffnen Sie auf der Seite Jupyter Lab ein neues Terminal.

    Jupyter Lab Willkommensseite

  5. Geben Sie den ssh-Befehl ssh <admin user Name>@<ONTAP Server IP> ein, um sich beim FSX ONTAP-Dateisystem anzumelden. (Der Benutzername und die IP-Adresse werden aus Schritt 2 abgerufen) Bitte verwenden Sie das Passwort, das beim Erstellen der Storage Virtual Machine verwendet wird.

    Jupyter Lab-Terminal

  6. Führen Sie die Befehle in der folgenden Reihenfolge aus. Wir verwenden fsxn-ONTAP als Namen für den FSX ONTAP privaten S3-Bucket-Namen. Bitte verwenden Sie für das Argument -vserver den Namen der virtuellen Speichermaschine*.

    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

    Jupyter Lab-Anschlussausgang

  7. Führen Sie die folgenden Befehle aus, um die Endpunkt-IP und die Zugangsdaten für FSX ONTAP Private S3 abzurufen.

    network interface show -vserver fsxn-svm-demo -lif nfs_smb_management_1
    
    set adv
    
    vserver object-store-server user show
  8. Die IP-Adresse des Endpunkts und die Anmeldeinformationen bleiben für die zukünftige Verwendung erhalten.

    Jupyter Lab-Terminal

Client-Konfiguration

  1. Erstellen Sie in der SageMaker-Notebook-Instanz ein neues Jupyter-Notebook.

    Öffnen Sie ein neues Jupyter-Notizbuch

  2. Verwenden Sie den unten stehenden Code als Umgehung, um Dateien in FSX ONTAP privaten S3 Bucket hochzuladen. Ein umfangreiches Codebeispiel finden Sie in diesem Notizbuch. "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']

Damit ist die Integration zwischen FSX ONTAP und der SageMaker-Instanz abgeschlossen.

Nützliche Debugging-Checkliste

  • Stellen Sie sicher, dass sich die SageMaker-Notebook-Instanz und das FSX ONTAP-Dateisystem in derselben VPC befinden.

  • Denken Sie daran, den Befehl set dev auf ONTAP auszuführen, um die Berechtigungsebene auf dev zu setzen.

FAQ (Stand 27. September 2023)

F: Warum erhalte ich den Fehler "ein Fehler ist aufgetreten (NotImplementiert) beim Aufruf der CreateMultipartUpload Operation: Der von Ihnen angeforderte s3 Befehl ist nicht implementiert" beim Hochladen von Dateien auf FSX ONTAP?

A: Als privater S3-Bucket unterstützt FSX ONTAP das Hochladen von Dateien mit bis zu 100 MB. Bei Verwendung des S3-Protokolls werden Dateien mit einer Größe von mehr als 100 MB in 100-MB-Blöcke unterteilt, und die Funktion „CreateMultipartUpload“ wird aufgerufen. Die aktuelle Implementierung von FSX ONTAP private S3 unterstützt diese Funktion jedoch nicht.

F: Warum erhalte ich den Fehler "ein Fehler ist aufgetreten (AccessDenied) beim Aufruf der PutObject-Operationen: Zugriff verweigert" beim Hochladen von Dateien auf FSX ONTAP?

A: Um von einer SageMaker-Notebook-Instanz auf den privaten S3-Bucket von FSX ONTAP zuzugreifen, wechseln Sie die AWS-Anmeldeinformationen zu den FSX ONTAP-Anmeldeinformationen. Die Gewährung von Schreibberechtigungen für die Instanz erfordert jedoch eine Problemumgehungslösung, bei der der Bucket gemountet und der Shell-Befehl 'chmod' ausgeführt wird, um die Berechtigungen zu ändern.

F: Wie kann ich den FSX ONTAP privaten S3-Eimer mit anderen SageMaker ML-Diensten integrieren?

A: Leider bietet das SageMaker Services SDK keine Möglichkeit, den Endpunkt für den privaten S3-Bucket anzugeben. Daher ist FSX ONTAP S3 nicht kompatibel mit SageMaker-Diensten wie SageMaker-Datenwächter, SageMaker-Klarstellung, SageMaker-Kleber, SageMaker-Athena, SageMaker-AutoML und anderen.