Linux İşletim Sistemlerinde (Grid) ASM Kurulumu için ASM Library ve UDEV Yapılandırması

DisksBu makalemizde “Linux İşletim Sistemlerinde ASM Kurulumu için ASM Library ve UDEV Yapılandırması” konusunu inceleyeceğiz. Yazımızda özellikle Oracle ASM (Grid) kurulumu için kullanacağımız diskleri iki yöntemle yapılandırmayı inceleyeceğiz. Bu yapılandırma işlemleri sonrası disklerimizi ASM kurulumuna hazır hale getirmiş olacağız. “UDEV” yapılandırmamız “Oracle ASM Library” kullanmadan elle yapılandırma işlemi içindir.

A-) ASM Library ile Disklerin Yapılandırması

1. Sunucumuzda yapılandırma işlemlerine başlamadan önce kullanacağımız ASM Library yazılımının güncelliğini kontrol ediyoruz.

-- Aşağıdaki işlemleri disklerimizi kullanacak tüm üye sunucularımızda uyguluyoruz.
-- Güncelleme işlemini yapılandırılmış bir sunucuda yapabiliriz. Aşağıdaki komut
ile güncelleme işlemi yapılabilir ve sistemimiz zarar görmeden yeni versiyona 
geçebiliriz.

# oracleasm update-driver

Kernel:         2.6.39-400.24.1.el6uek.x86_64 x86_64
Driver name:    oracleasm-2.6.39-400.24.1.el6uek.x86_64
Driver for kernel 2.6.39-400.24.1.el6uek.x86_64

2. Sunucularımızda yapılandırma işlemine başlıyoruz. Bu adımda disklerimiz için kullanıcı ve grupları belirleyecek kullanacağı diskleri yapılandıracağız.

-- Aşağıdaki işlemleri disklerimizi kullanacak tüm üye sunucularımızda uyguluyoruz.

# oracleasm configure -I

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 <ENTER> 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 []: dba
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y

The next two configuration options take substrings to match device names.
The substring "sd" (without the quotes), for example, matches "sda", "sdb",
etc.  You may enter more than one substring pattern, separated by spaces.
The special string "none" (again, without the quotes) will clear the value.

Device order to scan for ASM disks []: 
Devices to exclude from scanning []: 
Use device logical block size for ASM (y/n) [n]: y
Writing Oracle ASM library driver configuration: done

1. soruda "oracle" yazıp enter tuşuna basıyoruz.
2. soruda "dba" yazıp enter tuşuna basıyoruz.
3. soruda "y" yazıp enter tuşuna basıyoruz.
4. soruda "y" yazıp enter tuşuna basıyoruz.
5. ve 6. sorularda hiçbirşey yazmadan enter tuşuna basıyoruz.

3. Sunucumuzda Oracle ASM Kernel modülünü aktif edip “/dev/oracleasm” altında Oracle Mount Point’in oluşmasını sağlıyoruz.

-- Aşağıdaki işlemleri disklerimizi kullanacak tüm üye sunucularımızda uyguluyoruz.

# oracleasm init

Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module "oracleasm": oracleasm
Configuring "oracleasm" to use device logical block size 
Mounting ASMlib driver filesystem: /dev/oracleasm

4. Sunucularımızda ASM için kullınılacak disklerimizi “fdisk” ile oluşturup ASM için damgalıyoruz.

-- ASM İçin kullanılacak disklerimizi belirlemek üzere sorguluyoruz.

[root@koraykey-db1 ~]# ls -l /dev/sd*
brw-rw---- 1 root disk 8,  0 May 23 18:30 /dev/sda
brw-rw---- 1 root disk 8,  1 May 23 18:30 /dev/sda1
brw-rw---- 1 root disk 8,  2 May 23 18:30 /dev/sda2
brw-rw---- 1 root disk 8, 16 May 23 18:30 /dev/sdb
brw-rw---- 1 root disk 8, 32 May 23 18:30 /dev/sdc

[root@koraykey-db2 ~]# ls -l /dev/sd*
brw-rw---- 1 root disk 8,  0 May 23 18:30 /dev/sda
brw-rw---- 1 root disk 8,  1 May 23 18:30 /dev/sda1
brw-rw---- 1 root disk 8,  2 May 23 18:30 /dev/sda2
brw-rw---- 1 root disk 8, 16 May 23 18:30 /dev/sdb
brw-rw---- 1 root disk 8, 32 May 23 18:30 /dev/sdc

-- Disklerimizi açıklayacak olursak

sda --> İşletim sistemi diskimiz
sdb --> ASM için kullanılacak +DATA diskimiz
sdc --> ASM için kullanılacak +FRA diskimiz

-- Her üyede disk sıralamamız aynı durumda eğer farklı olsaydı bunları eşitlememiz
gerekecekti bunun aşağıdaki yazımızı inceleyebilirsiniz.

"Linux İşletim Sistemlerinde Disk Header ve ASM Disk Header Yapılandırması"

-- Aşağıdaki işlemleri sadece tek bir üye üzerinden yapılmalıdır.

