Verwenden von externem Dateispeicher in Azure Lab Services

Achtung

Dieser Artikel bezieht sich auf CentOS, eine Linux-Distribution, die sich dem End-of-Life-Status (EOL) nähert. Sie sollten Ihre Nutzung entsprechend planen. Weitere Informationen finden Sie im CentOS End-of-Life-Leitfaden.

In diesem Artikel werden einige der Optionen für externen Dateispeicher bei Verwendung von Azure Lab Services behandelt. Azure Files bietet vollständig verwaltete Dateifreigaben in der Cloud, auf die über SMB 2.1. und SMB 3.0 zugegriffen werden kann. Eine Azure Files-Freigabe kann entweder öffentlich oder privat innerhalb eines virtuellen Netzwerks verbunden werden. Sie können die Freigabe auch so konfigurieren, dass die Active Directory-Anmeldeinformationen von Lab-Benutzern und -Benutzerinnen zum Herstellen einer Verbindung mit der Dateifreigabe verwendet werden. Wenn Sie auf einem Linux-Computer arbeiten, können Sie auch Azure NetApp Files mit NFS-Volumes für externen Dateispeicher mit Azure Lab Services verwenden.

Zu verwendende Lösung

Die folgende Tabelle enthält wichtige Überlegungen für jede externe Speicherlösung.

Lösung Wichtige Information
Azure Files-Freigabe mit öffentlichem Endpunkt
  • Jeder verfügt über Lese-/Schreibzugriff.
  • Es ist kein Peering virtueller Netzwerke erforderlich.
  • Zugriff für alle virtuellen Computer möglich, nicht nur für virtuelle Lab-Computer.
  • Bei Verwendung von Linux haben Lab-Benutzer und -Benutzerinnen Zugriff auf den Speicherkontoschlüssel.
Azure Files-Freigabe mit privatem Endpunkt
  • Jeder verfügt über Lese-/Schreibzugriff.
  • Peering virtueller Netzwerke ist erforderlich.
  • Zugriff nur für VMs im selben Netzwerk (oder Peernetzwerk) wie das Speicherkonto möglich.
  • Bei Verwendung von Linux haben Lab-Benutzer und -Benutzerinnen Zugriff auf den Speicherkontoschlüssel.
Azure NetApp Files mit NFS-Volumes
  • Entweder Lese- oder Lese-/Schreibzugriff kann für Volumes festgelegt werden.
  • Berechtigungen werden mithilfe der IP-Adresse der VM des Labs festgelegt.
  • Peering virtueller Netzwerke ist erforderlich.
  • Sie müssen sich möglicherweise für die Verwendung des Azure NetApp Files-Diensts registrieren.
  • Nur Linux.

Die Kosten für die Verwendung von externem Speicher sind nicht in den Kosten für die Verwendung von Azure Lab Services enthalten. Weitere Informationen zu den Preisen finden Sie unter Azure Files – Preise und Azure NetApp Files – Preise.

Azure Files-Freigabe

Der Zugriff auf Azure Files-Freigaben erfolgt über einen öffentlichen oder privaten Endpunkt. Sie verwenden den Speicherkontoschlüssel als Kennwort, um die Freigaben in eine VM einzubinden. Bei diesem Ansatz besitzt jeder Lese-/Schreibzugriff auf die Dateifreigabe.

Standardmäßig können Standarddateifreigaben einen Umfang von bis zu 5 TiB haben. Informationen zur Erstellung von Dateifreigaben mit einem Umfang von bis zu 100 TiB finden Sie unter Erstellen einer Azure-Dateifreigabe.

Überlegungen zur Verwendung eines öffentlichen Endpunkts

  • Das virtuelle Netzwerk für das Speicherkonto muss nicht mit dem virtuellen Labnetzwerk verbunden werden. Die Dateifreigabe kann jederzeit vor der Veröffentlichung der VM-Vorlage erstellt werden.
  • Der Zugriff auf die Dateifreigabe kann von jedem beliebigen Computer aus erfolgen, wenn ein Benutzer über den Speicherkontoschlüssel verfügt.
  • Linux Lab-Benutzer und -Benutzerinnen können den Speicherkontoschlüssel sehen. Anmeldeinformationen für das Einbinden einer Azure Files-Freigabe werden auf Linux-VMs in {file-share-name}.cred gespeichert und können von sudo gelesen werden. Da Lab-Benutzer und -Benutzerinnen standardmäßig sudo-Zugriff auf Azure Lab Services-VMs erhalten, können Sie den Speicherkontoschlüssel lesen. Wenn der Endpunkt des Speicherkontos öffentlich ist, können Lab-Benutzer und -Benutzerinnen Zugriff auf die Dateifreigabe außerhalb Ihrer Lab-VM erhalten. Erwägen Sie, den Speicherkontoschlüssel im Anschluss an das Ende des Kurses zu rotieren oder private Dateifreigaben zu verwenden.

