1 / 30

Использование блобов

Использование блобов. В этом модуле: Что такое хранилище блобов ? Как получить доступ к хранилищу блобов ? Что такое диск Azure? . BLOB. B inary L arge OB ject. Нужен разделённый доступ.

viho
Download Presentation

Использование блобов

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Использование блобов В этом модуле: Что такое хранилище блобов? Как получить доступ к хранилищу блобов? Что такое диск Azure?

  2. BLOB Binary Large OBject

  3. Нужен разделённый доступ В масштабируемом окружении данные должны быть в разных местах. Балансировщик нагрузки не «липкий». Web -роль Хранилище Web -роль LB Web -роль

  4. Блобы в Azure & размер • Размер блоба – до 1Тб. • Неограниченное количество контейнеров и блобов. • Контейнеры можно создавать/уничтожать в реальном времени.

  5. Аккаунт Контейнер • Блоб • Страницы/ • Блоки Адресация блоба http://<account>.blob.core.windows.net/<container>/<blobname> • PIC01.JPG • Блок/страница • images • VID1.AVI • PIC02.JPG • contoso Блок/страница • videos

  6. Контейнеры • Аналогично папке верхнего уровня • Может содержать до 100Тб файлов • Может содержать только блобы Каждый контейнер имеет права доступа: • Приватные • По умолчанию, для доступа нужен ключ аккаунта • Полное публичное чтение • Публичное только чтение

  7. Контейнеры блобов • Много контейнеров на аккаунт • Специальный контейнер $root • Контейнер блобов • Контейнер содержит множество блобов • Определение доступа на уровне контейнера • Привязывание метаданных к контейнеру • Список блобов в контейнере • Включая метаданные блобов и MD5 • Нет поисковых запросов типа WHERE MetadataValue = ? • Пропускная способность блобов • Эффективно в случае одной партиции • Цель – 60Мб/сек на блоб

  8. Работа с контейнерами

  9. Работа с блобами

  10. Загрузка блоба • Альтернативы • UploadFile • UploadText • UploadFromStream

  11. Скачивание блоба • Альтернативы • DownloadText • DownloadByteArray • DownloadToFile

  12. Контейнер & метаданные блоба • Простой словарь. • Для сохранения в хранилище нужно • вызвать SetMetadata().

  13. Снапшоты • Создаёт read-only версию блоба

  14. Два типа блобов • Блочный блоб • Для потоковых нагрузок • Каждый блоб – последовательность блоков • Каждый блок определяется Block ID • Размер ограничен 200Гб на блоб • Оптимистичный параллелизм через ETags • Страничный блоб • Для операций случайного чтения и записи • Каждый блоб – массив страниц • Каждая страница определяется отступом от начала блоба • Размер ограничен 1Тб на блоб • Оптимистичный или пессимистичный (блокировка) параллелизм через Leases

  15. Загрузка блочного блоба Блоб blobName = “TheBlob.wmv”; PutBlock(blobName, blockId1, block1Bits); PutBlock(blobName, blockId2, block2Bits); ………… PutBlock(blobName, blockIdN, blockNBits); PutBlockList(blobName, blockId1,…,blockIdN); 10 GB Movie Block Id 2 Block Id N Block Id 1 Block Id 3 • Преимущества • Эффективная постоянная запись и повторы • Параллельная загрузка блоков без учета порядка Хранилище Windows Azure TheBlob.wmv TheBlob.wmv

  16. Страничный блоб– случайные чтения/запись • Создайте MyBlob • Укажите размер блоба = 10 Гб. • Оплата только за страницы с данными • Фиксированный размер страницы = 512 байт • Операции случайного доступа • PutPage[512, 2048) • PutPage[0, 1024) • ClearPage[512, 1536) • PutPage[2048,2560) • GetPageRange[0, 4096) возвращает диапазоны [0,512) , [1536,2560) • GetBlob[1000, 2048) возвращает • Все 0 для первых 536 байт • Следующие 512 байт – данные из [1536,2048) 0 512 1024 1536 2048 Адресное пространство 2560 10 Гб

  17. Shared Access Signatures • Гибкие права доступа к блобам и контейнерам • Простейший путь выдачи доступа пользователю на загрузку файлов в блобовый аккаунт • Подписка URL ключом хранилища, разрешение повышенных привилегий • Отзыв • Используйте короткие периоды, после которых производите повторную выдачу • Используйте политику уровня контейнера, которую можно удалить

  18. Привязка к контейнеру Доступ на чтение на 10 минут Пример Доступ на запись на 10 минут Привязка к URI

  19. Сеть доставки данных (CDN) • Сценарий • Для часто запрашиваемых блобов • Доступно из любой точки мира • Сеть доставка данных Windows Azure (CDN) предоставляет доставку данных с высокой пропускной способностью • 20+ узлов по всему миру (США, Европа, Азия, Австралия, Южная Америка), количество продолжает увеличиваться • Один и тот же пользовательский опыт использования вне зависимости от удаления от места расположения аккаунта хранилища • Стоимость • Узлы в США 15ц/Гб + 1ц/10,000 транз. • Остальные узлы 20ц/Гб + 1ц/10,000 транз. • Трафик узел хранилищаузел CDN по обычной цене

  20. Доставка, Масштабирование и Производительность БОЛЕЕ 3 ТЕРАБИТ В СЕКУНДУ ПРОПУСКОЙ СПОСОБНОСТИ ИЗ 20+ УЗЛОВ ПО ВСЕМУ МИРУ С ДОСТУПНОСТЬЮ 99.95% ВРЕМЕНИ. СЕРВИС CDN АВТОМАТИЧЕСКИ МАСШТАБИРУЕТСЯ БЕЗ УЧАСТИЯ ПОЛЬЗОВАТЕЛЯ. БОЛЕЕ 3 ЛЕТ – ВНУТРИ MICROSOFT, ТЕПЕРЬ ДОСТУПНО И КЛИЕНТАМ WINDOWS AZURE.

  21. Как это работает? http://civ5.blob.core.windows.net/demo/civ5demo.exe Публичный контейнер блобов Узел CDN 1 ! http://<guid>.vo.msecnd.net/demo/civ5demo.exe

  22. Диски Windows Azure • Долговечные NTFS-тома, используемые экземплярами в Windows Azure • Используйте существующие NTFS API для доступа к примонтированному по сети диску • Используйте System.IO из .NET • Преимущества • Более простой перенос приложений в «облако», используя NTFS • Долговечность и сохранение данных • Диск Windows Azure – страничный блобв NTFS VHD • Подключайте страничный блоб по сети как диск NTFS • Локальный кэш для операций чтения на экземпляре • Все «смытые» и небуферизованные записи на диск сохраняются в страничный блоб

  23. Возможности диска Windows Azure • Диск Windows Azure –страничный блоб, форматированный как том NTFS VHD • Размер диска – до 1Тб • Страничный блоб может быть примонтирован: • К одному экземпляру в один момент времени для чтения/записи • К многим экземплярам, используя read-only снапшоты • Экземпляр может динамически монтировать до 16 дисков • Remote Access через стандартный BlobUI • Нельзя удаленно монтировать диск. • Можно загружать VHD в страничный блоб, используя интерфейс блоба, и затем монтировать его как диск • Можно скачивать VHD как локальный файл и монтировать локально

  24. Как работают диски Windows Azure ВМ Приложение Диск X: ОС Лиз Локальный кэш Сервис блобов Windows Azure DemoBlob Диск – форматированный страничный блоб, хранящийся в сервисе блобов При монтировании получается лизинг При монтировании указывается объем локального кэша на локальном хранилище «Смытые»/небуферизованные операции записи NTFS сохраняются в хранилище блобов перед возвращением в приложение Операции чтения могут происходить либо с локального кэша, либо с хранилища блобов (минуя кэш)

  25. Пример клиентской библиотеки диска CloudStorageAccount account = CloudStorageAccount.FromConfigurationSetting("CloudStorageAccount"); //Инициализация локального кэша для монтируемых на экземпляр дисков CloudDrive.InitializeCache(localCacheDir, cacheSizeInMB); //Создание «облачного» диска (страничного блоба) CloudDrive drive = account.CreateCloudDrive(pageBlobUri); drive.Create(1000 /* sizeInMB */); //Монтирование подключенного по сети диска к локальной файловой системе stringpathOnLocalFS = drive.Mount(cacheSizeInMB, DriveMountOptions.None); //Использование NTFS API для операций чтения/записи на диск … //Создание снапшота диска при монтировании для резервирования Uri snapshotUri = drive.Snapshot(); //Размонтирование диска drive.Unmount();

  26. Failover с дисками • Необходимо выполнить команду NTFS Flush для сохранения данных • Используйте System.IO.Stream.Flush() • Диски чтения/записи защищены лизингом • 1-минутное истечение лизинга • Управляются Windows Azure OS Driver • Размонтируются при выполнении RoleEntryPoint.OnStop • При ошибке • Лизинг истекает через одну минуту • Диск перемонтируется на новый экземпляр

  27. Руководство • Управляйте строками подключения/ключами в cscfg • Не распространяйте ключи, «оборачивайте» их в сервис • Планируйте стратегию создания аккаунтов и контейнеров • К аккаунту хранилища можно привязать домен

  28. Гостевая книга в Windows Azure с использованием блобов демонстрация

  29. Q & A соображения?

  30. Изучая хранилище Windows Azure C:\WAPTK\Labs\ExploringWindowsAzureStorageVS2010 Сделайте упражнение 2. Время на лабораторную

More Related