-- Disklerimizde "fdisk" ile partition oluşturuyoruz.

# fdisk /dev/sdb

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-652, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-652, default 652): 
Using default value 652

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

# fdisk /dev/sdc

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-652, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-652, default 652): 
Using default value 652

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

1. Soruda "n" yazıp "enter" tuşuna basıyoruz.
2. Soruda "p" yazıp "enter" tuşuna basıyoruz.
3. Soruda "enter" tuşuna basıyoruz.
4. Soruda "enter" tuşuna basıyoruz.
5. Soruda "w" yazıp "enter" tuşuna basıyoruz.

-- Disklerimizi Oluşturup damgalıyoruz.

# oracleasm createdisk data1 /dev/sdb1
Writing disk header: done
Instantiating disk: done

# oracleasm createdisk fra1 /dev/sdc1
Writing disk header: done
Instantiating disk: done

5. Oluşturduğumuz disklerimizi diğer üye sunucularımızın görmesi için aşağıdaki işlemleri yapıyoruz.

# oracleasm scandisks

Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
Instantiating disk "DATA1"
Instantiating disk "FRA1"

6. Sunucularımızda oluşturduğumuz disklerimizi listelemek için aşağıdaki işlemleri yapıyoruz.

# ll /dev/oracleasm/disks/

total 0
brw-rw---- 1 oracle dba 8, 17 May 23 20:53 DATA1
brw-rw---- 1 oracle dba 8, 33 May 23 20:53 FRA1

veya

# oracleasm listdisks

DATA1
FRA1

7. Sunucularımızda ASM Library komutlarını görmek için aşağıdaki işlemleri yapıyoruz.

# oracleasm

Usage: oracleasm [--exec-path=<exec_path>] <command> [ <args> ]
       oracleasm --exec-path
       oracleasm -h
       oracleasm -V

The basic oracleasm commands are:
    configure        Configure the Oracle Linux ASMLib driver
    init             Load and initialize the ASMLib driver
    exit             Stop the ASMLib driver
    scandisks        Scan the system for Oracle ASMLib disks
    status           Display the status of the Oracle ASMLib driver
    listdisks        List known Oracle ASMLib disks
    querydisk        Determine if a disk belongs to Oracle ASMlib
    createdisk       Allocate a device for Oracle ASMLib use
    deletedisk       Return a device to the operating system
    renamedisk       Change the label of an Oracle ASMlib disk
    update-driver    Download the latest ASMLib driver

Oracle ASM Library ile “Grid Infrastructure” kurulumu için disklerimiz hazır. Bu işlemlerden sonra “Grid Infrastructure” kurulumuna geçebiliriz. Oracle ASM Library paketini edinmek için “Oracle ASMLib” sitesinden kullandığımız işletim sistemine uygun olanı indirerek kullanabiliriz. “Oracle Enterprise Linux 6.x” işletim sistemlerinde bu paket otomatik kurulu şekilde gelmektedir. Diğer Linux sürümleri için indirerek kurmamız gerekebilir. Listede olmayan “CentOS” Linux işletim sistemi için “Red Hat Enterprise Linux” için derlenmiş paketi kullanabiliriz. Bu paket “CentOS” için sertifikalandırılmış değildir ancak çalışmasında herhangi bir sorun yoktur.

B-) UDEV ile Disklerin Yapılandırması

1. Sunucumuzda “UDEV” yapılandırması için kullanacağımız disklerimizi belirliyoruz.

-- UDEV ASM İçin kullanılacak disklerimizi belirlemek üzere sorguluyoruz.

[root@koraykey-db1 ~]# ls -l /dev/sd*
brw-rw---- 1 root disk 8,  0 May 23 18:30 /dev/sda
brw-rw---- 1 root disk 8,  1 May 23 18:30 /dev/sda1
brw-rw---- 1 root disk 8,  2 May 23 18:30 /dev/sda2
brw-rw---- 1 root disk 8, 16 May 23 18:30 /dev/sdb
brw-rw---- 1 root disk 8, 32 May 23 18:30 /dev/sdc

[root@koraykey-db2 ~]# ls -l /dev/sd*
brw-rw---- 1 root disk 8,  0 May 23 18:30 /dev/sda
brw-rw---- 1 root disk 8,  1 May 23 18:30 /dev/sda1
brw-rw---- 1 root disk 8,  2 May 23 18:30 /dev/sda2
brw-rw---- 1 root disk 8, 16 May 23 18:30 /dev/sdb
brw-rw---- 1 root disk 8, 32 May 23 18:30 /dev/sdc

-- Disklerimizi açıklayacak olursak

sda --> İşletim sistemi diskimiz
sdb --> ASM için kullanılacak +DATA diskimiz
sdc --> ASM için kullanılacak +FRA diskimiz

-- Her üyede disk sıralamamız aynı durumda eğer farklı olsaydı bunları eşitlememiz
gerekecekti bunun aşağıdaki yazımızı inceleyebilirsiniz.

"Linux İşletim Sistemlerinde Disk Header ve ASM Disk Header Yapılandırması"

