Устранение неполадок с подключением и доступом Файлы Azure (SMB)

В этой статье перечислены распространенные проблемы, которые могут возникнуть при попытке подключиться к файловым ресурсам Azure по протоколу Server Message Block (SMB) и получить к ним доступ с компьютеров на Windows или Linux-клиентов. Кроме того, здесь представлены возможные причины этих проблем и способы их устранения.

Примечание.

Статья была полезной? Ваши входные данные важны для нас. Нажмите кнопку "Отзывы" на этой странице, чтобы сообщить нам, насколько хорошо эта статья работала для вас или как мы можем улучшить ее.

Внимание

Эта статья относится только к ресурсам общего доступа SMB. Для получения подробной информации о ресурсах NFS см. раздел Устранение неполадок ресурсов NFS в Azure.

Применяется к

Тип общей папки Малый и средний бизнес (SMB) Сетевая файловая система (NFS)
Стандартные общие папки (GPv2), LRS/ZRS
Стандартные общие папки (GPv2), GRS/GZRS
Премиум файловые хранилища (FileStorage), LRS/ZRS

Не удается подключиться к файловому ресурсу Azure или смонтировать его.

Выберите вкладку Windows или Linux в зависимости от клиентской операционной системы, которую вы используете для доступа к общим папкам Azure.

При попытке подключиться к общей папке Azure в Windows могут появиться следующие сообщения об ошибках.

Ошибка 5 при подключении общей папки Azure

  • "Произошла системная ошибка 5. Отказано в доступе".

Причина 1: незашифрованный коммуникационный канал

Для обеспечения безопасности подключения к общим папкам Azure блокируются, если канал связи не зашифрован, и попытка подключения не выполняется из того же центра обработки данных, где находятся Azure общие папки. Если в учетной записи хранения включен обязательный параметр безопасной передачи или параметр "Требовать шифрование при передаче" для SMB , незашифрованные подключения в одном центре обработки данных также блокируются. Зашифрованный канал связи предоставляется только в том случае, если клиентская ОС пользователя поддерживает шифрование SMB.

Windows 8, Windows Server 2012 и более поздние версии каждой из этих систем обрабатывают запросы, включающие SMB 3.x, который поддерживает шифрование.

Решение по причине проблемы 1

  1. Подключитесь из клиента, поддерживающего шифрование SMB (Windows 8/Windows Server 2012 или более поздней версии).
  2. Подключитесь из виртуальной машины в том же центре обработки данных, что и учетная запись хранения Azure, используемая для общей папки Azure.
  3. Если клиент не поддерживает шифрование SMB, убедитесь, что в учетной записи хранения отключены необходимые параметры безопасной передачи и обязательное шифрование при передаче для параметра SMB .

Причина 2: правила виртуальной сети или брандмауэра включены для учетной записи хранилища

Трафик запрещается, если для учетной записи хранения настроены правила виртуальной сети и брандмауэра, за исключением случаев, когда IP-адрес клиента или виртуальная сеть находятся в разрешенном списке.

Решение для второй причины

Убедитесь, что правила виртуальной сети и брандмауэра надлежащим образом настроены для учетной записи хранения. Чтобы проверить, вызывает ли проблема виртуальная сеть или правила брандмауэра, временно измените параметр учетной записи хранения, чтобы разрешить доступ из всех сетей. Чтобы узнать больше, см. статью Настройка брандмауэров и виртуальных сетей служба хранилища Azure.

Причина 3: неправильные разрешения на уровне общего ресурса при использовании проверки подлинности на основе удостоверений

Если пользователи получают доступ к общей папке Azure с помощью проверки подлинности на основе удостоверений, то, в случае неверных разрешений на уровне общего доступа, возникает ошибка доступа с сообщением "Доступ запрещен".

Решение для причины 3

Убедитесь, что разрешения на уровне общего ресурса настроены правильно. См Назначение разрешений на уровне общего ресурса.

Ошибка 53, ошибка 67 или ошибка 87 при подключении или отключении общей папки Azure

При попытке подключить общую папку из локального или другого центра обработки данных могут возникнуть следующие ошибки:

  • "Произошла системная ошибка 53. Сетевой путь не найден".
  • "Произошла системная ошибка 67. Не найдено сетевое имя".
  • "Произошла системная ошибка 87. Неправильный параметр".

