Engineered System at home. Part 2

Первая часть здесь.

Создание и конфигурация cell

Учить почтенных донов устанавливать Virtual Box и Oracle Linux 7 я не могу. Могу сделать только несколько замечаний, которые, я надеюсь,  упростят вам жизнь.

Дальше мы рассмотрим как устновить rpm, выполнить конфигурацию cell, создать диски.




Ниже конфигурация моей виртуальной машины. Ничего необычного нет - я отвел 8Gb под системную часть Linux (этого более чем достаточно), сделал 8 дополнительных устройств под cell disks & cell flash. У меня два сетевых адаптера - через первый NAT я выхожу в интернет (мне пригодится доступ к public-yum) через второй впоследствии я буду пускать траффик между базой данных и cell.



Установка Oracle Linux крайне просто и приятна - mininal install избавляет вас от необходимости долгого и нужного удаления ненужных вам firewall и прочего. Стартует такая машинка крайне быстро, что очень важно для моего виртуального дата центра.

После установки Linux у вас (спасибо Oracle!) автоматически есть правильно настроенная конфигурация yum и вы можете выполнить yum update.

В Linux 7 появился новый способ управления сетевыми интерфейсам  NetworkManager -  так вот, он нам не нужен.

[root@cell01 ~]# systemctl stop NetworkManager

[root@cell01 ~]# systemctl disable NetworkManager 

Вам придется руками поправить файлы

ifcfg-eth0
ifcfg-eth1 
/etc/hosts


