Korzystanie z zewnętrznego magazynu plików w usługach Azure Lab Services

Uwaga

W tym artykule odwołuje się do systemu CentOS — dystrybucji systemu Linux, która zbliża się do stanu zakończenia życia (EOL). Rozważ odpowiednie użycie i planowanie. Aby uzyskać więcej informacji, zobacz wskazówki dotyczące zakończenia życia systemu CentOS.

W tym artykule opisano niektóre opcje korzystania z zewnętrznego magazynu plików w usługach Azure Lab Services. Usługa Azure Files oferuje w pełni zarządzane udziały plików w chmurze, dostępne za pośrednictwem protokołu SMB 2.1 i SMB 3.0. Udział usługi Azure Files można połączyć publicznie lub prywatnie w sieci wirtualnej. Można również skonfigurować udział tak, aby używał poświadczeń usługi Active Directory użytkownika laboratorium do nawiązywania połączenia z udziałem plików. Jeśli korzystasz z maszyny z systemem Linux, możesz również użyć usługi Azure NetApp Files z woluminami NFS na potrzeby zewnętrznego magazynu plików w usłudze Azure Lab Services.

Którego rozwiązania należy użyć

W poniższej tabeli wymieniono ważne zagadnienia dotyczące każdego rozwiązania magazynu zewnętrznego.

Rozwiązanie Ważne, aby wiedzieć
Udostępnianie usługi Azure Files z publicznym punktem końcowym
  • Każdy ma dostęp do odczytu/zapisu.
  • Komunikacja równorzędna sieci wirtualnych nie jest wymagana.
  • Dostępne dla wszystkich maszyn wirtualnych, a nie tylko maszyn wirtualnych laboratorium.
  • Jeśli używasz systemu Linux, użytkownicy laboratorium mają dostęp do klucza konta magazynu.
Udostępnianie usługi Azure Files z prywatnym punktem końcowym
  • Każdy ma dostęp do odczytu/zapisu.
  • Komunikacja równorzędna sieci wirtualnych jest wymagana.
  • Dostępne tylko dla maszyn wirtualnych w tej samej sieci (lub w sieci równorzędnej) co konto magazynu.
  • Jeśli używasz systemu Linux, użytkownicy laboratorium mają dostęp do klucza konta magazynu.
Usługa Azure NetApp Files z woluminami NFS
  • Dostęp do odczytu lub zapisu można ustawić dla woluminów.
  • Uprawnienia są ustawiane przy użyciu adresu IP maszyny wirtualnej laboratorium.
  • Komunikacja równorzędna sieci wirtualnych jest wymagana.
  • Może być konieczne zarejestrowanie się w celu korzystania z usługi Azure NetApp Files.
  • Tylko system Linux.

Koszt korzystania z magazynu zewnętrznego nie jest uwzględniany w kosztach korzystania z usług Azure Lab Services. Aby uzyskać więcej informacji na temat cen, zobacz Cennik usługi Azure Files i Cennik usługi Azure NetApp Files.

Udział usługi Azure Files

Dostęp do udziałów usługi Azure Files jest uzyskiwany przy użyciu publicznego lub prywatnego punktu końcowego. Udziały można zainstalować na maszynie wirtualnej przy użyciu klucza konta magazynu jako hasła. Dzięki takiemu podejściu wszyscy mają dostęp do odczytu i zapisu do udziału plików.

Domyślnie standardowe udziały plików mogą obejmować maksymalnie 5 TiB. Zobacz Tworzenie udziału plików platformy Azure, aby uzyskać informacje na temat tworzenia udziałów plików obejmujących maksymalnie 100 TiB.