Причина 1: порт 445 заблокирован

Системная ошибка 53 или системная ошибка 67 может возникать, если порт 445 исходящих подключений к центру обработки данных Файлы Azure заблокирован. Чтобы просмотреть сводку поставщиков служб, которые разрешают или запрещают доступ через порт 445, перейдите в TechNet.

Чтобы проверить, блокирует ли брандмауэр или ISP порт 445, используйте средство AzFileDiagnostics или командлет Test-NetConnection.

Чтобы использовать командлет Test-NetConnection, необходимо установить модуль Azure PowerShell. Дополнительные сведения см. в модуле Install Azure PowerShell. Не забудьте заменить <your-storage-account-name> и <your-resource-group-name> соответствующими именами для вашей учетной записи хранения.

$resourceGroupName = "<your-resource-group-name>"
$storageAccountName = "<your-storage-account-name>"

# This command requires you to be logged into your Azure account and set the subscription your storage account is under, run:
# Connect-AzAccount -SubscriptionId 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
# if you haven't already logged in.
$storageAccount = Get-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName

# The ComputerName, or host, is <storage-account>.file.core.windows.net for Azure Public Regions.
# $storageAccount.Context.FileEndpoint is used because non-Public Azure regions, such as sovereign clouds
# or Azure Stack deployments, will have different hosts for Azure file shares (and other storage resources).
Test-NetConnection -ComputerName ([System.Uri]::new($storageAccount.Context.FileEndPoint).Host) -Port 445

Если установка прошла успешно, отобразятся следующие выходные данные.

ComputerName     : <your-storage-account-name>
RemoteAddress    : <storage-account-ip-address>
RemotePort       : 445
InterfaceAlias   : <your-network-interface>
SourceAddress    : <your-ip-address>
TcpTestSucceeded : True

Примечание.

Эта команда возвращает текущий IP-адрес учетной записи хранения. Не гарантируется, что IP-адрес будет постоянным. Он может измениться в любое время. Не следует жестко задавать этот IP-адрес в скриптах или в конфигурации брандмауэра.

Решения для устранения причины 1

Solution 1 — используйте Синхронизация файлов Azure в качестве конечной точки QUIC вы можете использовать Синхронизация файлов Azure в качестве обходного решения для доступа к Файлы Azure у клиентов, у которых заблокирован порт 445. Хотя Файлы Azure не поддерживает SMB через QUIC, Windows Server 2022 Azure Edition поддерживает протокол QUIC. Вы можете создать упрощенный кэш общих папок Azure на виртуальной машине Windows Server 2022 Azure Edition с помощью Синхронизация файлов Azure. Эта конфигурация использует порт 443, который широко открыт для поддержки HTTPS, а не порта 445. Дополнительные сведения об этом параметре см. в разделе SMB over QUIC с Синхронизация файлов Azure.

Решение 2 — используйте VPN или ExpressRoute Настройте виртуальную частную сеть (VPN) или ExpressRoute, чтобы соединить вашу локальную среду с учетной записью хранения Azure. С Файлы Azure, доступной во внутренней сети через приватные конечные точки, трафик будет проходить через безопасный туннель, а не через Интернет. Выполните инструкции instructions, чтобы настроить VPN для доступа к Файлы Azure из Windows.

Решение 3 — разблокируйте порт 445 при содействии вашего интернет-провайдера или администратора ИТ. Обратитесь к ИТ-отделу или интернет-провайдеру, чтобы открыть исходящий порт 445 для IP-диапазонов Azure.

Solution 4 — используйте средства на основе REST API, такие как Обозреватель службы хранилища или PowerShell Файлы Azure также поддерживает REST в дополнение к SMB. Доступ к REST осуществляется через порт 443 (стандартный протокол TCP). Существуют различные средства, написанные с помощью REST API, которые обеспечивают широкий интерфейс пользовательского интерфейса. Обозреватель службы хранилища является одним из них. Скачайте и установите Обозреватель службы хранилища и подключитесь к файловому ресурсу на базе Файлы Azure. Вы также можете использовать PowerShell , которая также использует REST API.

Причина 2: включен NTLMv1