[root@cell01 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.2.32 cell01   <---- 25.10.2014="" nbsp="" span="">

[root@cell01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=none
IPADDR=192.168.2.32    <---- 25.10.2014="" font="" nbsp="">
PREFIX0=24
NETMASK=255.255.255.0
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME=eth1
UUID=601655f0-39bb-40e2-adc3-7a2977ffc96f
DEVICE=eth1
ONBOOT=yes


Важные моменты я выделил красным. В 2014 году Oracle по прежнему продолжает парсить сетевые файлы конфигурации вручную и ..не найдя там ожидаемых слов (например netmask, которое не нужно больше из-за NetworkManager) падает с паникой.

У меня также возникла проблема с установкой Virtual Box Guest Additions. Дело в том, что для этой установки нужны kernel headers, для этого вам нужно будет доустановить пакет kernel-uek-devel (в то время как я я искал что-то вроде kernel-uek-headers и не нашел такого).

Остается поправить параметры ядра

cat  /etc/sysctl.conf

fs.file-max = 65536
fs.aio-max-nr=50000000

net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=2097152

vm.nr_hugepages=1787       


cat /etc/security/limits.conf

* soft nofile 655360
* hard nofile 655360
* soft memlock 4096000
* hard hemlock 4096000

cat  /etc/pam.d/login

session    required /lib64/security/pam_limits.so
session    required pam_limits.so


Все, мы готовы установить наш cell rpm. Перед установкой нужно доустановить

yum install 'perl-File*’
- yum install ‘unzip*'
- jdk-8u25-linux-x64.rpm   -- обращаю ваше внимание на версию java! Так что требуется в dependencies не работает нормально на Linux 7! 

а также разрешить прочие dependencies из списка ниже




Правильная установка выглядит как показано ниже

rpm -ivh cell-12.1.1.1.1_LINUX.X64_140712-1.x86_64.rpm


rpm -ivh cell-12.1.1.1.1_LINUX.X64_140712-1.x86_64.rpm
Подготовка...               ################################# [100%]
Pre Installation steps in progress ...
Обновление / установка...
   1:cell-12.1.1.1.1_LINUX.X64_140712-################################# [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.


Почти все готово. Было не сложно, правда?



Нам осталось поправить cellinit.ora и создать cell!

[root@cell01 3.8.13-44.1.1.el7uek.x86_64]# cat /opt/oracle/cell12.1.1.1.1_LINUX.X64_140712/cellsrv/deploy/config/cellinit.ora

CELL Initialization Parameters
version=0.0
#_cell_num_buffers=1000
_cell_fc_bootstrap_timeout=50000000
RMI_PORT=23791
HTTP_PORT=8888
_cell_print_all_params=true
JMS_PORT=9127
_cell_disable_ant_check_reid=true
BMC_SNMP_PORT=162
_reconnect_to_cell_attempts=4
DEPLOYED=TRUE
ipaddress1=192.168.2.32/24   <---- 25.10.2014="" nbsp="" span="">
SSL_PORT=23943
#_cell_max_memory=2000
bbuTempThreshold=60
_cell_cd_metadata_prepare_timeout_in_sec=50
_cellrsdef_max_auto_timeout=200
_cell_state_dump_timeout_in_sec=10
_cellrsdef_heartbeat_timeout=600
_skgxp_udp_use_tcb=true
_skgxp_udp_use_tcb_client=true
_skgxp_gen_ant_off_rpc_timeout_in_sec=300
_reconnect_to_cell_freq_in_sec=4
bbuChargeThreshold=800
_cellrsos_start_timeout=300

#
_cell_fc_scan_threshold_timeout=10
_cell_gd_io_quiescent_timeout=100
_cell_oflsrv_heartbeat_timeout_sec=60
# Test VM
#_cell_executing_in_vm=TRUE

# Huge pages test
_cell_1mb_buffers_hugepage_support=TRUE
cell_reserve_hugepage_memory_mb=1000


Важнейшим параметром является ipaddress1. Прочие опциональны, но именно с такими у меня работает.  Параметр _cell_print_all_params=true позволит вам познакомится в alert.log со множеством прочих скрытых параметров.

Мы готовы запустить cell!

[celladmin@cell01 ~]$ cellcli -e alter cell restart services all

Stopping the RS, CELLSRV, and MS services...
The SHUTDOWN of services was successful.
Starting the RS, CELLSRV, and MS services...
Getting the state of RS services...  running
Starting CELLSRV services...
The STARTUP of CELLSRV services was successful.
Starting MS services...
The STARTUP of MS services was successful.


наблюдать за происходящем можно в alert.log
tail -f  /opt/oracle/cell/log/diag/asm/cell/cell01/trace/alert.log


Мы готовы создать cell!


su - celladmin 


CellCLI>  ALTER CELL SHUTDOWN SERVICES CELLSRV;


CellCLI> create cell cell01 interconnect1=eth1
Cell cell01 successfully created

Теперь нам нужны диски

cd /opt/oracle/cell12.1.1.1.1_LINUX.X64_140712/
mkdir -p disks/raw
chown  -R celladmin disks/

Дальше нужно сделать symlinks на устройства, эмулирующие диски 

lrwxrwxrwx. 1 celladmin root    9 Oct 21 20:25 cell01_DISK01 -> /dev/sdb1
lrwxrwxrwx. 1 celladmin root    9 Oct 21 20:25 cell01_DISK02 -> /dev/sdc1
lrwxrwxrwx. 1 celladmin root    9 Oct 21 20:25 cell01_DISK03 -> /dev/sdd1
lrwxrwxrwx. 1 celladmin root    9 Oct 21 20:25 cell01_DISK04 -> /dev/sde1
lrwxrwxrwx. 1 celladmin root    9 Oct 21 20:26 cell01_FLASH01 -> /dev/sdf1
lrwxrwxrwx. 1 celladmin root    9 Oct 21 20:26 cell01_FLASH02 -> /dev/sdg1
lrwxrwxrwx. 1 celladmin root    9 Oct 21 20:26 cell01_FLASH03 -> /dev/sdh1
lrwxrwxrwx. 1 celladmin root    9 Oct 21 20:26 cell01_FLASH04 -> /dev/sdi1


Я создал на каждом из устройств primary partition но не уверен были ли это обязательно.
Кто то еще забивает нулями устройства. Также не могу сказать обязательно ли это.

Создаем диски


CellCLI> create celldisk all harddisk
CellDisk CD_DISK01_cell01 successfully created
CellDisk CD_DISK02_cell01 successfully created
CellDisk CD_DISK03_cell01 successfully created
CellDisk CD_DISK04_cell01 successfully created


CellCLI> create celldisk all flashdisk
CellDisk FD_00_cell01 successfully created
CellDisk FD_01_cell01 successfully created
CellDisk FD_02_cell01 successfully created
CellDisk FD_03_cell01 successfully created
CellDisk FD_04_cell01 successfully created
CellDisk FD_05_cell01 successfully created 


CellCLI> CREATE FLASHCACHE ALL SIZE=2G
Flash cache cell01_FLASHCACHE successfully created

CellCLI> CREATE  FLASHLOG ALL SIZE=100M
Flash log cell01_FLASHLOG successfully created


celladmin@cell01 ~]$ cellcli -e create griddisk all harddisk prefix=DATA
GridDisk DATA_CD_DISK01_cell01 successfully created
GridDisk DATA_CD_DISK02_cell01 successfully created
GridDisk DATA_CD_DISK03_cell01 successfully created
GridDisk DATA_CD_DISK04_cell01 successfully created
GridDisk DATA_CD_DISK05_cell01 successfully created

GridDisk DATA_CD_DISK06_cell01 successfully created 


CellCLI> list celldisk
CD_DISK01_cell01 normal
CD_DISK02_cell01 normal
CD_DISK03_cell01 normal
CD_DISK04_cell01 normal
FD_00_cell01     normal
FD_01_cell01     normal
FD_02_cell01     normal
FD_03_cell01     normal

CellCLI> list flashcache
cell01_FLASHCACHE normal

CellCLI> list flashlog
cell01_FLASHLOG normal

CellCLI> list griddisk
DATA_CD_DISK01_cell01 active
DATA_CD_DISK02_cell01 active
DATA_CD_DISK03_cell01 active
DATA_CD_DISK04_cell01 active

Перезапустим сервисы, чтобы убедиться что у нас все хорошо


[celladmin@cell01 ~]$ cellcli -e alter cell restart services all

celladmin@cell01 ~]$ cellcli -e alter cell restart services all