2. Sunucularımızda disklerimizi yapılandırmadan önce “fdisk” komutu ile “partition” oluşturuyoruz.

-- Aşağıdaki işlemleri sadece tek bir üye üzerinden yapılmalıdır.

-- Disklerimizde "fdisk" ile partition oluşturuyoruz.

# fdisk /dev/sdb

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-652, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-652, default 652): 
Using default value 652

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

# fdisk /dev/sdc

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-652, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-652, default 652): 
Using default value 652

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

1. Soruda "n" yazıp "enter" tuşuna basıyoruz.
2. Soruda "p" yazıp "enter" tuşuna basıyoruz.
3. Soruda "enter" tuşuna basıyoruz.
4. Soruda "enter" tuşuna basıyoruz.
5. Soruda "w" yazıp "enter" tuşuna basıyoruz.

2. Sunucumuzda “UDEV” için kullanacağımız disklerimizin tekil “SCSI_ID”lerini tespit etmek için aşağıdaki işlemleri yapıyoruz.

# scsi_id -g -u -d /dev/sdb
36000c29deec2418291b2747bed78d61f

# scsi_id -g -u -d /dev/sdc
36000c29049157572fed349c895fd4532

2. Sunucumuzda “UDEV” için kullanacağımız diskler için “UDEV Rules” oluşturuyoruz ve gerekli parametreleri aşağıdaki gibi yapıyoruz.

-- Kural dosyamızı yaratıyoruz ve aşağıdaki parametreleri giriyoruz.
-- Aşağıdaki dosyayı disklerimizi kullanacak tüm üye sunucularımızda oluşturuyoruz.

# vim /etc/udev/rules.d/99-oracle-asmdevices.rules

KERNEL=="sdb1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent", RESULT=="36000c29deec2418291b2747bed78d61f", NAME="data1", OWNER="oracle", GROUP="dba", MODE="0660"
KERNEL=="sdc1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent", RESULT=="36000c29049157572fed349c895fd4532", NAME="fra1", OWNER="oracle", GROUP="dba", MODE="0660"

3. Sunucumuzda disklerimizin “partition table”larını “partprobe” komutu ile oluşturuyoruz.

-- Aşağıdaki işlemleri sadece tek bir üye üzerinden yapılmalıdır.

# partprobe /dev/sdb1

# partprobe /dev/sdc1

4. Sunucularımızda oluşturuduğumuz kuralları test etmek için aşağıdaki işlemleri uyguluyoruz.

-- Aşağıdaki testi disklerimizi kullanacak tüm üye sunucularımızda
uyguluyoruz

-- Test işlemi öncesi bir hata ile karşılaşmamak için sunucularımızı yeniden
başlatıyoruz.

# shutdown -r now

-- Test işlemimizi gerçekleştiriyoruz.

# udevadm test /sys/block/sdb/sdb1

# udevadm test /sys/block/sdc/sdc1

5. Disklerimizin izinlerinin ve sahibinin “oracle” kullanıcısı olduğunu kontrol etmek için aşağıdaki işlemleri yapıyoruz.

# ls -l /dev/data1
brw-rw---- 1 oracle dba 8, 17 May 23 22:03 /dev/data1

# ls -l /dev/fra1
brw-rw---- 1 oracle dba 8, 33 May 23 22:03 /dev/fra1

-- Gördüğümüz gibi "oracle" "dba" hakları UDEV kuralları sayesinde atanmış durumda.

6.  Sunucularımızda yapılandırmamızın ardından “UDEV” uygulamamızı çalışır hale getiriyoruz.

-- İşlemlerimizin ardından "UDEV" servisimizi başlatıyoruz.
-- Aşağıdaki komutu tüm üye sunucularımızda çalıştırıyoruz.

# start_udev
Starting udev: [  OK  ]

UDEV ile “Grid Infrastructure” kurulumu için disklerimiz hazır. Bu işlemlerden sonra “Grid Infrastructure” kurulumuna geçebiliriz. Burada dikkat edeceğimiz “scsi_id” komutumuzun parametreleri Linux versiyonlarına göre farklılık gösterebilir. Ayrıca disklerimizin block dosyaları “/sys/block” yerine “/dev/block/” altında olabilir. Bu durumlar Linux versiyonlarına göre farklılık gösterebilir. Yazımızında yapılandırmamız için “Oracle Enterprise Linux 6.x” versiyonu kullanılmıştır.

Bu yazımızda “Linux İşletim Sistemlerinde ASM Kurulumu için ASM Library ve UDEV Yapılandırması” ayrı ayrı inceledik. Kurulum tercihimize göre disklerimizi yapılandırırken yukarıdaki seçeneklerden istediğimizi kullanabiliriz. Kolaylık ve pratik olarak “Oracle ASM Library” “UDEV” yapılandırmasına göre bir çok işlemi kendisi gerçekleştirdiği ve yönetimi daha kolay olduğu için daha çok tercih edilmektedir.

Başka bir makalede görüşmek üzere…

Bu yazı Oracle, Unix / Linux kategorisine gönderilmiş ve , , , , , , , , , , , , , , , , , ile etiketlenmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.