Системная ошибка 53 или системная ошибка 87 может произойти, если на клиенте включена поддержка NTLMv1. Файлы Azure поддерживает только проверку подлинности NTLMv2. Наличие активированного протокола NTLMv1 делает клиент менее безопасным. Поэтому обмен данными блокируется для Файлы Azure.

Чтобы определить, является ли это причиной ошибки, убедитесь, что в следующем подразделе реестра не задано значение меньше 3:

HKLM\SYSTEM\CurrentControlSet\Control\Lsa > LmCompatibilityLevel

Дополнительные сведения см. в разделе LmCompatibilityLevel в TechNet.

Решение для второй причины

Верните параметру LmCompatibilityLevel значение по умолчанию (3) в следующем подразделе реестра:

HKLM\SYSTEM\CurrentControlSet\Control\Lsa

Причина 3. Имя общей папки не существует или в имени общей папки опечатка

Ошибка 67 может возникать, если учетная запись хранения существует, а конечная точка SMB доступна, но пространство имен SMB или путь к общей папке не могут быть разрешены. Это не проблема с DNS, проблема проверки подлинности или проблема с разрешениями.

Решение для причины 3

Дважды проверьте имя общей папки. Названия файловых ресурсов Azure должны быть точными. Проверьте наличие дополнительных символов, отсутствующих символов или неправильного имени общего ресурса, скопированного на портале Azure. Повторите подключение общего ресурса.

Ошибка 64 при подключении файлового хранилища Azure

При подключении общей папки из локального или другого центра обработки данных может появиться следующая ошибка:

Произошла системная ошибка 64. Указанное сетевое имя более недоступно.

Причина

Эта проблема, скорее всего, вызвана прокси-сервером или другим типом устройства преобразования сетевых адресов (NAT) в пути данных, который блокирует подключение для сопоставления Azure общей папки. В этом случае командлет Test-NetConnection PowerShell по-прежнему может проверить подключение через порт 445.

Эта проблема возникает, когда Active Directory компьютер или учетная запись пользователя, соответствующая учетной записи хранения Azure, на котором размещены профили пользователей FSLogix, не могут обрабатывать проверки подлинности Kerberos. Основные причины могут включать неправильные изменения атрибута msDS-SupportedEncryptionTypes или смену ключей доступа учетной записи хранения без обновления новых ключей в учетной записи Active Directory.

Решение

Чтобы устранить эту проблему, воспроизводите ее и соберите трассировку сети, чтобы получить дополнительные сведения о источнике ошибки. В большинстве случаев необходимо работать с администратором сети или брандмауэра, чтобы разрешить содержимому передаваться через сетевое устройство.

Ошибки Kerberos можно увидеть в трассировке сети, например потоки, помеченные как ошибка KRB в netsh трассировке. Чтобы устранить их, включите аутентификацию службы доменных услуг Active Directory для общих папок Azure, чтобы правильно настроить параметры проверки подлинности.

Сбой с кодом ошибки 0x800704b3

При попытке подключить общую папку Azure вы получите следующую ошибку:

Код ошибки: 0x800704b3
Символическое имя: ERROR_NO_NET_OR_BAD_PATH
Описание ошибки: сетевой путь был введен неправильно, не существует, или поставщик сети в настоящее время недоступен. Пожалуйста, попробуйте ввести путь заново или обратитесь к системному администратору.

Причина

Эта ошибка может возникать, если какие-либо основные Windows сетевые службы отключены, так как любая служба, которая явно зависит от этих сетевых служб, не будет запущена.

Решение

Проверьте, находятся ли какие-либо из следующих служб в состоянии Stopped в виртуальной машине Windows:

  • Сетевые подключения
  • Служба списка сетей
  • Определение расположения сети
  • Служба интерфейса сетевого хранилища
  • DHCP-клиент
  • Вспомогательное приложение для NetBIOS TCP/IP
  • Рабочая станция

Если вы найдете какие-либо, запустите службу(и) и повторите попытку монтирования общего ресурса Azure.

Приложение или служба не могут получить доступ к подключенному Файлы Azure диску

Причина

Диски монтируются для каждого пользователя. Если приложение или служба запущены под учетной записью пользователя, отличной от учетной записи, подключенной к диску, приложение не увидит диск.

Решение