Überlegungen zur Verwendung eines privaten Endpunkts

  • Dieser Ansatz erfordert, dass das virtuelle Netzwerk der Dateifreigabe mit dem Lab verbunden wird. Informationen zum Aktivieren erweiterter Netzwerke für Labs finden Sie unter Herstellen einer Verbindung mit Ihrem Netzwerk in Azure Lab Services. Die VNet-Einschleusung muss beim Erstellen eines Labplans erfolgen.
  • Der Zugriff ist auf Datenverkehr beschränkt, der aus dem privaten Netzwerk stammt, und es kann den nicht über das öffentliche Internet zugegriffen werden. Nur VMs im privaten virtuellen Netzwerk, VMs in einem Netzwerk, das mit dem privaten virtuellen Netzwerk gepeert ist, oder Computer, die mit einem VPN für das private Netzwerk verbunden sind, können auf die Dateifreigabe zugreifen.
  • Linux Lab-Benutzer und -Benutzerinnen können den Speicherkontoschlüssel sehen. Anmeldeinformationen für das Einbinden einer Azure Files-Freigabe werden auf Linux-VMs in {file-share-name}.cred gespeichert und können von sudo gelesen werden. Da Lab-Benutzer und -Benutzerinnen standardmäßig sudo-Zugriff auf Azure Lab Services-VMs erhalten, können Sie den Speicherkontoschlüssel lesen. Erwägen Sie, den Speicherkontoschlüssel im Anschluss an das Ende des Kurses zu rotieren.

Herstellen einer Verbindung zwischen einer Lab-VM und einer Azure-Dateifreigabe

Führen Sie die folgenden Schritte aus, um eine mit einer Azure-Dateifreigabe verbundene VM zu erstellen.

  1. Erstellen Sie ein Azure Storage-Konto. Wählen Sie auf der Seite Verbindungsmethode die Option öffentlicher Endpunkt oder privater Endpunkt aus.

  2. Wenn Sie die private Methode ausgewählt haben, erstellen Sie einen privaten Endpunkt, damit aus dem virtuellen Netzwerk auf die Dateifreigaben zugegriffen werden kann.

  3. Erstellen Sie eine Azure-Dateifreigabe. Die Dateifreigabe ist bei Verwendung eines öffentlichen Endpunkts über den öffentlichen Hostnamen des Speicherkontos erreichbar. Die Dateifreigabe ist bei Verwendung eines privaten Endpunkts über die private IP-Adresse erreichbar.

  4. Binden Sie die Azure-Dateifreigabe in die Vorlage für virtuelle Computer ein:

  5. Veröffentlichen Sie die Vorlage für virtuelle Computer.

Wichtig

Stellen Sie sicher, dass Windows Defender Firewall die ausgehende SMB-Verbindung über Port 445 nicht blockiert. SMB ist standardmäßig für Azure-VMs zulässig.

Verwenden von Azure Files mit Linux

Wenn Sie die Standardanweisungen zum Einbinden einer Azure Files-Freigabe verwenden, scheint die Dateifreigabe auf Lab-VMs zu verschwinden, nachdem die Vorlage veröffentlicht wurde. Mit dem folgenden geänderten Skript wird dieses Problem behoben.

Für Dateifreigaben mit einem öffentlichen Endpunkt:

#!/bin/bash

# Assign variables values for your storage account and file share
STORAGE_ACCOUNT_NAME=""
STORAGE_ACCOUNT_KEY=""
FILESHARE_NAME=""

# Do not use 'mnt' for mount directory.
# Using ‘mnt’ will cause issues on lab VMs.
MOUNT_DIRECTORY="prm-mnt" 

sudo mkdir /$MOUNT_DIRECTORY/$FILESHARE_NAME
if [ ! -d "/etc/smbcredentials" ]; then
    sudo mkdir /etc/smbcredentials
