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 AWS FSX for NetApp ONTAP (FSxN) als privater S3-Bucket in AWS SageMaker

Beitragende

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

Einführung

Mithilfe von SageMaker als Beispiel bietet diese Seite Anleitungen zur Konfiguration von FSxN als privaten S3-Bucket.

Weitere Informationen über FSxN finden Sie in dieser 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.

    Fehler: Öffnen der AWS-Konsole

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

    Fehler: AWS SageMaker Notebook-Instanzkonsole

  3. Auf der Seite „Erstellung“
    Geben Sie den Namen der Notebook-Instanz ein
    Erweitern Sie das Fenster Netzwerk
    Lassen Sie andere Einträge standardmäßig und wählen Sie eine VPC, Subnetz und Sicherheitsgruppe(n) aus. (Diese VPC und Subnetz werden später zum Erstellen des FSxN-Dateisystems verwendet)
    Klicken Sie unten rechts auf den orangefarbenen Button Notizbuchinstanz erstellen.

    Fehler: Erstellen der Notizbuchinstanz

Erstellen Sie ein FSxN-Dateisystem

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

    Fehler: FSX Panel

  2. Klicken Sie auf Dateisystem erstellen.

    Fehler: Dateisystem erstellen

  3. Wählen Sie die erste Karte FSX für NetApp ONTAP und klicken Sie auf Weiter.

    Fehler: Dateisystemtyp auswählen

  4. Auf der Konfigurationsseite für Details.

    1. Wählen Sie die Option Standard create.

      Fehler: Dateisystemfenster erstellen

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

      Fehler: Geben Sie Dateisystemdetails an

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

      Fehler: Netzwerk  Sicherheitskonfiguration

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

      Fehler: Standardmäßige Konfiguration der virtuellen Speichermaschine

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

      Fehler: Konfiguration bestätigen

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

      Fehler: Ü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.

    Fehler: Ü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.

    Fehler: Warten Sie auf die Erstellung des Backends

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

    Fehler: Detailkonsole des Dateisystems

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

    Fehler: AWS SageMaker Notebook-Instanzkonsole

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

    Fehler: Jupyter Lab-Willkommensseite

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

    Fehler: Jupyter Lab-Terminal

  6. Führen Sie die Befehle in der folgenden Reihenfolge aus.
    Wir verwenden fsxn-ontap als Namen für den FSxN 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

    Fehler: Jupyter Lab Terminalausgang

  7. Führen Sie die folgenden Befehle aus, um die Endpunkt-IP und die Zugangsdaten für FSxN 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.

    Fehler: Jupyter Lab-Terminal

Client-Konfiguration

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

    Fehler: Öffnen Sie ein neues Jupyter-Notizbuch

  2. Verwenden Sie den unten stehenden Code als Umgehung, um Dateien in einen FSxN 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 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']

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

Nützliche Debugging-Checkliste

  • Stellen Sie sicher, dass sich die SageMaker-Notebook-Instanz und das FSxN-Dateisystem im gleichen 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 in FSxN?

A: Als privater S3-Bucket unterstützt FSxN 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 FSxN 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 in FSxN?

A: Um von einer SageMaker-Notebook-Instanz auf den privaten FSxN-S3-Bucket zuzugreifen, wechseln Sie die AWS-Anmeldeinformationen zu den FSxN-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 FSxN 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 FSxN S3 nicht kompatibel mit SageMaker-Diensten wie SageMaker Data Wrangler, SageMaker Clarify, SageMaker Glue, SageMaker Athena, SageMaker AutoML, und andere.