Используйте одно из следующих решений:

  • Используйте для подключения дисков учетную запись пользователя, содержащую это приложение. Можно использовать такой инструмент, как PsExec.

  • Передайте имя учетной записи хранения и ключ в параметры имени пользователя и пароля команды net use.

  • cmdkey Используйте команду, чтобы добавить учетные данные в Диспетчер учетных данных. Выполните это действие из командной строки в контексте учетной записи службы либо с помощью интерактивного входа, либо с помощью runas.

    cmdkey /add:<storage-account-name>.file.core.windows.net /user:AZURE\<storage-account-name> /pass:<storage-account-key>
    
  • Сопоставьте общий ресурс напрямую, не используя букву подключенного диска. Некоторые приложения могут неправильно подключиться к букве диска, поэтому использование полного пути UNC может быть более надежным:

    net use * \\storage-account-name.file.core.windows.net\share

После выполнения этих инструкций при выполнении команды net use для учетной записи системы или сети может появиться следующее сообщение об ошибке: "Произошла системная ошибка 1312. Указанный сеанс входа в систему не существует (A specified logon session does not exist). Возможно, это уже было завершено. Если появится эта ошибка, убедитесь, что имя пользователя, передаваемое в net use, включает сведения о домене (например: [storage account name].file.core.windows.net).

В "Мой компьютер" или "Этот компьютер" отсутствует папка с буквой диска

Если вы сопоставляете файловое хранилище Azure в качестве администратора с помощью команды net use, оно кажется отсутствует.

Причина

По умолчанию Проводник Windows не запускается от имени администратора. При запуске net use из командной строки с правами администратора сетевой диск сопоставляется от имени администратора. Так как сопоставленные диски ориентированы на пользователя, учетная запись пользователя, вошедшего в систему, не отображает диски, если они подключены в другой учетной записи пользователя.

Решение

Подключите сетевой ресурс из командной строки без прав администратора. Кроме того, вы можете следовать этой теме TechNet, чтобы настроить значение реестра.

Если учетная запись хранения содержит косую черту (/), то выполнение команды net use завершается сбоем

Причина

Команда net use интерпретирует слэш (/) как параметр командной строки. Если имя учетной записи пользователя начинается с косой черты, то сопоставление диска завершится сбоем.

Решение

Чтобы обойти эту проблему, выполните одно из следующих действий.

  • Выполните следующую команду PowerShell:

    New-SmbMapping -LocalPath y: -RemotePath \\server\share -UserName accountName -Password "password can contain / and \ etc"
    

    Из пакетного файла выполнить команду можно следующим образом.

    Echo new-smbMapping ... | powershell -command –

  • Обведите ключ в двойные кавычки, чтобы обойти эту проблему, за исключением случаев, когда косая черта является первым символом. Если это так, либо используйте интерактивный режим и вводите пароль отдельно, либо создайте новые ключи, которые не начинаются с косой черты.

Команда New-PSDrive завершается ошибкой "Тип сетевого ресурса некорректен".

Причина

Это сообщение об ошибке может появиться, если общая папка недоступна. Например, порт 445 заблокирован или возникла проблема с разрешением DNS.

Решение

Убедитесь, что порт 445 открыт и проверьте разрешение DNS и подключение к вашему файловому ресурсу.

Не удается получить доступ, изменить или удалить файловое хранилище Azure (или его снимок)

Ошибка "Неверное имя пользователя или пароль" после фейловера, инициированного клиентом

В сценарии переключения, инициированном клиентом, с геоизбыточными учетными записями хранения, дескрипторы файлов и активации не сохраняются при переключении. Клиенты должны отключить и повторно подключить общие папки.

Ошибка "Нет доступа" при попытке получить доступ к общей папке Azure или удалить ее

При попытке получить доступ к общей папке Azure или удалить ее с помощью портала Azure может появиться следующая ошибка:

Ошибка доступа: 403

Причина 1: правила виртуальной сети или брандмауэра включены для учетной записи хранения

Решение для причины 1

Убедитесь, что правила виртуальной сети и брандмауэра надлежащим образом настроены для учетной записи хранения. Чтобы проверить, вызывают ли проблемы правила виртуальной сети или брандмауэра, временно измените параметр учетной записи хранения, чтобы разрешить доступ из всех сетей. Чтобы узнать больше, см. статью Настройка брандмауэров и виртуальных сетей служба хранилища Azure.