Stopping the RS, CELLSRV, and MS services...
The SHUTDOWN of services was successful.
Starting the RS, CELLSRV, and MS services...
Getting the state of RS services...  running
Starting CELLSRV services...
The STARTUP of CELLSRV services was successful.
Starting MS services...
The STARTUP of MS services was successful.


CellCLI> list cell detail
name:               cell01
bbuChargeThreshold: 800
bbuTempThreshold:   60
bmcType:           absent
cellVersion:       OSS_12.1.1.1.1_LINUX.X64_140712
cpuCount:           2
diagHistoryDays:   7
fanCount:           0/0
fanStatus:         normal
flashCacheMode:     WriteThrough
id:                 ab189a0f-abd4-4f74-8413-5b4c6d419943
interconnectCount: 0
interconnect1:     eth1
iormBoost:         0.0
ipaddress1:         192.168.1.32/24
kernelVersion:     3.8.13-44.1.3.el7uek.x86_64
locatorLEDStatus:   unknown
makeModel:         Fake hardware    <---- -="" font="" nbsp="">
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, 1:12
cellsrvStatus:     running
msStatus:           running
rsStatus:           running





Мы очень близко. Очень. Почти все готово -)


PS
наблюдение с помощью starce что же там все эти демоны делают привело к интересной команде, которая выдается на рабочей машине, каждый раз в момент старта демонов

chmod 666 /opt/oracle/cell/cells

Как вам? мне тоже понравилось. Парни явно не беспокоятся о безопасности. Можно много говорить, что это мол appliance, там никого не должно быть, но так писать код просто нельзя.


PS.2

Кстати, если что то идет не так, падает, и вы не понимаете почему - то можно начать сначала в любой момент:

Удаление пакета:
rpm -ev cell-12.1.1.1.1_LINUX.X64_140712-1.x86_64


rm -rf  /opt/oracle 



4 комментария:

  1. Дима, ты монстр!
    (ушел строить экзадату на лэптопе)

    ОтветитьУдалить
  2. Анонимный24/10/14 12:05 PM

    Да, присоединяюсь, спасибо.
    Кстати, в свое время нашел вот этот блог, может, будет полезен: http://dbaesp.wordpress.com/2013/12/11/exadata-virtual-test-environment-for-oce-prep/

    ОтветитьУдалить
    Ответы
    1. Блог хороший. Я не стремлюсь быть первым - я стремлюсь быть лучшим: прям как Apple! Хотя, минуточку - я показывал Exadata simulator еще в 2010 году!

      Удалить
    2. Анонимный24/10/14 4:25 PM

      Ждем третью часть с запуском dbca и т.д.

      Удалить