fi
if [ ! -f "/etc/smbcredentials/$STORAGE_ACCOUNT_NAME.cred" ]; then
    sudo bash -c "echo ""username=$STORAGE_ACCOUNT_NAME"" >> /etc/smbcredentials/$STORAGE_ACCOUNT_NAME.cred"
    sudo bash -c "echo ""password=$STORAGE_ACCOUNT_KEY"" >> /etc/smbcredentials/$STORAGE_ACCOUNT_NAME.cred"
fi
sudo chmod 600 /etc/smbcredentials/$STORAGE_ACCOUNT_NAME.cred

sudo bash -c "echo ""//$STORAGE_ACCOUNT_NAME.file.core.windows.net/$FILESHARE_NAME /$MOUNT_DIRECTORY/$FILESHARE_NAME cifs nofail,vers=3.0,credentials=/etc/smbcredentials/$STORAGE_ACCOUNT_NAME.cred,dir_mode=0777,file_mode=0777,serverino"" >> /etc/fstab"
sudo mount -t cifs //$STORAGE_ACCOUNT_NAME.file.core.windows.net/$FILESHARE_NAME /$MOUNT_DIRECTORY/$FILESHARE_NAME -o vers=3.0,credentials=/etc/smbcredentials/$STORAGE_ACCOUNT_NAME.cred,dir_mode=0777,file_mode=0777,serverino

Für Dateifreigaben mit einem privaten Endpunkt:

#!/bin/bash

# Assign variables values for your storage account and file share
STORAGE_ACCOUNT_NAME=""
STORAGE_ACCOUNT_IP=""
STORAGE_ACCOUNT_KEY=""
FILESHARE_NAME=""

# Do not use 'mnt' for mount directory.
# Using ‘mnt’ will cause issues on lab VMs.
MOUNT_DIRECTORY="prm-mnt" 

sudo mkdir /$MOUNT_DIRECTORY/$FILESHARE_NAME
if [ ! -d "/etc/smbcredentials" ]; then
    sudo mkdir /etc/smbcredentials
fi
if [ ! -f "/etc/smbcredentials/$STORAGE_ACCOUNT_NAME.cred" ]; then
    sudo bash -c "echo ""username=$STORAGE_ACCOUNT_NAME"" >> /etc/smbcredentials/$STORAGE_ACCOUNT_NAME.cred"
    sudo bash -c "echo ""password=$STORAGE_ACCOUNT_KEY"" >> /etc/smbcredentials/$STORAGE_ACCOUNT_NAME.cred"
fi
sudo chmod 600 /etc/smbcredentials/$storage_account_name.cred

sudo bash -c "echo ""//$STORAGE_ACCOUNT_IP/$FILESHARE_NAME /$MOUNT_DIRECTORY/$fileshare_name cifs nofail,vers=3.0,credentials=/etc/smbcredentials/$STORAGE_ACCOUNT_NAME.cred,dir_mode=0777,file_mode=0777,serverino"" >> /etc/fstab"
sudo mount -t cifs //$STORAGE_ACCOUNT_NAME.file.core.windows.net/$FILESHARE_NAME /$MOUNT_DIRECTORY/$FILESHARE_NAME -o vers=3.0,credentials=/etc/smbcredentials/$STORAGE_ACCOUNT_NAME.cred,dir_mode=0777,file_mode=0777,serverino

Wenn die Vorlagen-VM, die die Azure Files-Freigabe in das Verzeichnis /mnt einbindet, bereits veröffentlicht ist, können Lab-Benutzer und -Benutzerinnen eine der folgenden Aktionen ausführen:

  • Verschieben Sie die Anweisung zum Einbinden von /mnt den Anfang der Datei /etc/fstab.
  • Ändern Sie die Anweisung zum Einbinden von /mnt/{file-share-name} in ein anderes Verzeichnis, z. B. in /prm-mnt/{file-share-name}.

Lab-Benutzer und -Benutzerinnen sollten mount -a ausführen, um Verzeichnisse erneut einzubinden.

Allgemeinere Informationen finden Sie unter Verwenden von Azure Files mit Linux.

Azure NetApp Files mit NFS-Volumes

