Содержание

Слайд 2

Деревянко М. (RuOUG)

Agenda

1.Сравнение ASM с аналогичными продуктами/технологиями.
2.Архитектура ASM.
3.Исследование внутренних структур ASM.
4.Опыт использования,

Деревянко М. (RuOUG) Agenda 1.Сравнение ASM с аналогичными продуктами/технологиями. 2.Архитектура ASM. 3.Исследование
проблемы, рекомендации.

Слайд 3

Деревянко М. (RuOUG)

Путь к ASM

- Standard I/O;
- Synchronous(Buffered) I/O - filesystem; biowait()
-

Деревянко М. (RuOUG) Путь к ASM - Standard I/O; - Synchronous(Buffered) I/O
Direct io filesystem; O_DIRECT
- Asynchronous I/O; aio
filesystemio_options
----
filesystem;
filesystem with mount flags;
Raw device;
Raw device over volume managers;
ASM.

Слайд 4

Деревянко М. (RuOUG)

Преимущества ASM

- Облегчает администрирование (Oracle management files);
- Более низкая стоимость

Деревянко М. (RuOUG) Преимущества ASM - Облегчает администрирование (Oracle management files); -
по сравнению с Volume manger’s;
- Отсутствие ограничений, отличающих файловую систему;
- Mirror and Striping = Same ?;
- Отдал диски и забыл☺;
Необходимость иметь одинаковые по размеру/производительности диски, чем больше диск по размеру тем больше данных туда разместит asm.
Возможность работе в RAC.
При выводе диска из строя нагрузка размазывает согласно PST до 10 дисков, аналогично при ребалансе скачок нагрузки “мягче”.
Volume manager Drl vs asm mirror resilvering (asm учитывает особенности файлов)
Oracle RDBMS processes directly access the storage!

Слайд 5

Деревянко М. (RuOUG)

Недостатки ФС

Файловые системы:
-Следить за местом, авторасширение файлов* (?)
- Права на

Деревянко М. (RuOUG) Недостатки ФС Файловые системы: -Следить за местом, авторасширение файлов*
каталоги/тома…
- Имена файлов/каталогов;
- Выбор размера страйпа;
* Интересный баг Auto extend aud$.

Слайд 6

Деревянко М. (RuOUG)

Volume Manager

Проблемы есть везде;
- Возможность работы с большим кол-вом томов(high-end

Деревянко М. (RuOUG) Volume Manager Проблемы есть везде; - Возможность работы с
решения) или путей к дискам, все таки ASM не готов к этому…
-ASM=OSM = USM ?
- Отказ от raw в 12 ?
Набор утилит для работы с oracle, н-р, проверка db_block_cheksum - asm это делает на лету [scn…scn]
*интересный баг - ошибка в правах на redo logs - crash instance;

Слайд 7

Деревянко М. (RuOUG)

Надежность

Что надежней:
- LVM - ?
- VxVM - ?
- ASM -

Деревянко М. (RuOUG) Надежность Что надежней: - LVM - ? - VxVM
?
- FS - ?
Рекомендовать какую-то одну из указанных технологий нельзя, так как любые проблемы стабильности выявляются только в результате длительной промышленной эксплуатации.

Слайд 8

Деревянко М. (RuOUG)

ASM

- ASM + linux = love? asmlib ☺;
- При обновлении

Деревянко М. (RuOUG) ASM - ASM + linux = love? asmlib ☺;
ядра практически всегда есть в наличии актуальный asmlib (регулярно обновляется);
+///..
* db_name берется с учетом db_unique_name

Слайд 9

Деревянко М. (RuOUG)

asmlib

- Device discovery
- I/O processing
ASMLIB не kernel aio, а

Деревянко М. (RuOUG) asmlib - Device discovery - I/O processing ASMLIB не
свой механизм.
Reduce the nymber of calls to OS.
A single call to asmlib multiple i/o.
Открывает меньше file descriptors.
- Perfomance
low cpu cost on high loaded system

Слайд 10

Деревянко М. (RuOUG)

Архитектура ASM

instance_type = ASM
SQL > select instance_name from v$instance;
INSTANCE_NAME
-----------
+ASM

ASM

File system

Volume manager

Operating System

Application

Database

Деревянко М. (RuOUG) Архитектура ASM instance_type = ASM SQL > select instance_name

Слайд 11

Деревянко М. (RuOUG)

asm<->CSSD<-> rdbms

Cluster Synchronization Service Daemon
/opt/oracle/product/11.1.0/db_ruoug2/bin/localconfig reset
nohup /etc/init.d/init.cssd run >/dev/null 2>&1

