20
Тема Создание Standby баз в Amazon Cloud c использованием стороннего шифрования

Тема Создание Standby баз в Amazon Cloud c использованием стороннего шифрования

Embed Size (px)

Citation preview

Page 1: Тема Создание Standby баз в Amazon Cloud c использованием стороннего шифрования

Тема

Создание Standby баз в Amazon Cloud c использованием стороннего шифрования

Page 2: Тема Создание Standby баз в Amazon Cloud c использованием стороннего шифрования

О компании

Щукин С.А, DBA

Page 3: Тема Создание Standby баз в Amazon Cloud c использованием стороннего шифрования

Disaster Recovery Site

Зачем это необходимо?

• Плюсы– Катастрофоустойчивость– Логические повреждения– Снятие части нагрузки

• Минусы– Покупка отдельного железа - $$$– Размещение в ДЦ, обслуживание, энергопотребление

Page 4: Тема Создание Standby баз в Amazon Cloud c использованием стороннего шифрования

Облачные сервера Amazon

•Продукты• Amazon Elastic Compute Cloud (EC2)• Amazon Relational Database Service (RDS)• Amazon Elastic Block Store (EBS)• Amazon Simple Storage Service (S3)

•Простая регистрация• Кредитная карта• Телефон

Page 5: Тема Создание Standby баз в Amazon Cloud c использованием стороннего шифрования

Amazon Elastic Compute Cloud (EC2)

Типы инстансов• On-Demand Instances• Reserved Instances• Spot Instances

Регионы доступности:• US East (Northern Virginia) • US West (Northern California) • EU (Ireland)• Asia Pacific (Singapore) • Asia Pacific (Tokyo)

Инстанс RAM (GB)

EC2 CU(virt. core x EC2 CU) Storage (GB) 32/64 bit

Small (ST) 1.7 1 (1vc 1 EC2 CU) 160 32

Large (ST) 7.5 4 (2x2) 850 64

Extra Large (ST) 15 8 (4x2) 1690 64

Extra Large (HM) 17.1 6.5 (2x3.25) 420 64

Double Extra Large (HM)

34.2 13 (3x3.25) 850 64

Quadruple Extra Large (HM)

68.4 26(8x3.25) 1690 64

Medium Instance 1.7 5(2x2.25) 350 32

Extra Large Instance(HC)

7 20(8x2.5) 1690 64

Лицензирование• SE/O 4vc = 1socket=1PL• SE max 16vc, SEO – max 8vc• EE vc*0.5 = 1PL

http://aws.amazon.com/ec2/instance-types/

Page 6: Тема Создание Standby баз в Amazon Cloud c использованием стороннего шифрования

EC2, цены (US East), On Demand

Linux Windows

Small (ST) $0.085 per hour $0.12 per hour

Large (ST) $0.34 per hour $0.48 per hour

Extra Large (ST) $0.68 per hour $0.96 per hour

Extra Large (HM) $0.50 per hour $0.62 per hour

Double Extra Large (HM) $1.00 per hour $1.24 per hour

Quadruple Extra Large (HM) $2.00 per hour $2.48 per hour

Medium (HC) $0.17 per hour $0.29 per hour

Extra Large (HC) $0.68 per hour $1.16 per hour

Итого стоимость EC2 Extra Large HM (17GB RAM, 6.5 CU) в год (без сториджа): $4380 - On demand $1325 - Reserved

http://aws.amazon.com/ec2/pricing/

Page 7: Тема Создание Standby баз в Amazon Cloud c использованием стороннего шифрования

Amazon Relational Database Service (RDS)

Плюсы• Проще в использовании• Предустановленная БД• Amazon мониторинг• Автоматический патчинг• Автоматические бекапы

Cтоимость EC2 Extra Large (17GB RAM, 6.5 CU) в год (без сториджа): $5694 - On demand$1850 - Reserved

Минусы• Дороже

Тип инстанса Цена в час

Small (ST) 0.11

Large (ST) 0.44

Extra Large (HM) 0.65

Double Extra Large (HM) 1.30