Причина 2. У учетной записи пользователя нет доступа к учетной записи хранения.

Решение для второй причины

Перейдите к учетной записи хранения, в которой находится общая папка Azure, выберите элемент управления Access (IAM) и убедитесь, что у учетной записи пользователя есть доступ к учетной записи хранения. Дополнительные сведения см. в статье Как защитить учетную запись хранения с помощью Azure управления доступом на основе ролей (Azure RBAC).

Блокировки файлов и аренды

Если вы не можете изменить или удалить общую папку или моментальный снимок Azure, это может быть связано с блокировками файлов или арендой. Файлы Azure предоставляет два способа предотвращения случайного изменения или удаления общих папок и моментальных снимков Azure:

  • Блокировки ресурсов учетной записи хранения Storage: Все ресурсы Azure, включая учетную запись хранения, поддерживают блокировки ресурсов. Блокировки могут быть помещены в учетную запись хранения администратором или службами, такими как Azure Backup. Существуют два варианта блокировок ресурсов: изменение, которое предотвращает все изменения учетной записи хранения и ее ресурсов, а также удаление, которое только предотвращает удаление учетной записи хранения и ее ресурсов. При изменении или удалении общих ресурсов с помощью поставщика ресурсов Майкрософт.Storage блокировка ресурсов применяется для общих папок Azure и снимков их состояний. Большинство операций портала, командлеты Azure PowerShell для Файлы Azure с Rm в имени (например, Get-AzRmStorageShare) и команды Azure CLI в группе команд share-rm (например, az storage share-rm list) используют этот поставщик ресурсов Майкрософт.Storage. Некоторые средства и утилиты, такие как Обозреватель службы хранилища, устаревшие командлеты управления Файлы Azure PowerShell без Rm в названии (например, Get-AzStorageShare), и устаревшие команды CLI Файлы Azure в группе команд share (например, az storage share list) используют устаревшие API в FileREST API, которые обходят поставщика ресурсов Майкрософт.Storage и блокировки ресурсов. Дополнительные сведения о устаревших API управления, предоставляемых в API FileREST, см. в уровне управления в Файлы Azure.

  • Аренда/аренда моментальных снимков общего доступа: Аренда ресурсов общего доступа — это своего рода эксклюзивная блокировка для файловых ресурсов Azure и моментальных снимков файловых ресурсов. Аренды могут быть помещены в отдельные файловые ресурсы Azure или снимки файловых ресурсов администраторами путем вызова API через скрипт или с помощью дополнительных служб, например, Azure Backup. Если аренда применяется к общей папке Azure или её моментальному снимку, изменить или удалить их можно, используя идентификатор аренды. Администраторы также могут освободить аренду перед операциями изменения, которые требуют идентификатора аренды или разрыва аренды, что не требует идентификатора аренды. Дополнительные сведения об аренде акций см. в статье об аренде.

Поскольку блокировки ресурсов и аренды могут препятствовать предполагаемым операциям администратора в вашей учетной записи хранения или файловых ресурсах Azure, возможно, потребуется удалить все блокировки ресурсов или аренды, которые были установлены на ваши ресурсы вручную или автоматически дополнительными службами, такими как Azure Backup. Следующий скрипт удаляет все блокировки и аренды, которые применялись к ресурсу. Не забудьте заменить <resource-group> и <storage-account> соответствующими значениями из своей среды.

Перед выполнением следующего скрипта необходимо установить последнюю версию модуля служба хранилища Azure для PowerShell.

Внимание

Дополнительные сервисы, которые используют блокировки ресурсов и аренды моментальных снимков или совместные ресурсы на ваших ресурсах Файлы Azure, могут периодически заново применять блокировки и аренды. Изменение или удаление заблокированных ресурсов дополнительными службами может повлиять на обычную работу этих служб, например, удаление моментальных снимков ресурсов, управляемых Azure Backup.

# Parameters for storage account resource
$resourceGroupName = "<resource-group>"
$storageAccountName = "<storage-account>"

# Get reference to storage account
$storageAccount = Get-AzStorageAccount `
    -ResourceGroupName $resourceGroupName `
    -Name $storageAccountName