Zagadnienia dotyczące korzystania z publicznego punktu końcowego

  • Sieć wirtualna konta magazynu nie musi być połączona z siecią wirtualną laboratorium. Udział plików można utworzyć w dowolnym momencie przed opublikowaniem maszyny wirtualnej szablonu.
  • Dostęp do udziału plików można uzyskać z dowolnego komputera, jeśli użytkownik ma klucz konta magazynu.
  • Użytkownicy laboratorium systemu Linux widzą klucz konta magazynu. Poświadczenia instalowania udziału usługi Azure Files są przechowywane na {file-share-name}.cred maszynach wirtualnych z systemem Linux i są odczytywane przez program sudo. Ponieważ użytkownicy laboratorium domyślnie otrzymują dostęp sudo na maszynach wirtualnych usługi Azure Lab Services, mogą odczytać klucz konta magazynu. Jeśli punkt końcowy konta magazynu jest publiczny, użytkownicy laboratorium mogą uzyskać dostęp do udziału plików poza maszyną wirtualną laboratorium. Rozważ rotację klucza konta magazynu po zakończeniu klasy lub przy użyciu prywatnych udziałów plików.

Zagadnienia dotyczące korzystania z prywatnego punktu końcowego

  • Takie podejście wymaga połączenia sieci wirtualnej udziału plików z laboratorium. Aby włączyć zaawansowane sieci dla laboratoriów, zobacz Połączenie do sieci wirtualnej w usłudze Azure Lab Services przy użyciu iniekcji sieci wirtualnej. Podczas tworzenia planu laboratorium należy wykonać iniekcję sieci wirtualnej.
  • Dostęp jest ograniczony do ruchu pochodzącego z sieci prywatnej i nie można uzyskać do tego dostępu za pośrednictwem publicznego Internetu. Tylko maszyny wirtualne w prywatnej sieci wirtualnej, maszyny wirtualne w sieci równorzędnej z prywatną siecią wirtualną lub maszyny połączone z siecią VPN dla sieci prywatnej mogą uzyskiwać dostęp do udziału plików.
  • Użytkownicy laboratorium systemu Linux widzą klucz konta magazynu. Poświadczenia instalowania udziału usługi Azure Files są przechowywane na {file-share-name}.cred maszynach wirtualnych z systemem Linux i są odczytywane przez program sudo. Ponieważ użytkownicy laboratorium domyślnie otrzymują dostęp sudo na maszynach wirtualnych usługi Azure Lab Services, mogą odczytać klucz konta magazynu. Rozważ rotację klucza konta magazynu po zakończeniu klasy.

Połączenie maszyny wirtualnej laboratorium do udziału plików platformy Azure

Wykonaj następujące kroki, aby utworzyć maszynę wirtualną połączoną z udziałem plików platformy Azure.

  1. Utwórz konto usługi Azure Storage. Na stronie metody Połączenie ivity wybierz publiczny punkt końcowy lub prywatny punkt końcowy.

  2. Jeśli wybrano metodę prywatną , utwórz prywatny punkt końcowy , aby udziały plików były dostępne z sieci wirtualnej.

  3. Utwórz udział plików platformy Azure. Udział plików jest osiągalny przez publiczną nazwę hosta konta magazynu, jeśli używasz publicznego punktu końcowego. Udział plików jest osiągalny przez prywatny adres IP, jeśli korzystasz z prywatnego punktu końcowego.

  4. Zainstaluj udział plików platformy Azure na maszynie wirtualnej szablonu:

  5. Publikowanie maszyny wirtualnej szablonu.

Ważne

Upewnij się, że zapora Windows Defender nie blokuje wychodzącego połączenia SMB za pośrednictwem portu 445. Domyślnie protokół SMB jest dozwolony dla maszyn wirtualnych platformy Azure.

Korzystanie z usługi Azure Files w systemie Linux

Jeśli użyjesz domyślnych instrukcji instalacji udziału usługi Azure Files, udział plików prawdopodobnie zniknie na maszynach wirtualnych laboratorium po opublikowaniu szablonu. Poniższy zmodyfikowany skrypt rozwiązuje ten problem.

W przypadku udziału plików z publicznym punktem końcowym:

#!/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

W przypadku udziału plików z prywatnym punktem końcowym:

#!/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

