Эфемерное хранилище, или хранилище экземпляров, как есть, похоже на папку / tmp, содержимое которой исчезает после перезагрузки. Конечно, временное содержимое диска не уничтожается при мягкой перезагрузке, но с ним следует обращаться так же, как если бы оно было, поскольку вы не можете реально контролировать или предсказать, когда ваш экземпляр решит умереть.
На это уже указывалось.
Я хотел бы отметить, что если вы создадите и настроите свои AMI соответствующим образом, вы все равно сможете использовать эфемерное хранилище для значительного повышения (чтения) пропускной способности, если вы также сохраняете диски EBS для фактического хранилища.
На данный момент я использую экземпляры Linux (Ubuntu Tahr) с bcache. В основном это связано с тем, что поддержка ядра bcache относительно нова (IIRC, первое с bcache было 3.10), и вам определенно нужно ядро как можно более свежего. Кроме того, Tahr - это следующая LTS-версия Ubuntu, и она окончательная, когда мой проект близок к запуску;)
Bcache в своей конфигурации по умолчанию позволяет вам использовать скорость чтения эфемерного хранилища, сохраняя при этом постоянство EBS: он использует быстрое устройство кэширования (эфемерный SSD) и использует его для ускорения медленное устройство (EBS), записывающее через устройство кэширования (то есть запись одновременно в эфемерный кеш и EBS).
Это означает, что в случае сбоя экземпляра или его остановки по иным причинам вы все равно можете смонтировать том EBS напрямую без кеша и получить доступ ко всем своим данным, как если бы в противном случае вы использовали только тома EBS. Вы также можете перенастроить очищенные эфемерные устройства и перенастроить их в качестве кеша для EBS, чтобы вернуться к очень быстрому чтению и поиску.
Моя конкретная установка - это два устройства EBS, подвергшихся рейду в полосовом режиме с использованием mdadm + два временных SSD-устройства, также подвергшихся рейду таким же образом. Затем я настроил их с помощью bcache, используя эфемерный массив в качестве кеша и массив EBS в качестве «резервного» устройства. Диски EBS могут быть любого размера, и вы всегда можете их расширить (немного сложно с EC2, потому что вам нужно создать моментальный снимок текущих томов EBS, а затем создать новые более крупные на основе этого моментального снимка - вы не можете изменить размер существующий том EBS).
Конечно, вам нужно будет создать сценарий, который запускается внутри вашего экземпляра при запуске, чтобы настроить временное хранилище и подключить его в качестве устройства кэширования на вашем устройстве резервного копирования с поддержкой EBS. Я рекомендую прочитать и поэкспериментировать с mdadm и bcache.
Для справки, при тестировании с помощью стресс-инструмента Cassandra я получаю лучшую производительность чтения с томами EBS, кэшированными с помощью временных дисков, чем при простом чередовании временных дисков. Это из-за алгоритма, используемого в bcache, который очень умен.
Использование недолговечных дисков в качестве кэша также снижает сетевой трафик и является экономически эффективным, так как сокращает количество операций ввода-вывода на EBS и, следовательно, ваш ежемесячный счет.
Также обратите внимание на различные типы кеширования, которые предоставляет bcache:
- Обратная запись: используйте SSD в качестве устройства чтения / записи и записывайте на устройство резервного копирования только тогда, когда страницы необходимо удалить из кеша. Это бесполезно для временных настроек EC2, так как это сделает ваше устройство резервного копирования бесполезным в случае сбоя или остановки.
- Сквозная запись: все записи идут как в кэш, так и в резервную копию. Это гарантирует, что устройство резервного копирования всегда актуально, как и устройство кэширования, и его всегда можно использовать без устройства кэширования. Полезно для EC2.
- Запись вокруг: все записи идут непосредственно на устройство резервного копирования и не записываются в устройство кэш-памяти до тех пор, пока в будущем для этих данных не произойдет запрос на чтение. На устройстве кэширования кэшируются только чтения. Это так же безопасно, как и сквозная запись, и полезно, если вы знаете, что ваши записи вряд ли будут прочитаны в ближайшем будущем. Это позволяет избежать заполнения устройства кеширования данными, которые не запрашиваются часто, поэтому остается больше места для запрашиваемых данных. Парой примеров может быть сервер загрузки файлов, система, в которой вы записываете много данных журнала и т. Д. Если вы знаете, что весь ваш набор данных значительно больше, чем размер временного хранилища, это, скорее всего, будет наиболее эффективным. вариант в большом количестве вариантов использования.
person
DanielSmedegaardBuus
schedule
14.02.2014