# Remove resource locks
Get-AzResourceLock `
        -ResourceType "Microsoft.Storage/storageAccounts" `
        -ResourceGroupName $storageAccount.ResourceGroupName `
        -ResourceName $storageAccount.StorageAccountName | `
    Remove-AzResourceLock -Force | `
    Out-Null

# Remove share and share snapshot leases
Get-AzStorageShare -Context $storageAccount.Context | `
    Where-Object { $_.Name -eq $fileShareName } | `
    ForEach-Object {
        try {
            $leaseClient = [Azure.Storage.Files.Shares.Specialized.ShareLeaseClient]::new($_.ShareClient)
            $leaseClient.Break() | Out-Null
        } catch { }
    }

Не удается изменить, переместить, переименовать или удалить файл или каталог

Выберите вкладку Windows или Linux в зависимости от операционной системы клиента, которую вы используете для доступа к общим папкам Azure.

В Windows могут появиться следующие ошибки.

Дескрипторы или аренда осиротевших файлов

Одно из основных назначений общей папки состоит в том, что несколько пользователей и приложений могут одновременно взаимодействовать с находящимися в ней файлами и каталогами. Для помощи в этом взаимодействии ресурсы общего доступа предоставляют несколько способов опосредования доступа к файлам и каталогам.

При открытии файла из подключенного Azure общей папки по протоколу SMB приложение или операционная система запрашивает дескриптор файла, который является ссылкой на файл. Помимо прочего, приложение задает режим общего доступа к файлам при запросе дескриптора файлов, который указывает уровень эксклюзивности доступа к файлу, применяемому Файлы Azure:

  • None: у вас есть исключительный доступ.
  • Read: другие могут читать файл, пока он открыт у вас.
  • Write: другие могут писать в файл, пока он открыт у вас.
  • ReadWrite: сочетание режимов совместного использования Read и Write.
  • Delete: другие могут удалить файл, пока он открыт у вас.

Хотя как протокол без отслеживания состояния протокол FileREST не имеет концепции дескрипторов файлов, он предоставляет аналогичный механизм для регулирования доступа к файлам и папкам, которые могут быть использованы вашим скриптом, приложением или службой: аренда файлов. При аренде файла он обрабатывается как эквивалентный дескриптору файлов с режимом общего доступа к файлам None.

Хотя дескрипторы файлов и аренды выполняют важную функцию, иногда дескрипторы файлов и аренды могут осиротеть. В таком случае могут возникать проблемы с изменением или удалением файлов. Могут отображаться такие сообщения об ошибках:

  • Процесс не может получить доступ к файлу, поскольку файл используется другим процессом.
  • Завершить действие невозможно, так как файл открыт в другой программе.
  • Документ заблокирован для редактирования другим пользователем.
  • Указанный ресурс помечен для удаления клиентом SMB.

Решение этой проблемы зависит от того, вызвана ли она потерянным дескриптором или арендой файла.

Примечание.

Аренды REST используются приложениями для предотвращения удаления или изменения файлов. Перед нарушением аренды следует определить, какое приложение приобретает их. В противном случае вы можете нарушить поведение приложения.

Причина 1

Дескриптор файла не позволяет изменить или удалить файл/каталог. Командлет Get-AzStorageFileHandle PowerShell может использоваться для просмотра открытых дескрипторов.

Если все клиенты SMB закрыли открытые дескрипторы файла или каталога, но проблема не была устранена, можно принудительно закрыть дескриптор файла.

Решение 1

Чтобы закрыть дескриптор файла принудительно, используйте командлет PowerShell Close-AzStorageFileHandle.

Примечание.

Командлеты Get-AzStorageFileHandle и Close-AzStorageFileHandle включены в модуль Az PowerShell версии 2.4 или новее. Чтобы установить последнюю версию модуля Az PowerShell, см. раздел Установка модуля Azure PowerShell.

Причина 2

Аренда файла предотвращает изменение или удаление файла. Вы можете проверить, имеет ли файл аренду файла с помощью следующих команд PowerShell. Замените <resource-group>, <storage-account><file-share>и <path-to-file> соответствующими значениями для вашей среды.

# Set variables 
$resourceGroupName = "<resource-group>"
$storageAccountName = "<storage-account>"
$fileShareName = "<file-share>"
$fileForLease = "<path-to-file>"

# Get reference to storage account
$storageAccount = Get-AzStorageAccount `
        -ResourceGroupName $resourceGroupName `
        -Name $storageAccountName

# Get reference to file
$file = Get-AzStorageFile `
        -Context $storageAccount.Context `
        -ShareName $fileShareName `
        -Path $fileForLease