Деревянко М. (RuOUG) asm CSSD rdbms Cluster Synchronization Service Daemon /opt/oracle/product/11.1.0/db_ruoug2/bin/localconfig reset

Слайд 12

Деревянко М. (RuOUG)

Архитектура ASM

Основные процессы:
ARBx – процессы ребаланса
CKPT – cross instance calls
DBWR,PMON,PSP0,PZ9x

Деревянко М. (RuOUG) Архитектура ASM Основные процессы: ARBx – процессы ребаланса CKPT
– аналогично RDBMS
SMON – общается с CSS
LGWR – пишет ACD(active change directory)
GMON (занимается drop/offline disk)
KATE (занимается online disk)

Слайд 13

Деревянко М. (RuOUG)

Архитектура ASM

Память:
- Memory_target – 256M;
_db_cache_size (блоки по 4k);
+ SHARED_POOL_SIZE
(DB_SPACE/100+2)

Деревянко М. (RuOUG) Архитектура ASM Память: - Memory_target – 256M; _db_cache_size (блоки
External
(DB_SPACE/50+4) Normal (DB_SPACE/33+6) High
+ 16 processes;
+ 1m large pool;
* Зависит от версии 11g. При открытии файла передает только direct extents, для закрытых файлов место в памяти не нужно

Слайд 14

Деревянко М. (RuOUG)

Архитектура ASM

AU – allocation unit;
Расположение au (зависит от размера дисков

Деревянко М. (RuOUG) Архитектура ASM AU – allocation unit; Расположение au (зависит
и никоим образом не зависит от i/o на диск!)
Datafile – 1 mb; много или мало ?
1m=8k*128 MBRC(8) по 16 блоков на несколько дисков*
Oracle “Read ahead” ?
Controlfile, redo 128kb; **
* Lewis блоки в памяти могут “помешать” идти fullscan и спровоцировать одноблочные чтения…
** controlfile при normal redur. имеет 3 копии

Слайд 15

Деревянко М. (RuOUG)

Основные представления ASM

v$asm_alias; (-)
v$asm_attribute(11g diskgroup properties); (-)
v$asm_client;
v$asm_disk (service oracleasm scandisk);

Деревянко М. (RuOUG) Основные представления ASM v$asm_alias; (-) v$asm_attribute(11g diskgroup properties); (-)
-- читает заголовки дисков
v$asm_disk_iostat (rdbms only connected); (-)
v$asm_disk_stat;
v$asm_diskgroup; -- читает заголовки дисков
v$asm_diskgroup_stat;
v$asm_file;(-)
v$asm_operation; (-)
v$asm_template;

Слайд 16

Деревянко М. (RuOUG)

Asm reduradancy and failgroup

- External,normal(x2),high(x3)
- Failgroup (HBA,path,array,group)
Normal на нечетном количестве

Деревянко М. (RuOUG) Asm reduradancy and failgroup - External,normal(x2),high(x3) - Failgroup (HBA,path,array,group)
дисков.
Reduradancy не меняется в течение всего времени жизни Diskgroup.
Primary extent (+0-2 second extend) читаем всегда с primary extent, если он доступен; если нет, то с secondary до rebalance.
- 11g preffered reads (необходимо поднять версию dg)
- Partner Disks x$kfdpartner до 10, но всегда в других fg (PST)

Слайд 17

Деревянко М. (RuOUG)

ASM везде

- Asm на windows ☺ asmtool…
- Asm multipathing device

Деревянко М. (RuOUG) ASM везде - Asm на windows ☺ asmtool… -
mapper vs multipathd on linux ?

Слайд 18

Деревянко М. (RuOUG)

v$asm_diskgroup

Name Type
----------------------- ------------
GROUP_NUMBER NUMBER
NAME VARCHAR2(30)
SECTOR_SIZE NUMBER

Деревянко М. (RuOUG) v$asm_diskgroup Name Type ----------------------- ------------ GROUP_NUMBER NUMBER NAME VARCHAR2(30)

BLOCK_SIZE NUMBER
ALLOCATION_UNIT_SIZE NUMBER
STATE VARCHAR2(11)
TYPE VARCHAR2(6)
TOTAL_MB NUMBER
FREE_MB NUMBER
REQUIRED_MIRROR_FREE_MB NUMBER
USABLE_FILE_MB NUMBER
OFFLINE_DISKS NUMBER
UNBALANCED VARCHAR2(1)
COMPATIBILITY VARCHAR2(60)
DATABASE_COMPATIBILITY VARCHAR2(60)

Слайд 19

Деревянко М. (RuOUG)

V$asm_diskgroup

SQL> select TOTAL_MB,FREE_MB,REQUIRED_MIRROR_FREE_MB,USABLE_FILE_MB from v$asm_diskgroup;
- TOTAL_MB 3 200 000
- FREE_MB

Деревянко М. (RuOUG) V$asm_diskgroup SQL> select TOTAL_MB,FREE_MB,REQUIRED_MIRROR_FREE_MB,USABLE_FILE_MB from v$asm_diskgroup; - TOTAL_MB 3
1 800 000
- REQUIRED_MIRROR_FREE_MB 200 000
- USABLE_FILE_MB 800 000
USABLE_FILE_MB –сколько места еще свободно с учетом miiror. может быть меньше 0!

Слайд 20

Деревянко М. (RuOUG)

ASM extents

- Oracle extent транслируются в AU asm, asm не

Деревянко М. (RuOUG) ASM extents - Oracle extent транслируются в AU asm,
участвует в операциях ввода вывода, он участвует в ребалансе и поддержке актуальной карты экстентов.
- Можно попробовать настроить _asm_ausize и _asm_stripesize.*
Если диски одинаковые по размеру, то на них получится одинаковое число au.
- После каждых 20000 экстентов оракл увеличивает размер экстента AU x8 для каждого файла.
- Если получился перекос нагрузки то rebalance должен это поправить**
*Не встречал пока проблем, что данные были неадекватно отбалансированы, с большими объемами на ASM не пробовал.
**Для ребаланс идет обратный отсчет в v$asm_operation, но после окончания он еще доделывает накопившуюся во время ребаланса работу, поэтому долгое время стоит с 0.

Слайд 21

Деревянко М. (RuOUG)

asmcmd

asmcmd help (oracle11)
cd
cp
du
find
ls
lsct

Деревянко М. (RuOUG) asmcmd asmcmd help (oracle11) cd cp du find ls
lsdg
mkalias
mkdir
pwd
rm
rmalias
md_backup
md_restore
lsdsk
remap - пометить плохие сектора на диске

Слайд 22

Деревянко М. (RuOUG)

ASM metadata

В заголовке каждого диска:
Disk Header
(disk name, disk number,

Деревянко М. (RuOUG) ASM metadata В заголовке каждого диска: Disk Header (disk
diskgroup name, failure group name, disk size, AU size, creation time, mount time, compability ASM/RDBMS)
Allocation Table (AT)
(Allocation table blocks(ATB), Allocation table Entry(ATE) показывает file#,extent#->AU или free)
Free Space Table (FST)
(аналогично AT, только показывает пустые)
Partnership Status Table (PST)

Слайд 23

Деревянко М. (RuOUG)

ASM metadata (Partnership Status Table )

Version number;
Timestamp;
PST size (number of

Деревянко М. (RuOUG) ASM metadata (Partnership Status Table ) Version number; Timestamp;
disks);
Number of PST copies;
Disk list for PST;
Compability.
информация о дисках партнерах:
Disk status, number of partners, list of partners.
Последний блок PST heart beat необходим для того, чтобы диск нельзя было смонтировать с нескольких серверов.

Слайд 24

Деревянко М. (RuOUG)

Asm virtual Metadata

Находится в специальных asm файлах, доступных только для

Деревянко М. (RuOUG) Asm virtual Metadata Находится в специальных asm файлах, доступных
asm инстанса.
File directory (file size, file block size, file type,redudancy,striping,creation time,modification,file layout – 60 directs extents, up 300 inderect);
Disk directory(disk name, failure group name,disk size,disk free space,disk creation time);
Active change directory(ACD);
Continuing Operations Directory (COD);
Template Directory;
Alias directory;
Attribute Directory;
Staleness directory;
Staleness Registry.

Слайд 25

Деревянко М. (RuOUG)

Asm virtual Metadata

File#0, AU=1: Partner Status Table (PST)
File#1: File

Деревянко М. (RuOUG) Asm virtual Metadata File#0, AU=1: Partner Status Table (PST)
Directory (files and their extent pointers)
File#2: Disk Directory
File#3: Active Change Directory (ACD)
The ACD is analogous to a redo log, where changes to the metadata are logged.
Size=42MB * number of instances

Слайд 26

Деревянко М. (RuOUG)

Asm virtual Metadata

File#4: Continuing Operation Directory (COD).
The COD is

Деревянко М. (RuOUG) Asm virtual Metadata File#4: Continuing Operation Directory (COD). The
analogous to an undo tablespace. It maintains the state of active ASM operations such as disk or datafile drop/add. The COD log record is either committed or rolled back based on the success of the operation.
File#5: Template directory
File#6: Alias directory
11g, File#9: Attribute Directory
11g, File#12: Staleness registry, created when needed to track offline disks

Слайд 27

Деревянко М. (RuOUG)

Ребаланс дисковой группы

Ребаланс не всегда зависит от скорости дисков:
Single instance:

Деревянко М. (RuOUG) Ребаланс дисковой группы Ребаланс не всегда зависит от скорости
-Buffer busy wait
RAC
- DFS lock handle (cross-instacnce lock)
- Buffer busy wait
На одной ноде ребаланс идет быстрее, и еще быстрее при startup restrict
При ребалансе происходит relocation экстентов, если экстент принадлежит файлу со статусом open, тогда на время переноса замораживается обращение со стороны rdbms к этому экстенту(операции, которые “ждали” экстент прочитают его со старого места)
** asm file names

Слайд 28

Деревянко М. (RuOUG)

Cern IT

Деревянко М. (RuOUG) Cern IT

Слайд 29

Деревянко М. (RuOUG)

Cern IT

Деревянко М. (RuOUG) Cern IT

Слайд 30

Деревянко М. (RuOUG)

Cern IT

Reading ASM files with OS tools, using metadata information

Деревянко М. (RuOUG) Cern IT Reading ASM files with OS tools, using
from X$ tables.
Reading strace -> asm files.
The tnsnames entry can be used to connect to ASM instances via Oracle*NET - the extra keyword (UR=A). UR=A allows to connect to 'blocked services'.
*applies to 10g, it is not needed in 11g.

Слайд 31

Деревянко М. (RuOUG)

11g Features

- 11g restricted in 11g – quicker rebalance;
preffered read;
-

Деревянко М. (RuOUG) 11g Features - 11g restricted in 11g – quicker
au-size (1|2|4|8|16|32|64MB);
FAST DATA RESYNC, в volume manager такого нет! (staleness registry)
Alter diskgroup data disk_repair_time=‘4 h’;
- Alter diskgroup online disk all; -не падало
Настройка au-size для DG
Если asm сталкивается с невозможностью прочитать primary extent, то он пытается записать его в другое место на этом диске, а старое пометить как unusable; если возникает ошибка при записи, то сломавшийся диск asm переводит в offline (если и header не читается?) + пишет об ошибке в alert.log (если удалось записать хоть 1 копию, то для app ошибки нет) .

Слайд 32

Деревянко М. (RuOUG)

Лечение проблем

- Большая часть проблем решается обнулением заголовка asm дисков

Деревянко М. (RuOUG) Лечение проблем - Большая часть проблем решается обнулением заголовка
dd if=/dev/zer of=/dev/sdv3.
- Если диск “глючит”, то этого никак не видно, т.к. asm не ведет счетчик ошибок - только OS. Приходится менять его вручную.
- Alert.log для asm сложно читаем, хотя через некоторое время он становится понятней, если возникают ошибки невозможности прочитать блок - он пишет что пытается прочитать с зеркала (rdbms alert?)
- Авто-Offline диск только для для операций записи или чтения заголовка…
Большую часть проблем и падений в процессе/post-процессе ребаланса 10,11 рекомендуется отложить до возможности разобраться с ними в спокойной обстановке.
- Добавлять диски c force в 11

Слайд 33

Деревянко М. (RuOUG)

Лечение проблем

Висит v$asm_disk, v$asm-diskgroup-”приплыли”;
ALTER DISKGROUP DATA CHECK;
Редактор kfed
MOUNT FORCE:
Переведет

Деревянко М. (RuOUG) Лечение проблем Висит v$asm_disk, v$asm-diskgroup-”приплыли”; ALTER DISKGROUP DATA CHECK;
диски в offline
Не будет работать, если все диски в норме(10g);

Слайд 34

Деревянко М. (RuOUG)

Рекомендации

Иметь две DG, Data+Backups(FRA)
И если есть различные группы оборудования, то

Деревянко М. (RuOUG) Рекомендации Иметь две DG, Data+Backups(FRA) И если есть различные
вынести в отдельную группу.
Up2date kernel

Слайд 35

Деревянко М. (RuOUG)

Список используемой литературы:

1.Oracle documentation
2.Cern docs: https://twiki.cern.ch/twiki/bin/view/PSSGroup/ASM_Internals

Деревянко М. (RuOUG) Список используемой литературы: 1.Oracle documentation 2.Cern docs: https://twiki.cern.ch/twiki/bin/view/PSSGroup/ASM_Internals