Engineered System at home. Part 2. Install Cell software in Amazon
Продолжение серии по установке Exadata версии 12.1.1.1.1.
В предыдущих сериях:
Вам понадобится завести бесплатный account в Amazon (free trial) и вы сможете доже начать пользовать некоторыми ресурсами совершенно бесплатно. Я это использовал для экономии. Итак, нам нужна машина с Oracle Linux 5.9, мы ее легко находим по этой ссылке. На самом деле вы можете выбрать любой регион, главное все машины должны будут потом жить в одном регионе. Европа к нам ближе, если вы задумаете потом заканчивать данные, возможно это будет лучше. На следующем шаге у вас спрашивают тип intance.
Легко видеть, что я попросил бесплатный вариант. Тут следует сделать важную оговорку.
Кажется, эта бесплатная машинка существует только в виде PVM образа, и дальше, когда мы будет добавлять память, она так и останется PVM. Что не даст нам воспользоваться hupe pages. Возможно если сразу выбрать большую машину эту проблему удасться обойти. По умолчанию вам дадут 15Gb дисков - что нам не хватит, но я опишу дальше как добавлять ресурсы. Т.е. когда вы пройдете один раз в след раз вы сможете сразу создать нужную вам конфигурацию.
Дальше все по умолчанию. Обратите внимание, что для доступа к машине вам нужно скачать ключ. Без него вы доступ не получите. Ok, считаем что вы справились и смогли попасть на консоль.
ssh -i amazon.pem -l root <ваш ip адрес>
Вот тут нас ждет первая засада. Ядро не базовое 5.9, а обновленное.
2.6.39-400.17.1.el5uek
Известно, что rds over tcp/ip работает на 2.6.39-300.26.1, а дальше он был сломан. В 5.10 уже не работает. Чтобы не рисковать, мы можем поставить проверенное ядро:
Правим yum repo
и устанавливаем нужное ядро
yum install kernel-uek-2.6.39-300.26.1.el5uek.x86_64
Загружаем rds
lsmod | grep rds
modprobe rds
modprobe rds_tcp
modprobe rds_rdma
lsmod | grep rds
rds_rdma 82580 0
rds_tcp 10455 0
rds 96059 2 rds_rdma,rds_tcp
rdma_cm 36793 2 rds_rdma,ib_iser
ib_core 66577 7 rds_rdma,ib_iser,rdma_cm,ib_cm,iw_cm,ib_sa,ib_mad
Для автоматической загрузки rds используем следующий метод
Запрещаем SELINIX
В нормальной ситуации я бы рекомендовал поставить oracle-validate но тут он уже стоит.
Для установки cell нам понадобятся два пакета net-snmp*
yum install net-snmp net-snmp-utils
Добавим в систему swap file
dd if=/dev/zero of=/swapfile bs=1M count=1024
В предыдущих сериях:
- Законно ли то что я делаю?
- Зачем Amazon? Как вы помните, я начал собирать Exadata дома на Vitual Box, пытался использовать Linux 7, работать с tcp/ip чтобы не связываться с rds, но ничего не получилось. У меня тупо не хватило памяти на ячейке. Я нашел конечно же скрытые параметры, но ...это все равно игрушка получается. Нам нужна рабочая лошадка! Я писал ранее почему вариант с Amazon очень мне нравится.
Вам понадобится завести бесплатный account в Amazon (free trial) и вы сможете доже начать пользовать некоторыми ресурсами совершенно бесплатно. Я это использовал для экономии. Итак, нам нужна машина с Oracle Linux 5.9, мы ее легко находим по этой ссылке. На самом деле вы можете выбрать любой регион, главное все машины должны будут потом жить в одном регионе. Европа к нам ближе, если вы задумаете потом заканчивать данные, возможно это будет лучше. На следующем шаге у вас спрашивают тип intance.
Легко видеть, что я попросил бесплатный вариант. Тут следует сделать важную оговорку.
Кажется, эта бесплатная машинка существует только в виде PVM образа, и дальше, когда мы будет добавлять память, она так и останется PVM. Что не даст нам воспользоваться hupe pages. Возможно если сразу выбрать большую машину эту проблему удасться обойти. По умолчанию вам дадут 15Gb дисков - что нам не хватит, но я опишу дальше как добавлять ресурсы. Т.е. когда вы пройдете один раз в след раз вы сможете сразу создать нужную вам конфигурацию.
Дальше все по умолчанию. Обратите внимание, что для доступа к машине вам нужно скачать ключ. Без него вы доступ не получите. Ok, считаем что вы справились и смогли попасть на консоль.
ssh -i amazon.pem -l root <ваш ip адрес>
Вот тут нас ждет первая засада. Ядро не базовое 5.9, а обновленное.
2.6.39-400.17.1.el5uek
Известно, что rds over tcp/ip работает на 2.6.39-300.26.1, а дальше он был сломан. В 5.10 уже не работает. Чтобы не рисковать, мы можем поставить проверенное ядро:
Правим yum repo
vi public-yum-el5.repo
[ol5_UEK_base]
name=Unbreakable Enterprise Kernel for Oracle Linux $releasever ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL5/UEK/base/$basearch/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5
gpgcheck=1
enabled=1
и устанавливаем нужное ядро
yum install kernel-uek-2.6.39-300.26.1.el5uek.x86_64
Загружаем rds
lsmod | grep rds
modprobe rds
modprobe rds_tcp
modprobe rds_rdma
lsmod | grep rds
rds_rdma 82580 0
rds_tcp 10455 0
rds 96059 2 rds_rdma,rds_tcp
rdma_cm 36793 2 rds_rdma,ib_iser
ib_core 66577 7 rds_rdma,ib_iser,rdma_cm,ib_cm,iw_cm,ib_sa,ib_mad
Для автоматической загрузки rds используем следующий метод
cat /etc/modprobe.d/rds.conf
install rds /sbin/modprobe --ignore-install rds && /sbin/modprobe rds_tcp && /sbin/modprobe rds_rdma
Запрещаем SELINIX
- In /etc/selinux/config, change the line SELINUX to disabled (SELINUX=disabled)
- echo 0 > /selinux/enforce
В нормальной ситуации я бы рекомендовал поставить oracle-validate но тут он уже стоит.
Для установки cell нам понадобятся два пакета net-snmp*
yum install net-snmp net-snmp-utils
Добавим в систему swap file
dd if=/dev/zero of=/swapfile bs=1M count=1024
1024+0 записей считано
1024+0 записей написано
1073741824 bytes (1,1 GB) copied, 1,4198 секунд, 756 MB/s
mkswap /swapfile
Устанавливается пространство для свопинга версии 1, размер = 1073737 кБ
swapon /swapfile
Добавим строку в /etc/fstab
swapfile swap swap defaults 0 0
Нужно поправить /etc/sysctl
cat /etc/sysctl.conf
<...>
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=2097152
# vm.nr_hugepages = 1560 # Only if have huge pages in your system
fs.aio-max-nr = 50000000
cat /etc/security/limits.conf
<...>
* soft nofile 655360
* hard nofile 655360
* soft memlock 409600000
* hard memlock 409600000
Скачать и установить jdk
rpm -ivh jdk-1.7.0_55-fcs.x86_64.rpm
Создать две директории
mkdir /var/log/oracle
chmod 775 /var/log/oracle
Мы готовы к главному - установке cell rpm. Я писал, где его взять, в самом посте. Конечно, до установки было бы разумно перегрузить инстансе, чтобы убедиться что все в порядке, особенно с версией ядра.
Теперь нам нужно решить сколько вам нужно ресурсов - памяти и дисков. Это важно, потому что, как только вы запросите ресурсы с вас начнут брать за них деньги. За процессоры и память по часам использования (пока инстанс работает), за диски - пока в не удалите инстанс (terminate). Все типы инстансев можно найти по этой ссылке. Рекомендую регулярно контролировать ваши расходы.
Итак меняем тип инстанса из EC2 management console
Для Exadata Cell я выбрал m3.2xlarge - наиболее близкую к той, в которой cell работает в настоящей Exadata.
Собственно диалог изменения типа инстанса.
На следующем шаге нужно добавить дисков - по умолчанию у нас всего 15Gb
Для нормальной работы cell нам понадобиться как минимум 15Gb, поэтому я просто расширяю свой диск на 15 Gb и получаю 30Gb дискового пространства. Обращаю ваше внимание что у Amazon масса способов получить самое разное по скорости и объему дисков пространство. Так что все зависит только от бюджета.
Диск расширяется таким образом: вы должны сделать snapshot текущего диска, затем на его основе новый volume с увеличенным размером (30Gb в моем случае), затем должны старый volume отключить от инстанса и подключить ваш новый. У Amazon есть инструкция.
Важные детали
- создавать snapshot и новый volume вы должна в той же availability zone (eu-west1-1b в моем примере) что и ваш инстанс, иначе подключить не получится
- когда будете подключать диск обратно, нужно указать /dev/sda1 а не то что предлагают по умолчанию (мы расширяем основной диск), иначе машина больше не загрузится
- после того как все удалось не забудьте удалить snapshot и не нужный старый volume
Все, у нас все есть, ресурсы, настройки, правильная версия ядра.
Устанавливаем cell rpm
[root@ip-172-31-24-72 media]# rpm -ivh cell-12.1.1.1.1_LINUX.X64_140712-1.x86_64.rpm
Подготовка... ########################################### [100%]
Pre Installation steps in progress ...
1:cell ########################################### [100%]
Post Installation steps in progress ...
Set cellusers group for /opt/oracle/cell12.1.1.1.1_LINUX.X64_140712/cellsrv/deploy/log directory
Set 775 permissions for /opt/oracle/cell12.1.1.1.1_LINUX.X64_140712/cellsrv/deploy/log directory
/opt/oracle/cell12.1.1.1.1_LINUX.X64_140712/cellsrv/deploy
/opt/oracle/cell12.1.1.1.1_LINUX.X64_140712/cellsrv/deploy
/opt/oracle/cell12.1.1.1.1_LINUX.X64_140712
Installation SUCCESSFUL.
Starting RS and MS... as user celladmin
Done. Please Login as user celladmin and create cell to startup CELLSRV to complete cell configuration.
If this is a manual installation, please stop and restart ExaWatcher to pick up newly installed binaries.
You can run "/opt/oracle.ExaWatcher/ExaWatcher.sh --stop" and then "/opt/oracle.ExaWatcher/ExaWatcher.sh --fromconf" to stop and restart ExaWatcher.
Logout and then re-login to use the new cell environment.
На самом деле, cellsrv не стартует пока мы не настроим его параметры
vi /opt/oracle/cell12.1.1.1.1_LINUX.X64_140712/cellsrv/deploy/config/cellinit.ora
#CELL Initialization Parameters
version=0.0
DEPLOYED=TRUE
HTTP_PORT=8888
RMI_PORT=23791
SSL_PORT=23943
JMS_PORT=9127
BMC_SNMP_PORT=162
# Additional parameters
_cell_executing_in_vm=TRUE
_cell_1mb_buffers_hugepage_support=FALSE # in Amazon env without huge pages
_cell_reserve_hugepage_memory_mb=0 # in Amazon env without huge pages
ipaddress1=172.31.24.72/16
Хочу пояснить про hugepages и Amazon. Вот тут есть хорошая дискуссия на эту тему. В общем их наличие или отсутсвие зависит от того как вы создавали свою виртуальную машину.
До того как мы выполним создание ячейки, нужно создать несколько файлов (или symlink) которые будет эмулировать диски Exadata. Я крайне рекомендую вам создать именно то кол-во дисков и Flash устройств как показано ниже. Мои попытки играть с этим закончились плачевно.
as root
mkdir -p /opt/oracle/cell12.1.1.1.1_LINUX.X64_140712/disks/raw
Создаем 12 cell дисков по 1Gb
1..12
dd if=/dev/zero of=cell1_DISK01 bs=1048576 count=1024
6 Flash дисков по 512 Mb
1..6
dd if=/dev/zero of=cell1_DISK01 bs=1048576 count=512
-rw-r--r-- 1 root root 1073741824 Ноя 24 03:47 cell1_DISK01
-rw-r--r-- 1 root root 1073741824 Ноя 24 03:47 cell1_DISK02
-rw-r--r-- 1 root root 1073741824 Ноя 24 03:47 cell1_DISK03
-rw-r--r-- 1 root root 1073741824 Ноя 24 03:47 cell1_DISK04
-rw-r--r-- 1 root root 1073741824 Ноя 24 03:47 cell1_DISK05
-rw-r--r-- 1 root root 1073741824 Ноя 24 03:47 cell1_DISK06
-rw-r--r-- 1 root root 1073741824 Ноя 24 03:48 cell1_DISK07
-rw-r--r-- 1 root root 1073741824 Ноя 24 03:48 cell1_DISK08
-rw-r--r-- 1 root root 1073741824 Ноя 24 03:48 cell1_DISK09
-rw-r--r-- 1 root root 1073741824 Ноя 24 03:49 cell1_DISK10
-rw-r--r-- 1 root root 1073741824 Ноя 24 03:49 cell1_DISK11
-rw-r--r-- 1 root root 1073741824 Ноя 24 03:49 cell1_DISK12
-rw-r--r-- 1 root root 536870912 Ноя 24 03:52 cell1_FLASH01
-rw-r--r-- 1 root root 536870912 Ноя 24 03:52 cell1_FLASH02
-rw-r--r-- 1 root root 536870912 Ноя 24 03:52 cell1_FLASH03
-rw-r--r-- 1 root root 536870912 Ноя 24 03:52 cell1_FLASH04
-rw-r--r-- 1 root root 536870912 Ноя 24 03:52 cell1_FLASH05
-rw-r--r-- 1 root root 536870912 Ноя 24 03:52 cell1_FLASH06
Мне не понадобилось создавать в них никакие partition
Входим как пользователь celladmin, создаем cell под названием cell1
CellCLI> create cell cell1 interconnect1=eth0
Cell cell1 successfully created
Starting CELLSRV services...
The STARTUP of CELLSRV services was successful.
Flash cell disks, FlashCache, and FlashLog will be created...
CellDisk FD_00_cell1 successfully created
CellDisk FD_01_cell1 successfully created
CellDisk FD_02_cell1 successfully created
CellDisk FD_03_cell1 successfully created
CellDisk FD_04_cell1 successfully created
CellDisk FD_05_cell1 successfully created
Flash log cell1_FLASHLOG successfully created
Flash cache cell1_FLASHCACHE successfully created
На мой взгляд, если вы не увидели, что создан Flashcase и Flash лог идти дальше бесполезно. Создать дисковую группу без этого у меня не получилось. Я не вижу в этом никакого смысла, но попытки работать просто с дисками были бесполезны. Видимо, в коде жестко предполагает наличие Flash.
Можно полностью остановить/запустить cell чтобы убедиться что все в порядке.
cellcli -e alter cell startup services rs
cellcli -e alter cell startup services ms
cellcli -e alter cell startup services cellsrv
Или все одной командой
cellcli -e alter cell startup services all
cellcli -e alter cell shutdown services all
Мониторить процесс можно в alert.log
tail -f /opt/oracle/cell/log/diag/asm/cell/ip-172-31-24-72/trace/alert.log
Нам осталось создать celldisk и griddisk
CellCLI> list celldisk
FD_00_cell1 normal
FD_01_cell1 normal
FD_02_cell1 normal
FD_03_cell1 normal
FD_04_cell1 normal
FD_05_cell1 normal
CellCLI> CREATE CELLDISK ALL HARDDISK
CellDisk CD_DISK01_cell1 successfully created
CellDisk CD_DISK02_cell1 successfully created
CellDisk CD_DISK03_cell1 successfully created
CellDisk CD_DISK04_cell1 successfully created
CellDisk CD_DISK05_cell1 successfully created
CellDisk CD_DISK06_cell1 successfully created
CellDisk CD_DISK07_cell1 successfully created
CellDisk CD_DISK08_cell1 successfully created
CellDisk CD_DISK09_cell1 successfully created
CellDisk CD_DISK10_cell1 successfully created
CellDisk CD_DISK11_cell1 successfully created
CellDisk CD_DISK12_cell1 successfully created
CellCLI> create griddisk all harddisk prefix=DATA
GridDisk DATA_CD_DISK01_cell1 successfully created
GridDisk DATA_CD_DISK02_cell1 successfully created
GridDisk DATA_CD_DISK03_cell1 successfully created
GridDisk DATA_CD_DISK04_cell1 successfully created
GridDisk DATA_CD_DISK05_cell1 successfully created
GridDisk DATA_CD_DISK06_cell1 successfully created
GridDisk DATA_CD_DISK07_cell1 successfully created
GridDisk DATA_CD_DISK08_cell1 successfully created
GridDisk DATA_CD_DISK09_cell1 successfully created
GridDisk DATA_CD_DISK10_cell1 successfully created
GridDisk DATA_CD_DISK11_cell1 successfully created
GridDisk DATA_CD_DISK12_cell1 successfully created
По умолчанию у вас появился сервис celld который предназначен для автозапуска cell. Мне это мешает, я его отключил.
chkconfig celld off
CellCLI> list cell detail
name: cell01
bbuChargeThreshold: 800
bbuTempThreshold: 60
bmcType: absent
cellVersion: OSS_12.1.1.1.1_LINUX.X64_140712
cpuCount: 8
diagHistoryDays: 7
fanCount: 0/0
fanStatus: normal
flashCacheMode: WriteThrough
id: 612b4a0a-cb81-45a5-a969-eefdec1ff325
interconnectCount: 1
interconnect1: eth0
iormBoost: 0
ipaddress1: 172.31.24.72/20
kernelVersion: 2.6.39-300.26.1.el5uek
makeModel: Fake hardware
metricHistoryDays: 7
offloadGroupEvents:
offloadEfficiency: 1,0
powerCount: 0/0
powerStatus: normal
releaseVersion: 12.1.1.1.1
releaseTrackingBug: 18084575
status: online
temperatureReading: 0.0
temperatureStatus: normal
upTime: 0 days, 0:03
cellsrvStatus: running
msStatus: running
rsStatus: running
Продолжение следует. Но оно уже примитивное, все ясно - нужно ставить Grid Infrastructure и подключать диски к ASM.
Привет. Где можно скачать jdk-1.7.0_55-fcs.x86_64.rpm ?
ОтветитьУдалитьИнтересный вопрос - вообще то имеется в виду обычный jdk,
УдалитьЭту версию можно взять тут
http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html#jdk-7u55-oth-JPR
Но там файл называется jdk-7u55-linux-x64.rpm
Но я явно привел название файла и придумать такое не мог. Мне кажется я нашел его там же где cell*.rpm. Я посмотрю - сейчас сходу не смог вспомнить.
Автозагрузка RDS:
ОтветитьУдалитьДобавил в конец /etc/rc.d/rc.sysinit
modprobe rds
modprobe rds_tcp
modprobe rds_rdma