Azure NetApp Files ist ein leistungsstarker Dateispeicherdienst auf Unternehmensniveau.

  • Festlegen von Zugriffsrichtlinien pro Volume
  • Berechtigungsrichtlinien sind für jedes Volume IP-basiert.
  • Wenn Lab-Benutzer und -Benutzerinnen ein eigenes Volume benötigen, auf das andere nicht zugreifen können, müssen Sie nach der Veröffentlichung des Labs Berechtigungsrichtlinien zuweisen.
  • Azure Lab Services unterstützt zum Herstellen einer Verbindung mit Azure NetApp Files nur Linux-basierte Lab-VMs
  • Das virtuelle Netzwerk für den Azure NetApp Files-Kapazitätspool muss mit dem Lab verbunden werden. Informationen zum Aktivieren erweiterter Netzwerke für Labs finden Sie unter Herstellen einer Verbindung mit Ihrem Netzwerk in Azure Lab Services. Die VNet-Einschleusung muss beim Erstellen eines Labplans erfolgen.

Führen Sie die folgenden Schritte aus, um eine Azure NetApp Files-Freigabe in Azure Lab Services zu verwenden:

  1. Um einen Azure NetApp Files-Kapazitätspool und mindestens ein NFS-Volume zu erstellen, folgen Sie den Schritten unter Einrichten von Azure NetApp Files und NFS-Volumes.

    Informationen zu Servicelevels finden Sie unter Servicelevels für Azure NetApp Files.

  2. Herstellen einer Verbindung mit Ihrem Netzwerk in Azure Lab Services

  3. Erstellen des Labs

  4. Installieren Sie auf der Vorlagen-VM die erforderlichen Komponenten, um NFS-Dateifreigaben zu verwenden.

    • Ubuntu:

      sudo apt update
      sudo apt install nfs-common
      
    • CentOS:

      sudo yum install nfs-utils
      
  5. Speichern Sie auf der Vorlagen-VM das folgende Skript als mount_fileshare.sh, um die Azure NetApp Files-Freigabe einzubinden.

    Weisen Sie der Variablen capacity_pool_ipaddress die IP-Adresse des Einbindungsziels für den Kapazitätspool zu. Sehen Sie in den Anweisungen zum Einbinden für das Volume nach, um den entsprechenden Wert zu ermitteln. Das Skript erwartet den Pfadnamen des Azure NetApp Files-Volumes.

    Führen Sie chmod u+x mount_fileshare.sh aus, um sicherzustellen, dass Benutzer das Skript ausführen können.

    #!/bin/bash
    
    if [ $# -eq 0 ];  then
        echo "Must provide volume name."
        exit 1
    fi
    
    VOLUME_NAME=$1
    CAPACITY_POOL_IP_ADDR=0.0.0.0 # IP address of capacity pool
    
    # Do not use 'mnt' for mount directory.
    # Using ‘mnt’ might cause issues on lab VMs.
    MOUNT_DIRECTORY="prm-mnt" 
    
    sudo mkdir -p /$MOUNT_DIRECTORY
    sudo mkdir /$MOUNT_DIRECTORY/$FOLDER_NAME
    
    sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,vers=3,tcp $CAPACITY_POOL_IP_ADDR:/$VOLUME_NAME /$MOUNT_DIRECTORY/$VOLUME_NAME
    sudo bash -c "echo ""$CAPACITY_POOL_IP_ADDR:/$VOLUME_NAME /$MOUNT_DIRECTORY/$VOLUME_NAME nfs bg,rw,hard,noatime,nolock,rsize=65536,wsize=65536,vers=3,tcp,_netdev 0 0"" >> /etc/fstab"
    
  6. Wenn alle Lab-Benutzer und -Benutzerinnen gemeinsam Zugriff auf dasselbe Azure NetApp Files-Volume haben, können Sie das Skript mount_fileshare.sh vor der Veröffentlichung auf dem Vorlagencomputer ausführen. Wenn Lab-Benutzer und -Benutzerinnen jeweils ein eigenes Volume erhalten, speichern Sie das Skript, damit es später individuell ausgeführt werden kann.

  7. Veröffentlichen Sie die Vorlage für virtuelle Computer.

  8. Konfigurieren Sie die Richtlinie für die Dateifreigabe.

    Die Exportrichtlinie kann zulassen, dass ein einzelner virtueller Computer oder mehrere VMs auf ein Volume zugreifen können. Sie können schreibgeschützten Zugriff oder Lese-/Schreibzugriff gewähren.

  9. Lab-Benutzer und -Benutzerinnen müssen Ihre VMs starten und das Skript ausführen, um die Dateifreigabe einzubinden. Sie müssen das Skript nur einmal ausführen.

    Der Befehl sieht wie folgt aus: ./mount_fileshare.sh myvolumename.

Nächste Schritte