Quadruple Extra Large 2.60

http://aws.amazon.com/rds/

Page 8: Тема Создание Standby баз в Amazon Cloud c использованием стороннего шифрования

Amazon Elastic Block Store (EBS)

Дисками в Амазоне• Локальные диски переаллоцируются для инстанса после каждого рестарта• EBS диски постоянны• EBS диски можно аттачить между разными инстансами• Размер EBS диска от 1GB до 1TB• Привязаны к Региону• Можно делать снапшоты• Выше производительность и надежность

Цена EBS• $0.10 за GB/мес. 1 TB база - $1228 в год• $0.10 за 1 миллион I/O операций - ???

Page 9: Тема Создание Standby баз в Amazon Cloud c использованием стороннего шифрования

Amazon Simple Storage Service (S3)

«Ленточная библиотека» Amazon’а• Защита данных через Oracle Secure Backup + RMAN

set encryption on for all tablespaces algorithm 'AES128' identified by "PASSWORD" only; run{ Allocate channel c1 device type SBT MAXPIECESIZE 5G parms 'SBT_LIBRARY=/opt/oracle10g/db/lib/libosbws11.so ENV=(OSB_WS_PFILE=/opt/oracle10g/db/dbs/osbwsdb.ora)'; .... Allocate channel c7 device type SBT MAXPIECESIZE 5G parms 'SBT_LIBRARY=/opt/oracle10g/db/lib/libosbws11.so ENV=(OSB_WS_PFILE=/opt/oracle10g/db/dbs/osbwsdb.ora)'; crosscheck backup;

backup as compressed backupset database format 'system/system_db_%T_%s_%p.rman'; backup as compressed backupset skip inaccessible archivelog all not backed up format 'system/db_logs_%T_%s_%p.rman' delete all input; backup current controlfile format 'system/system_ctl_%T_%s.rman';}

• Самая высокая заявленная надежность 99.999999999% (EBS ~ 99.5%) за год

• $0.14 за GB в месяц

http://aws.amazon.com/s3/

Установка OSB• http://rman.s3.amazonaws.com/osbws_install.jar• java -jar osbws_install.jar -AWSID ... -AWSKey ... -otnUser [email protected] -otnPass ... -walletDir /opt/oracle10g/db/dbs/osbws_wallet -configFile /opt/oracle10g/db/dbs/osbwsXXX.ora -libDir /opt/oracle10g/db/lib -validateotn 0

Page 10: Тема Создание Standby баз в Amazon Cloud c использованием стороннего шифрования

Полная стоимость облака за год

Калькулятор - http://aws.amazon.com/calculator

Пример – инстанс High Memory Extra Large• 17.1 GB RAM• 6,5 Computing Unints• 1024 GB EBS (4x250GB)• 1 Elastic IP (бесплатно пока используется). Количество ограничено на аккаунт• Traffic входящий – 2 TB в месяц (бесплатно, исходящий до 10 TB / $0.120 за GB в месяц)

• RESERVED -$2928• ON DEMAND - $5820

• + S3 (1 TB ->RMAN сжатие 500GB) - $840 ($0.14 за GB/мес)

Page 11: Тема Создание Standby баз в Amazon Cloud c использованием стороннего шифрования

Производительность

• IO– Синтетический тест (BenchmarkSQL)

– Реальная нагрузка

ASM 1x100GB ASM 10x10 XFS, SW RAID 10x10

trans/sec 257 400 221

log file sync(ms) 34 15 24

db file sequential read(ms) 30 9 18

db file parallel write(ms) 3 3 3

log file parallel write(ms) 19 4 11

Stress Prod

log file sync(ms) 17 8

db file sequential read(ms) 11 16

db file parallel write 3 2

log file parallel write 12 3

Page 12: Тема Создание Standby баз в Amazon Cloud c использованием стороннего шифрования

Производительность

• IO, RMAN

– Restore • 97MB sec, Stress1, 3 потока с локального диска. 170min, 973GB, 176GB backup• 56MB sec, Stress2, 5 потоков с локального диска. 280min, 922GB