$fileClient = $file.ShareFileClient

# Check if the file has a file lease
$fileClient.GetProperties().Value

Если у файла есть аренда, возвращаемый объект должен содержать следующие свойства:

LeaseDuration         : Infinite
LeaseState            : Leased
LeaseStatus           : Locked

Решение 2

Чтобы удалить аренду файла, можно освободить аренду или прервать ее. Чтобы освободить аренду, требуется идентификатор LeaseId аренды, который задается при создании аренды. Вам не нужен Идентификатор аренды для разрыва аренды.

В следующем примере показано, как прервать аренду для файла, указанного в причине 2 (этот пример продолжится с переменными PowerShell из причины 2):

$leaseClient = [Azure.Storage.Files.Shares.Specialized.ShareLeaseClient]::new($fileClient)
$leaseClient.Break() | Out-Null

Не удается смонтировать снимок общей файловой системы Azure в Linux

"Ошибка подключения(22): недопустимый аргумент" при попытке подключить моментальный снимок Azure файлового ресурса в Linux

Причина

snapshot Если параметр команды mount не передается в распознаваемом формате, mount эта команда может завершиться ошибкой. Чтобы это подтвердить, проверьте сообщения журнала ядра (dmesg), и dmesg отобразит запись журнала, например cifs: Bad value for 'snapshot'.

Решение

Убедитесь, что вы передаете snapshot параметр для mount команды в правильном формате. См. страницу руководства mount.cifs (например, man mount.cifs). Распространенная ошибка передает метку времени GMT в неправильном формате, например использование дефисов или двоеточий вместо периодов. Дополнительные сведения см. в разделе "Подключение моментального снимка общей папки".

"Недопустимый маркер моментального снимка" при попытке подключения снимка общего ресурса Azure в Linux

Причина

Если параметр моментального снимка mount начинается с @GMT, но формат по-прежнему неправильный (например, использование дефисов и двоеточий вместо точек), команда mount может завершиться ошибкой.

Решение

Убедитесь, что вы передаете метку времени GMT в правильном формате.@GMT-year.month.day-hour.minutes.seconds Дополнительные сведения см. в разделе "Подключение моментального снимка общей папки".

"Ошибка подключения(2): нет такого файла или каталога" при попытке подключить моментальный снимок Azure общей папки

Причина

Если моментальный снимок, который вы пытаетесь монтировать, не существует, команда mount может завершиться ошибкой. Чтобы подтвердить его, проверьте сообщения журнала ядра (dmesg), а dmesg отобразит запись журнала, например:

[Mon Dec 12 10:34:09 2022] CIFS: Attempting to mount \\snapshottestlinux.file.core.windows.net\snapshot-test-share1
[Mon Dec 12 10:34:09 2022] CIFS: VFS: cifs_mount failed w/return code = -2

Решение

Убедитесь, что моментальный снимок, который вы пытаетесь подключить, существует. Для получения дополнительной информации о том, как отобразить доступные моментальные снимки для заданного файлового ресурса Azure, см. Mount a file share snapshot.

Квота дисков или сетевые ошибки из-за слишком большого числа открытых дескрипторов.

Выберите вкладку Windows или Linux в зависимости от операционной системы клиента, которую вы используете для доступа к общим папкам Azure.

Ошибка 1816 ― недостаточно квот для обработки команды

Причина

Ошибка 1816 возникает при достижении верхнего предела параллельных открытых дескрипторов, разрешенных для файла или каталога в общей папке Azure. Дополнительные сведения см. в разделе целевые показатели масштабирования для Файлы Azure.

Решение

Сократите количество одновременно открытых дескрипторов, закрыв некоторые из них, и повторите попытку. Подробнее см. в контрольному списку Microsoft служба хранилища Azure по производительности и масштабируемости.

