| Конфигуриране на Oracle ASM под Enterprise Linux - част II |
| Четвъртък, 15 Януари 2009 10:59 |
|
След като създадохме виртуалната машина и инсталирахме операционна система в част I [manchev.org], можем да преминем към инсталацията и конфигурирането на Automatic Storage Management (ASM). Преди това обаче ще добавим няколко допълнителни диска, които ще управляваме чрез ASM. Добавяне на допълнителни дискове При изгасена виртуална машина избираме VM/Settings от менюто на VMware Workstation, за да видим конфигурацията на виртуалните устройства, които са достъпни за Oracle Enterprise Linux 5. Виждаме, че към момента нашата машина разполага с един единствен 8 GB твърд диск. Натискаме бутона Add, за да добавим допълнителен хардуер към нея. В диалога Add Hardware маркираме Hard Disk и избираме Next. Оставяме избраната по подразбиране опция Create a new virtual disk и натискаме бутона Next. По подразбиране типа на диска трябва да е SCSI. Оставяме го така и избираме Next. Тук трябва да изберем капацитет на диска. За примерната инсталация аз използвам стандартния - 8 GB, но може да изберете и по-голям капацитет. След като сме задали стойността в GB, натискаме бутона Next. В този екран трябва да зададем име на файла, който ще съхранява виртуалния диск. Оставяме го по подразбиране и приключваме операцията чрез бутона Finish. Ако създаването на новия диск е успешно, ще го видим в списъка с устройства на виртуалната машина. Трябва да повторим описаната операция още два пъти, за да добавим още два допълнителни диска с идентичен капацитет. След като приключите с всички дискове, екранът с устройствата трябва да изглежда така: Стартираме виртуалната машина и след като Enterprise Linux зареди можем да се заемем с конфигурирането на дисковите устройства на нивото на операционната система. Конфигуриране на дисковете и техните дялове След като зареждането на операционната система приключи, първо трябва да проверим дали дисковете са видими като изпълним следната команда от терминална конзола: $ ls /dev/sd* /dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdc /dev/sdd $ Можем да видим, че новосъздадените устройства са именувани sdb, sdc и sdd. За да ги използваме за целите на ASM, новите дискове трябва да имат дефинирани валидни дискови дялове. Ще използваме командата fdisk, но преди това трябва да получим правата на супер потребител, за да можем успешно да извършим операциите: $ su - Password: # Започваме с диска sdb изпълнявайки: # fdisk /dev/sdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. The number of cylinders for this disk is set to 1044. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) Command (m for help): Избираме n, за да създадем нов дисков дял. Command (m for help): n Command action e extended p primary partition (1-4) Избираме p, тъй като трябва да създадем първичен дял. Command action e extended p primary partition (1-4) p Partition number (1-4): За номер на дяла избираме 1, а всички други стойности оставяме по подразбиране: Partition number (1-4): 1 First cylinder (1-1044, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-1044, default 1044): Using default value 1044 Command (m for help): По този начин създаваме дял, който обхваща целия диск. На финала записваме промените, избирайки w. Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. # След като сме приключили с първия диск повтаряме операцията за останалите два диска – sdc и sdd. Когато и те са готови, конфигурирането на дяловете е успешно и можем да продължим нататък. Подготовка за инсталация на Oracle Има няколко неща, които трябва да направим преди да започнем инсталирането на ASM и базата данни. Когато инсталирахме Enterprise Linux 5, ние създадохме потребител наречен oracle, който ще бъде собственик на инсталациите на Oracle продуктите. Съгласно инструкциите в документацията на Oracle, трябва също така да създадем две групи oinstall и dba, както и да настроим някои параметри на системата, преди да започнем същинската инсталация. Нека започнем с тези задължителни стъпки. Първо създаваме двете групи (така наречената Inventory група – oinstall и групата на администраторите на базата данни – dba): $ su - Password: # groupadd oinstall # groupadd dba Добавяме потребителя oracle като член на групите: # usermod -g oinstall -G dba oracle Създаваме директория, където ще инсталираме Oracle ASM и Oracle Database (използваме OFA конвенциите за именуване [oracle.com]) и правим потребителя oracle техен собственик. # mkdir -p /u01/app/oracle # chown -R oracle:oinstall /u01/app/oracle # chmod -R 755 /u01/app/oracle # Редактираме файла /etc/hosts (може да използваме редактор в конзолата като vi или nano, или пък някой от редакторите на графичната среда като gedit), като добавяме в него запис с IP адреса и името на хоста, които сме задали при инсталацията на Enterprise Linux 5. В моя случай добавям накрая на файла следния ред: 192.168.0.10 el5 Редактираме файла /etc/sysctl.conf, добавяки следните редове в него: kernel.sem = 250 32000 100 128 kernel.shmmni = 4096 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default=262144 net.core.rmem_max=262144 net.core.wmem_default=262144 net.core.wmem_max=262144 Изпълняваме следната команда на конзолата, за да могат новите стойности да влязат в сила: # /sbin/sysctl -p Редактираме файла /etc/security/limits.conf, добавяйки следната информация: * soft nproc 2047 * hard nproc 16384 * soft nofile 1024 * hard nofile 65536 Редактираме /etc/pam.d/login, поставяйки накрая: session required /lib/security/pam_limits.so На финала редактираме файла .bash_profile, който се намира в /home/oracle, поставяйки следните редове в края му: if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi Важно е да обърнем внимание на факта, че това са най-базовите настройки нужни за инсталацията на Oracle. Стойностите, които им задаваме също са по подразбиране. За не-тестови инсталации, погледнете подробния наръчник за инсталиране [oracle.com], за да знаете смисъла на всеки параметър и за да можете да задавате неговата стойност според конкретния случай. Последната стъпка от подготовката е инсталирането на някои допълнителни пакети за операционната система, които не са добавени по подразбиране в нашата инсталация. Пакетите, които трябва да инсталираме са съответно: От първия инсталационен диск: kernel-headers-2.6.18-92.el5.i386.rpm libgomp-4.1.2-42.el5.i386.rpm gcc-4.1.2-42.el5.i386.rpm glibc-devel-2.5-24.i386.rpm glibc-headers-2.5-24.i386.rpm libXpm-devel-3.5.5-3.i386.rpm libX11-devel-1.0.3-9.el5.i386.rpm libXau-devel-1.0.1-3.1.i386.rpm libXdmcp-devel-1.0.1-2.1.i386.rpm xorg-x11-proto-devel-7.1-9.fc6.i386.rpm mesa-libGL-devel-6.5.1-7.5.el5.i386.rpm От третия инсталационен диск: compat-gcc-34-3.4.6-4.i386.rpm openmotif-2.3.0-0.5.el5.i386.rpm compat-db-4.2.52-5.1.i386.rpm libXp-1.0.0-8.1.el5.i386.rpm libXp-devel-1.0.0-8.1.el5.i386.rpm Добавянето на пакетите извършваме чрез командата rpm. За kernel-headers-2.6.18-92.el5.i386.rpm инсталацията изглежда така: # rpm -Uvh kernel-headers-2.6.18-92.el5.i386.rpm warning: kernel-headers-2.6.18-92.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159 Preparing... ########################################### [100%] 1:kernel-headers ########################################### [100%] # След като приключим с добавянето на всички пакети по описания начин, преминаваме към настройването на дисковете за употреба с Automatic Storage Management. ASMLib или RAW устройства Едно важно решение, което трябва да вземем сега е как ASM ще достъпва дисковете. Това може да стане по два начина. Първият вариант е дисковете да се достъпват като RAW устройства, като в този случай ASM използва стандартното API за вход-изход на операционната система. В този случай устройствата се достъпват през /dev/raw/rawn. Другият вариант е към Linux ядрото да се добави модулът ASMLib, който Oracle разпространява безплатно и достъпът до дисковете да се извършва през него. ASMLib е алтернативно API за вход-изход с няколко добавки. Според Oracle съществуват редица ползи от неговото използване. ASMLib гарантира директен, асинхронен достъп за входно-изходните операции. Модулът също така се грижи за правилното откриване на преместени устройства (това е възможно да се случи при рестарт на операционната система), като също решава проблема със собствеността на файловете и техните права. Използването на ASMLib е препоръчвания от Oracle вариант. От друга страна повечето Linux администратори са срещу ASMLib. Техните доводи са, че ASMLib добавя още един слой на абстракция, както и допълнителна зависимост в ядрото. Също така трябва да имаме предвид, че ако инсталираме Oracle клъстер и не използваме клъстерна операционна система, трябва да използваме RAW устройства за Repository и Voting Disk на клъстера (тези елементи от архитектурата на Oracle клъстера са подобно обряснени в една от предишните статии [manchev.org]). При всички положения спорът ASMLib срещу RAW продължава не от вчера, така че тук няма да се спираме на препоръка за едното или другото. Вместо това ще покажем и двата варианта, а вие ще изберете подходящия за вас. Моят съвет е да се запознаете по-задълбочено с ASMLib тук [oracle.com], преди да вземете окончателно решение. Използване на ASMLib Щом сме решили да използваме ASMLib, първо трябва да свалим нужните файлове според версията на ядрото на операционната система, която използваме. За да сме сигурни за точната стойност използваме командата uname по следния начин: # uname -a Linux el5 2.6.18-92.el5 #1 SMP Fri May 23 22:17:30 EDT 2008 i686 i686 i386 GNU/Linux # За различните ядра Oracle предоставя различни RPM пакети. Списък за наличните пакети за Enterprise Linux 5 можем да видим тук [oracle.com]. Ще забележим, че за ползваното от нас ядро са налични три пакета: oracleasm-support-2.1.2-1.el5.i386.rpm oracleasmlib-2.0.3-1.el5.i386.rpm oracleasm-2.6.18-92.el5-2.0.5-1.el5.i686.rpm Можем да свалим пакетите чрез командата wget. # wget http://oss.oracle.com/projects/oracleasm-support/dist/files/RPMS/rhel5/x86/2.1.2/oracleasm-support-2.1.2-1.el5.i386.rpm --16:57:07-- http://oss.oracle.com/projects/oracleasm-support/dist/files/RPMS/rhel5/x86/2.1.2/oracleasm-support-2.1.2-1.el5.i386.rpm Resolving oss.oracle.com... 141.146.12.120 Connecting to oss.oracle.com|141.146.12.120|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 84684 (83K) [application/x-rpm] Saving to: `oracleasm-support-2.1.2-1.el5.i386.rpm' 100%[=======================================>] 84,684 72.2K/s in 1.1s 16:57:09 (72.2 KB/s) - `oracleasm-support-2.1.2-1.el5.i386.rpm' saved [84684/84684] # wget http://otn.oracle.com/software/tech/linux/asmlib/files/RPMS/rhel5/x86/2.0.3/oracleasmlib-2.0.3-1.el5.i386.rpm --16:57:25-- http://otn.oracle.com/software/tech/linux/asmlib/files/RPMS/rhel5/x86/2.0.3/oracleasmlib-2.0.3-1.el5.i386.rpm Resolving otn.oracle.com... 141.146.8.66 Connecting to otn.oracle.com|141.146.8.66|:80... connected. HTTP request sent, awaiting response... 301 Moved Permanently Location: http://www.oracle.com/technology/software/tech/linux/asmlib/files/RPMS/rhel5/x86/2.0.3/oracleasmlib-2.0.3-1.el5.i386.rpm [following] --16:57:26-- http://www.oracle.com/technology/software/tech/linux/asmlib/files/RPMS/rhel5/x86/2.0.3/oracleasmlib-2.0.3-1.el5.i386.rpm Resolving www.oracle.com... 141.146.8.66 Reusing existing connection to otn.oracle.com:80. HTTP request sent, awaiting response... 200 OK Length: 13658 (13K) [application/x-rpm] Saving to: `oracleasmlib-2.0.3-1.el5.i386.rpm' 100%[=======================================>] 13,658 48.7K/s in 0.3s 16:57:27 (48.7 KB/s) - `oracleasmlib-2.0.3-1.el5.i386.rpm' saved [13658/13658] # wget http://oss.oracle.com/projects/oracleasm/dist/files/RPMS/rhel5/x86/2.0.5/2.6.18-92.el5/oracleasm-2.6.18-92.el5-2.0.5-1.el5.i686.rpm --16:58:14-- http://oss.oracle.com/projects/oracleasm/dist/files/RPMS/rhel5/x86/2.0.5/2.6.18-92.el5/oracleasm-2.6.18-92.el5-2.0.5-1.el5.i686.rpm Resolving oss.oracle.com... 141.146.12.120 Connecting to oss.oracle.com|141.146.12.120|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 128494 (125K) [application/x-rpm] Saving to: `oracleasm-2.6.18-92.el5-2.0.5-1.el5.i686.rpm' 100%[=======================================>] 128,494 98.0K/s in 1.3s 16:58:16 (98.0 KB/s) - `oracleasm-2.6.18-92.el5-2.0.5-1.el5.i686.rpm' saved [128494/128494] # Така свалените пакети инсталираме чрез RPM: # rpm -Uvh oracleasm-support-2.1.2-1.el5.i386.rpm oracleasm-2.6.18-92.el5-2.0.5-1.el5.i686.rpm oracleasmlib-2.0.3-1.el5.i386.rpm Preparing... ########################################### [100%] 1:oracleasm-support ########################################### [ 33%] 2:oracleasm-2.6.18-92.el5 ########################################### [ 67%] 3:oracleasmlib ########################################### [100%] # След успешната инсталация следва процес на конфигуриране, който стартираме чрез командата oracleasm configure така: # /etc/init.d/oracleasm configure Configuring the Oracle ASM library driver. This will configure the on-boot properties of the Oracle ASM library driver. The following questions will determine whether the driver is loaded on boot and what permissions it will have. The current values will be shown in brackets ('[]'). Hitting without typing an answer will keep that current value. Ctrl-C will abort. Default user to own the driver interface []: oracle Default group to own the driver interface []: oinstall Start Oracle ASM library driver on boot (y/n) [n]: y Scan for Oracle ASM disks on boot (y/n) [y]: Writing Oracle ASM library driver configuration: done Initializing the Oracle ASMLib driver: [ OK ] Scanning the system for Oracle ASMLib disks: [ OK ] # Обърнете внимание, че за собственик на интерфейса на ASMLib драйвера задаваме предварително създадения потребител oracle, както и inventory групата. Също така инструктираме системата да стартира ASM още със зареждането на операционната система. Забележка: Ако процесът по конфигурация не мине успешно, проверете дали по време на инсталацията на Enterprise Linux 5 сте изключили SELinux. Ако сте забравили да изпълните тази стъпка проверете дали стойността на SELINUX във файла /etc/selinux/config е зададена като disabled. Преди ASM да може да използва трите диска, които сме заделили за него, той трябва да ги маркира и да им даде имена. За целта използваме командата oracleasm createdisk, като последователно я изпълняваме за дяловете sdb1, sdc1 и sdd1, присвоявайки им съответно имена VOL1, VOL2 и VOL3. Изпълняването на операциите изглеждат така: # /etc/init.d/oracleasm createdisk VOL1 /dev/sdb1 Marking disk "VOL1" as an ASM disk: [ OK ] # /etc/init.d/oracleasm createdisk VOL2 /dev/sdc1 Marking disk "VOL2" as an ASM disk: [ OK ] # /etc/init.d/oracleasm createdisk VOL3 /dev/sdd1 Marking disk "VOL3" as an ASM disk: [ OK ] Ако искаме да се уверим, че дисковете са маркирани и видими за ASM, можем да използваме командата oracleasm listdisk, която ни показва всички видими за ASM дискове: # /etc/init.d/oracleasm listdisks VOL1 VOL2 VOL3 # Използване на RAW устройства При настройването системата за работа с RAW устройства използваме различни подходи в зависимост от версията на дистрибуцията. При Oracle Enterprise Linux 4 (респективно CentOS-4, RedHat Enterprise Linux 4 и т.н.) процедираме по следния начин: Редактираме /etc/sysconfig/rawdevices, като добавяме следните записи в него: /dev/raw/raw1 /dev/sdb1 /dev/raw/raw2 /dev/sdc1 /dev/raw/raw3 /dev/sdd1 Рестартираме услугата rawdevices по следния начин: # service rawdevices restart Сменяме собствеността и задаваме права за работа с устройствата: # chown oracle:oinstall /dev/raw/raw1 # chown oracle:oinstall /dev/raw/raw2 # chown oracle:oinstall /dev/raw/raw3 # chmod 600 /dev/raw/raw1 # chmod 600 /dev/raw/raw2 # chmod 600 /dev/raw/raw3 Може да добавите тези команди и към /etc/rc.local файла, който ще ги изпълнява автоматично при рестартирането на машината, за да сте гарантирате правата и собствеността върху устройствата. При Enterprise Linux 5, CentOS-5 и изобщо – ядро 2.6, използването на RAW устройства повече не се поддържа. Описаната по-горе процедура няма да работи, затова трябва да използваме малко по-различен и заобиколен метод. Отваряме файла /etc/udev/rules.d/60-raw.rules и добавяме следните редове в него: ACTION==”add”, KERNEL==”sdb1″, RUN+=”/bin/raw /dev/raw/raw1 %N” ACTION==”add”, KERNEL==”sdc1″, RUN+=”/bin/raw /dev/raw/raw2 %N” ACTION==”add”, KERNEL==”sdd1″, RUN+=”/bin/raw /dev/raw/raw3 %N” Ако не искаме да рестартираме, трябва да изпълним следните команди в конзолата, за да получим незабавен достъп чрез /dev/rawn: #>/bin/raw /dev/raw/raw1 /dev/sdb1 #>/bin/raw /dev/raw/raw2 /dev/sdc1 #>/bin/raw /dev/raw/raw3 /dev/sdd1 Инсталация на Oracle ASM Без значение дали използваме ASMLib или RAW дискове, инсталацията на Oracle ASM протича аналогично. Нея ще разгледаме в третата част на този материал. |


Коментари