130 likes | 241 Views
Построение модели подсистемы кэширования СХД AVRORA. Зольников Павел pasha.zolnikov@gmail.com Кривых Алексей krivykhalexey@gmail.com Самунь Виктор victor.samun@gmail.com IT Summer SPb 2012 18 июля 2012. Реальная система. Инициатор Подсистема кэширования Кэш память Логика
E N D
Построение модели подсистемы кэширования СХД AVRORA Зольников Павел pasha.zolnikov@gmail.com Кривых Алексей krivykhalexey@gmail.com Самунь Викторvictor.samun@gmail.com IT Summer SPb 2012 18 июля 2012
Реальная система • Инициатор • Подсистема кэширования • Кэш память • Логика • Массив дисков
Напоминания • “Чистый” сегмент – сегмент, содержащий копию данных на диске • “Грязный” сегмент – сегмент, содержащий данные новее, чем на диске • Используемый сегмент – если идет запись/чтение из этого сегмента
Напоминания • Read ahead(упреждающее чтение) – стратегия кэширования, при которой вместе с запрашиваемыми данными считываются соседние с ними данные • Write back (отложенная запись) – стратегия кэширования, при которой данные не передаются сразу от инициатора на диск, а помещаются в кэш и лежат там некоторое время, пока не будут записаны на диск
Работа подсистемы: чтение • Поиск запрашиваемых данных в кэше • Если данные найдены, передача их инициатору • Если данные не найдены, поиск их на диске • Копирование данных в кэш • Передача данных из кэша инициатору
Работа подсистемы: read ahead • Система распознает, что идет последовательное чтение • Минимальное количество последовательно считываемых страйпов • Считывание некоторого количества страйпов наперед • Тоже параметр системы • Ограничения сверху и снизу
Работа подсистемы: запись • Всегда write back • “Грязные” данные сливаются на диск: • При достижении порога заполнения • По таймеру (10 раз в секунду) • Когда система на может выделить сегмент под запрос инициатора
Трасса • ENT=0STR=1328614447.573684TRN=9442EXP=9504INI=localhostTGT=LocalNRtargetRAID=BAK LUN=LAKLNUM=0CDB=28000000040000040000000000000000LLBA=1024PLBA=1024LEN=1024RT=1STAT=0SKEY=0SCOD=0DRTC=0NRAC=0RAP=0WBP=0
Параметры запроса • STR – время прихода запроса • EXP – время от прихода запроса до окончания его выполнения и уничтожения • TRN – время от прихода запроса до начала передачи данных между системой и инициатором
Что есть EXP? • Главный вопрос: входит ли время стояния запроса в очереди в EXP? • Пусть так. Сравним STR(last) + EXP(last) – STR(first) ≈ 446 мсекс ≈ 9,8 сек. Гипотеза провалилась. • Пусть наоборот. Тогда сосчитаем время непрерывной работы. ≈ 228 мсек
Время непрерывной работы Запрос 1 Запрос 2 Запрос 1 Запрос 2 Запрос 1 Запрос 2
Параллельная работа системы • Запросы могут обрабатываться параллельно, если запрашиваемые в них данные не пересекаются • STR(last) + EXP(last) – STR(first) уже не актуально • Время непрерывной работы также надо считать по-другому • Но можно оценить время простоя системы Оно не больше чем время простоя системы, запросы которой обрабатываются последовательно
Время работы дисков • Скорость передачи данных - 150 Мб/сек • Время позиционирования головки – 10-20 мсек • Оно вносит большой вклад в общее время работы • Но зависит от схемы обращения к данным(последовательное или произвольное чтение) • Требуются дополнительные эксперименты