Экспорт (0) Печать
Развернуть все

Настройка ресурсов локального хранилища

Обновлено: Ноябрь 2013 г.

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

Ресурс локального хранилища объявляется в файле определения службы. Для роли можно объявить любое число ресурсов локального хранилища. Каждый ресурс локального хранилища зарезервирован для каждого экземпляра этой роли. Минимальное место на диске, которое можно зарезервировать для ресурса локального хранилища, — 1 МБ. Максимальное место, которое можно зарезервировать для любого заданного локального ресурса, зависит от размера ВМ, указанного для роли. Для каждого размера виртуальной машины имеется соответствующее выделение объема диска, и общий объем, выделенный для всех ресурсов локального хранилища для роли, не может превысить максимальный размер для размера виртуальной машины. Дополнительные сведения о максимальном объеме места на диске, выделяемом для каждого размера виртуальной машины, см. в разделе Настройка размеров для облачных служб.

noteПримечание
  • Имейте в виду, что к ответственности разработчика относится обеспечение того, чтобы место на диске, запрошенное для ресурса локального хранилища, не превышало максимального места, выделенного для виртуальной машины. Если ресурс локального хранилища настроен так, что оказывается больше максимально допустимого объема, ошибка не произойдет, пока не будет предпринята попытка операции записи, превышающей максимально допустимое значение. В этом случае операция записи окончится неудачей и появится сообщение об окончании места на диске. Модель обработки для Windows Azure — попытка или отказ. При получении ошибки окончания места на диске можно обработать эту ошибку и освободить место на диске. После этого можно повторить операцию записи.

  • Можно задать сохранение ресурса локального хранилища при очистке экземпляра. Однако нельзя гарантировать устойчивость данных, сохраненных в локальной файловой системе виртуальной машины. Если роль требует устойчивых данных, рекомендуется использовать диск Windows Azure для хранения файловых данных. Для дисков Windows Azure производится резервное копирование службой BLOB-объектов Windows Azure, поэтому они гарантированно устойчивы.

Добавление ресурса локального хранилища

Чтобы объявить ресурс локального хранилища в файле определения службы, добавьте элемент LocalResources как дочерний элемент элемента WebRole или элемента WorkerRole. Затем добавьте элемент LocalStorage для представления ресурса. Элемент LocalStorage имеет три атрибута:

  • name

  • sizeInMB: указывает желаемый размер для этого ресурса локального хранилища.

  • cleanOnRoleRecycle: указывает, должен ресурс локального хранилища очищаться при очистке экземпляра роли или сохраняться на протяжении жизненного цикла роли. Значение по умолчанию — true.

В следующем файле определения службы показано два ресурса локального хранилища, объявленные для веб-роли:


<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" name="MyService">
  <WebRole name="MyService_WebRole" vmsize="Medium">
    <InputEndpoints>
      <InputEndpoint name="HttpIn" port="80" protocol="http" />
    </InputEndpoints>
    <ConfigurationSettings>
      <Setting name="SimpleConfigSetting" />
    </ConfigurationSettings>
    <LocalResources>
      <LocalStorage name="localStoreOne" sizeInMB="10" />
      <LocalStorage name="localStoreTwo" sizeInMB="10" cleanOnRoleRecycle="false" />
    </LocalResources>
  </WebRole>
</ServiceDefinition>

Дополнительные сведения о файле определения служб см. в разделе Схема определения службы Windows Azure (файл CSDEF).

noteПримечание
При использовании инструментов Windows Azure для Microsoft Visual Studio можно определить ресурс локального хранилища на странице Свойства для роли. Дополнительные сведения см. в разделе Настройка приложения Windows Azure в Visual Studio.

Доступ к ресурсу локального хранилища во время выполнения

Управляемая библиотека Windows Azure предоставляет классы для получения доступа к ресурсу локального хранилища из кода, который выполняется в экземпляре роли. Метод RoleEnvironment.GetLocalResource возвращает ссылку на именованный объект LocalResource.

Поскольку объект LocalResource представляет собой каталог, из него можно читать и в него можно писать с помощью стандартных классов файлового ввода-вывода .NET. Чтобы определить путь к каталогу ресурса локального хранилища, используйте свойство LocalResource.RootPath. Это свойство возвращает полный путь к ресурсу локального хранилища, включая именованный каталог ресурса. Например, если служба работает в интегрированной среде разработки, то ресурс локального хранилища определен в локальной файловой системе и свойство RootPath вернет значение, подобное следующему:

C:\Users\myaccount\AppData\Local\dftmp\s0\deployment(1)\res\deployment(1).MyService.MyService_WebRole.0\directory\localStoreOne\

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

C:\Resources\directory\f335471d5a5845aaa4e66d0359e69066.MyService_WebRole.localStoreOne\

Код, исполняемый в экземпляре роли, может использовать ресурс локального хранилища, определенный для этой роли, с момента выхода экземпляра в сеть до момента вывода его из сети.

См. также

Показ:
© 2015 Microsoft