Чтобы просмотреть открытые дескрипторы для файлового ресурса, каталога или файла, используйте командлет Get-AzStorageFileHandle PowerShell.

Чтобы закрыть открытые дескрипторы для файловой доли, каталога или файла, используйте командлет Close-AzStorageFileHandle PowerShell.

Примечание.

Командлеты Get-AzStorageFileHandle и Close-AzStorageFileHandle включены в модуль Az PowerShell версии 2.4 или новее. Чтобы установить последнюю версию модуля Az PowerShell, см. раздел Установка модуля Azure PowerShell.

ERROR_UNEXP_NET_ERR (59) при выполнении любых операций с дескриптором

Причина

Если вы кэшируете или храните большое количество открытых дескрипторов в течение длительного времени, это может привести к сбою на сервере по причинам ограничения. Когда большое количество дескрипторов кэшируются клиентом, многие из этих дескрипторов могут перейти на этап повторного подключения одновременно, создавая очередь на сервере, который необходимо регулировать. Логика повторных попыток и ограничение на серверной стороне для повторного подключения занимает больше времени, чем таймаут клиента. Эта ситуация проявляется, когда клиент не может использовать существующий хэндл для любой операции, при этом все операции завершаются сбоем с ERROR_UNEXP_NET_ERR (59).

Существуют также крайние случаи, когда дескриптор клиента отключается от сервера (например, временное сетевое отключение), которые могут вызвать эту ошибку.

Решение

Не сохраняйте большое количество дескрипторов в кэше. Закройте дескриптор, а затем повторите попытку. Используйте командлеты PowerShell Get-AzStorageFileHandle и Close-AzStorageFileHandle для просмотра и закрытия открытых дескрипторов.

Если вы используете Azure файловые ресурсы для хранения контейнеров профилей или образов дисков для масштабного развертывания виртуального рабочего стола или других рабочих нагрузок, которые открывают дескрипторы для файлов, каталогов и/или корневого каталога, вы можете достичь верхних пределов для параллельных открытых дескрипторов. В этом случае используйте дополнительное файловое хранилище Azure и распределите контейнеры или образы между хранилищами.

Ошибка "Вы копируете файл в место, которое не поддерживает шифрование"

Когда файл копируется по сети, он расшифровывается на исходном компьютере, передается в виде обычного текста и повторно шифруется в месте назначения. Тем не менее при попытке скопировать зашифрованный файл может появиться следующее сообщение об ошибке: "Вы копируете файл в место, которое не поддерживает шифрование".

Причина

Эта проблема может возникнуть при использовании шифрованной файловой системы (EFS). Файлы с шифрованием BitLocker можно скопировать в Файлы Azure. Однако Файлы Azure не поддерживает NTFS EFS.

Обходное решение

Чтобы скопировать файл по сети, его сначала необходимо расшифровать. Используйте один из следующих методов:

  • Используйте команду copy /d . Она позволяет сохранить зашифрованные файлы как расшифрованные файлы в месте назначения.
  • Задайте следующий раздел реестра:
    • Path = HKLM\Software\Policies\Майкрософт\Windows\System
    • тип значения: DWORD;
    • Name = CopyFileAllowDecryptedRemoteDestination;
    • Значение = 1

Помните, что установка ключа реестра влияет на все операции копирования на сетевые общие ресурсы.

Ошибка ConditionHeadersNotSupported при использовании веб-приложением Файлы Azure в браузере

Ошибка ConditionHeadersNotSupported возникает при доступе к содержимому, размещенном в Файлы Azure через приложение, которое использует условные заголовки, например веб-браузер, доступ завершается ошибкой. Ошибка указывает, что заголовки условий не поддерживаются.

Снимок экрана: сообщение об ошибке ConditionHeadersNotSupported.

Причина

Условные заголовки пока не поддерживаются. Приложения, в которых реализована эта возможность, должны запрашивать полный файл при каждом обращении к файлу.

Обходное решение

При загрузке нового файла свойство CacheControl по умолчанию — no-cache. Чтобы заставить приложение запрашивать файл каждый раз, нужно обновить свойство CacheControl файла с no-cache на no-cache, no-store, must-revalidate. Это можно сделать с помощью Обозреватель службы хранилища Azure.

Screeshot, показывающий свойство файла CacheControl.

См. также