Jeśli maszyna wirtualna szablonu, która instaluje udział usługi Azure Files w /mnt katalogu, jest już opublikowana, użytkownik laboratorium może:

  • Przenieś instrukcję, aby zainstalować /mnt na początku /etc/fstab pliku.
  • Zmodyfikuj instrukcję, aby zainstalować /mnt/{file-share-name} plik w innym katalogu, na przykład /prm-mnt/{file-share-name}.

Użytkownicy laboratorium powinni uruchomić polecenie mount -a , aby ponownie zainstalować katalogi.

Aby uzyskać więcej ogólnych informacji, zobacz Używanie usługi Azure Files z systemem Linux.

Usługa Azure NetApp Files z woluminami NFS

Azure NetApp Files to usługa magazynu plików klasy korporacyjnej o wysokiej wydajności.

  • Ustawianie zasad dostępu dla poszczególnych woluminów
  • Zasady uprawnień są oparte na adresach IP dla każdego woluminu
  • Jeśli użytkownicy laboratorium potrzebują własnego woluminu, do którego inni użytkownicy laboratorium nie mają dostępu, zasady uprawnień muszą zostać przypisane po opublikowaniu laboratorium
  • Usługa Azure Lab Services obsługuje tylko maszyny wirtualne laboratorium oparte na systemie Linux w celu nawiązania połączenia z usługą Azure NetApp Files
  • Sieć wirtualna dla puli pojemności usługi Azure NetApp Files musi być połączona z laboratorium. Aby włączyć zaawansowane sieci dla laboratoriów, zobacz Połączenie do sieci wirtualnej w usłudze Azure Lab Services przy użyciu iniekcji sieci wirtualnej. Podczas tworzenia planu laboratorium należy wykonać iniekcję sieci wirtualnej.

Aby użyć udziału usługi Azure NetApp Files w usługach Azure Lab Services:

  1. Utwórz pulę pojemności usługi Azure NetApp Files i co najmniej jeden wolumin NFS, wykonując kroki opisane w temacie Konfigurowanie woluminu usługi Azure NetApp Files i NFS.

    Aby uzyskać informacje na temat poziomów usług, zobacz Poziomy usług dla usługi Azure NetApp Files.

  2. Połączenie do sieci wirtualnej w usłudze Azure Lab Services

  3. Utwórz laboratorium.

  4. Na maszynie wirtualnej szablonu zainstaluj składniki niezbędne do korzystania z udziałów plików NFS.

    • Ubuntu:

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

      sudo yum install nfs-utils
      
  5. Na maszynie wirtualnej szablonu zapisz następujący skrypt, mount_fileshare.sh aby zainstalować udział usługi Azure NetApp Files.

    Przypisz zmienną capacity_pool_ipaddress docelowy adres IP instalacji dla puli pojemności. Uzyskaj instrukcje instalacji dla woluminu, aby znaleźć odpowiednią wartość. Skrypt oczekuje nazwy ścieżki woluminu usługi Azure NetApp Files.

    Aby upewnić się, że użytkownicy mogą uruchomić skrypt, uruchom polecenie chmod u+x mount_fileshare.sh.

    #!/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. Jeśli wszyscy użytkownicy laboratorium udostępniają dostęp do tego samego woluminu usługi Azure NetApp Files, możesz uruchomić mount_fileshare.sh skrypt na maszynie szablonu przed opublikowaniem. Jeśli użytkownicy laboratorium otrzymają własny wolumin, zapisz skrypt do uruchomienia później przez użytkownika laboratorium.

  7. Publikowanie maszyny wirtualnej szablonu.

  8. Skonfiguruj zasady dla udziału plików.

    Zasady eksportu mogą zezwalać na dostęp do woluminu jednej maszyny wirtualnej lub wielu maszyn wirtualnych. Możesz udzielić dostępu tylko do odczytu lub odczytu/zapisu.

  9. Użytkownicy laboratorium muszą uruchomić maszynę wirtualną i uruchomić skrypt, aby zainstalować udział plików. Muszą uruchamiać skrypt tylko raz.

    Polecenie wygląda następująco: ./mount_fileshare.sh myvolumename.

Następne kroki