– Recover• 7-14MB/sec, Stress1, 70 min, 58GB logs• 16MB/sec, Stress2, 195 min, 192GB logs

• IO, dbms_file_transfer между облаками• 90MB/sec - 1 thread• 15MB/sec - 6 threads

Page 13: Тема Создание Standby баз в Amazon Cloud c использованием стороннего шифрования

Производительность

• Standby MRP Apply rate – 0.5 – 1 MB/sec

• SCP speed – из интернета в облако – 0.5-2 MB/sec, между облаками – 30 MB/sec

• CPU speed - 12 секунд (Extra Large ST). (С)DSVOLK . Prod CPU speed – 15 секунд.SET SERVEROUTPUT ONSET TIMING ON

DECLARE n NUMBER := 0;BEGIN FOR f IN 1..10000000 LOOP n := MOD (n,999999) + SQRT (f); END LOOP; DBMS_OUTPUT.PUT_LINE ('Res = '||TO_CHAR (n,'999999.99'));END;/

Page 14: Тема Создание Standby баз в Amazon Cloud c использованием стороннего шифрования

Защита данных - шифрование

• LUKS (Linux Unified Key Setup), dm-crypthttp://code.google.com/p/cryptsetup/http://code.google.com/p/cryptsetup/wiki/DMCrypt

• Пример• Проверка поддержкиegrep 'AES|CRYPTO' /boot/config-$( uname -r )|grep CONFIG_CRYPTO_AES CONFIG_CRYPTO_AES=m CONFIG_CRYPTO_AES_X86_64=m

• Создание"Создать"cryptsetup -y luksFormat /dev/sdh (x7 раз, меняя /dev/sdh)"Открыть"cryptsetup luksOpen /dev/sdh encr_sdh (x7 раз, меняя /dev/sdh)"Закрыть - не обязательно"cryptsetup luksClose encr_sdh

"Проверить" что доступ к данным возможен только через mapper можно командой, пример:hexdump -C /dev/sdh |grep 'encrypted'hexdump -C /dev/mapper/encr_sdh |grep 'encrypted‘

• Возможна смена паролейcryptsetup luksAddKey /dev/sdh

cryptsetup luksDelKey /dev/sdh 0

• CPU overhead незначительный

Page 15: Тема Создание Standby баз в Amazon Cloud c использованием стороннего шифрования

Краткая инструкция

• Создать аккаунт, создать инстас через Firefox + ELasticFox (http://aws.amazon.com/developertools/609?_encoding=UTF8&jiveRedirect=1). Настроить политики безопасности в ELasticFox

• Скопировать ORA_HOMES в амазон, отключить RACtar cvf - db/ crs/|gzip > ora_homes.tar.gzSCPgunzip < ora_homes.tar.gz| tar xvf –

• Подготовить шифрованные девайсы для ASM и для локальной файловой системы

• Создать сервис CSSD (10g), экземпляр ASM 11G можно ставить через GUI предварительно выставив runlevel в 3

Create diskgroup data external redundancy disk ‘/dev/mapper/encr_sde’, ‘/dev/mapper/encr_sdf’, ‘/dev/mapper/encr_sdg’, ‘/dev/mapper/encr_sdh’, ‘/dev/mapper/encr_sdi’, ‘/dev/mapper/encr_sdj’, ‘/dev/mapper/encr_sdl’, ‘/dev/mapper/encr_sdn’,'/dev/mapper/encr_sdo', '/dev/mapper/encr_sdp';

• Скопировать/Восстановить базу• Создать stunnel между prod базой и standby• Добавить мониторинг

Page 16: Тема Создание Standby баз в Amazon Cloud c использованием стороннего шифрования

Краткая инструкция, сервис CSSD

vi /etc/init.d/cssd_start#!/bin/sh## chkconfig: 345 99 10# description: CSSD for ASM

case "$1" in start)

nohup /opt/oracle10g/crs/bin/localconfig reset & sleep 50 nohup /etc/init.d/init.cssd run >/dev/null 2>&1 </dev/null & ;;

