Oracle Database Single Instance на ZFS: учимся готовить.

Oracle Database Single Instance на ZFS: учимся готовить.

Очень полезный и хороший обзор различных методов хранения для Oracle Database сделал Дмитрий Волков. Однако есть некоторые неточности касательно ZFS и здесь я приведу правильные значения. Отдельно коснусь и проблемы фрагментации. Я предполагаю, что концепции ZFS вам хорошо знакомы.

Если ваш выбор уже пал на ZFS, то готовим ее так:

Для начала, крайне рекомедую начитаться документации, прежде чем начать использовать ZFS (как, впрочем, и что-либо еще). Ищем whitepaper: «Configuring Oracle Solaris ZFS for an Oracle Database» и внимательно читаем. Сейчас ее можно взять здесь. Еще читаем http://www.solarisinternals.com/wiki/index.php/ZFS_for_Databases. В итоге имеем, что:

  • Необходимо установить параметр recordzise каждой файловой системы (ФС) еще до создания на ней файлов данных. Recordsize ФС должен быть равен db_block_size базы данных. В общем случае, данные и индексы могут лежать на одной ФС с recordsize=8k; redo, undo, temp и archivelog на других ФС с recordsize=128k. Пул дисков может быть общим для всех ФС.

  • Необходимо установть параметр logbias ФС в значение throughput для файлов данных и в значение latency для redo.

  • Желательно установить параметр primarycache в значение metadata для ФС с undo и archivelog. Таким образом отключить излишнее кеширование данных.

  • Желательно ограничить размер кэша ФС в оперативной памяти установив в файле /etc/system: set zfs:zfs_arc_max = 10737418240 (например 10GB). Желательное значение выбирается исходя из:

    • общего размера оперативной памяти

    • общего размера оперативной памяти минус размер SGA

    • желательного минимума в ~2-4GB

  • Наличие снимков (snapshots) и их количество в ZFS никак не влияет на производительность, так как каждый снимок это всего лишь пространство на диске, занятое старыми версиями блоков данных. При обновлении данных, снимки ни коим образом не трогаются.

  • Необходимо отключать проверку целостности блока базой данных, так как это делает ZFS. Целостность данных это фундаментальное свойство ZFS.

О фрагментации в ZFS и скорости чтения и записи.

Фрагментация данных приводит к большему времени, необходимому для чтения данных – увеличивается latency. Это происходит из-за того, что для чтения блоков, разбросанных по поверхности диска, необходимо дождаться перемещения головок диска. Для ускорения операций чтения в ZFS есть возможность подключения кэша на чтение (L2ARC). Sun Storage F5100 Flash Array позволяет держать в кэше до 2TB данных и таким образом полностью нивелировать задержку, возникающую из за фрагментации (описание ZFS L2ARC и тесты).

Кроме того, ZFS пишет данные на диск группами (или транзакциями ZFS, не путать с транзакциями Oracle). Это означает, что группа одновременно записываемых блоков будет записaнa, по возможности, максимально плотно, а не хаотично поблоково разбросана. Что гораздо быстрее выполнить, чем положить каждый блок на свое место, при этом каждый раз перемещая головки диска. Для увеличения скорости записи так же желательно использовать Sun Flash Accelerator F20 PCIe Card. Это внутренняя PCI карта позволяющая иметь 96GB кэша на запись (ZFS ZIL).

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

+ Для тех кто не готов переходить на Oracle Database 11g R2, ZFS + F5100 + F20 является единственным способом получить подобие Oracle FlashCache.

За последний год совместно с несколькими российскими ISV было проведено тестирование Oracle Database на ZFS + F5100 + F20. Ни в одном случае эффект фрагментации не был существеннен и хоть сколько бы заметен. Если ваша компания является ISV (производителем тиражируемого программного обеспечения) и хотите проверить работу вашего приложения на Solaris10/ZFS/S7000, обращайтесь ко мне — сделаем проект и проверим.

Comments:

Post a Comment:
  • HTML Syntax: NOT allowed
About

Roman (pomah) Ivanov, ISV Engineering. Tips how to run Oracle best on Sun. Performance monitoring and tuning for system administrators. OpenSolaris user experience.

Search

Categories
Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today