stop) ;;esac

exit 0

cd /etc/init.dchmod 744 cssd_startchkconfig --add cssd_startservice cssd_start start

Page 17: Тема Создание Standby баз в Amazon Cloud c использованием стороннего шифрования

Краткая инструкция, мониторинг

cd $ORACLE_HOME/backupmkdir stb_moncd stb_mon

"vi check_lag.sql"set termout offset feedback offset timing offset heading offset pagesize 0

spool lag_val.out

select round((sysdate-max(next_time))*24) lag_hoursfrom v$archived_log l,(select thread, max(sequence) max_sequence from (select substr(message, instr(message, 'thread_')+7,1) thread ,substr(message, instr(message, 'seq_')+4,instr(message, '.')-

(instr(message, 'seq_')+4)) sequence ,message from v$dataguard_status where message like 'Media Recovery Log%') group by thread) dgwhere l.thread# = dg.thread and l.sequence# = dg.max_sequence;

spool off

exit

"vi run.sh"#!/bin/bashexport ORACLE_SID=XXXexport ORACLE_HOME=/opt/oracle10g/dbexport PATH=$ORACLE_HOME/bin:$PATH

sqlplus '/as sysdba' @check_lag.sqllag=`cat lag_val.out`hour=`date +%H`

if [ $lag -gt $2 ]; then message="ERROR: $1 Standby LAG IS $(cat lag_val.out) HOURS !!!"; echo $message|mail -s

"$1 Standby monitoring" $4;else if [ $lag -le $2 ]; then if [ $hour = $3 ]; then message="OK: $1 Standby current lag: $(cat lag_val.out) hour(s)"; echo $message|mail -s

"$1 Standby monitoring" $4; fi else message="WARNING: Can't determine lag for $1 Standby, check it manually!"; echo

$message|mail -s "$1 Standby monitoring" $4; fifi

CRON0 */1 * * * (cd /opt/oracle10g/db/backup/stb_mon; ./run.sh "System XXX" 4 18 [email protected])

Page 18: Тема Создание Standby баз в Amazon Cloud c использованием стороннего шифрования

Польза Standby

• Лаг в данных. Если установлен можно посмотреть данные в прошлом при необходимости или в случае логического повреждения

• Сделать бекап базы. Без негативного воздействия на продакшен базу

• Dbms_file_transfer. Отправить часть данных на стресс базу

• Миграция на 11g (utlu112i.sql). Если нет возможности прогонять скрипт на продакшене -> Standby + Restore Point + Flashback Database

• Временно открыть в Read Only для специальных отчетов

• Active Standby

Page 19: Тема Создание Standby баз в Amazon Cloud c использованием стороннего шифрования

Минусы Amazon

• Залипание. Высокое LA, IO тормозит Редко но случаи бывают, реальный продакшен под большим вопросом

top - 02:03:03 up 40 min, 3 users, load average: 9.19, 5.19, 2.26Tasks: 103 total, 1 running, 102 sleeping, 0 stopped, 0 zombieCpu(s): 0.0%us, 0.0%sy, 0.0%ni, 25.0%id, 74.9%wa, 0.0%hi, 0.0%si, 0.1%stMem: 15728640k total, 11561392k used, 4167248k free, 1067548k buffersSwap: 9638992k total, 0k used, 9638992k free, 9535888k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 15 0 10348 756 632 S 0.0 0.0 0:00.02 init 2 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/0 3 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0

• Неполноценный саппорт. http://www.oracle.com/technetwork/topics/cloud/faq-098970.html#support

• HugePages – не поддерживаются• Иногда не создать инстанс. Мотивируется временным исчерпанием ресурсов зоны

• Смена IP после ребута. Проблемы с Listener, CSSD. Лечится через Elastic IP

Page 20: Тема Создание Standby баз в Amazon Cloud c использованием стороннего шифрования

Альтернатива – Oracle Cloud

• Недавно появившаяся технология

• Меньше контроля

• Не определена ценовая политика (??)