استفاده از udev برای ASM

سلام! برای اضافه کردن دیسک به دیتابیس اوراکل از طریق udev ، مراحل زیر را می‌توانید دنبال کنید. همچنین توضیحاتی در مورد فایل‌های پیکربندی و فیلدهای مهم آن‌ها ارائه خواهم داد.

قبل از ادامه از دوست عزیزم حسن رضائی برای تهیه این مطلب تشکر میکنم.

1. آماده‌سازی دیسک جدید

ابتدا دیسک جدید را به سرور متصل کنید و از طریق دستور fdisk یا lsblk مطمئن شوید که دیسک شناسایی شده است.

[root@vahiddb ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  100G  0 disk
├─sda1   8:1    0    1G  0 part /boot/efi
├─sda2   8:2    0   40G  0 part /u01
├─sda3   8:3    0   20G  0 part /
├─sda4   8:4    0   15G  0 part /var
├─sda5   8:5    0    5G  0 part /home
├─sda6   8:6    0    4G  0 part [SWAP]
└─sda7   8:7    0   15G  0 part /tmp
sdb      8:16   0   20G  0 disk
sr0     11:0    1 13.2G  0 rom

2. ایجاد پارتیشن بر روی دیسک

با استفاده از fdisk یا parted یک پارتیشن جدید ایجاد کنید.

[root@vahiddb ~]# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.32.1).

Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.

Device does not contain a recognized partition table.

Created a new DOS disklabel with disk identifier 0xcf143bac.

Command (m for help): n

Partition type

   p   primary (0 primary, 0 extended, 4 free)

   e   extended (container for logical partitions)

Select (default p): p

Partition number (1-4, default 1): 1

First sector (2048-41943039, default 2048):

Last sector, +sectors or +size{K,M,G,T,P} (2048-41943039, default 41943039):

Created a new partition 1 of type 'Linux' and of size 20 GiB.

Command (m for help): w

The partition table has been altered.

Calling ioctl() to re-read partition table.

Syncing disks.

 

3. پیدا کردن شناسه یکتای دیسک

برای پیدا کردن شناسه یکتای دیسک، می‌توانید از دستور scsi_id به صورت دستی استفاده کنید:

 

[root@vahiddb ~]# sudo /usr/lib/udev/scsi_id -g -u -d /dev/sdb

1ATA_VBOX_HARDDISK_VBa32d0c6e-5f61b0e2

این مقدار را باید در جایی نگه داریم تا در تنظمیات آتی استفاده کنیم.

 

اضافه کردن قوانین UDEV

فایل قوانین udev را باز کنید یا یک فایل جدید ایجاد کنید.

[root@vahiddb ~]# vi /etc/udev/rules.d/99-oracle-disk.rules

[root@vahiddb ~]# cat /etc/udev/rules.d/99-oracle-disk.rules

PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/sdb1", RESULT=="1ATA_VBOX_HARDDISK_VBa32d0c6e-5f61b0e2", NAME="DATA01", OWNER="oracle", GROUP="asmadmin", MODE="0660"

توضیحات فیلدها:

  • PROGRAM: برنامه‌ای که باید اجرا شود تا شناسه یکتای دیسک را استخراج کند. در اینجا از scsi_id استفاده می‌شود.
  • RESULT: نتیجه اجرای برنامه scsi_id که شامل شناسه یکتای دیسک است. این مقدار باید با شناسه دیسک شما مطابقت داشته باشد.
  • NAME: نامی که می‌خواهید به دیسک بدهید (مثلاً oracle-disk1).
  • OWNER: مالک فایل دستگاه (مثلاً oracle).
  • GROUP: گروه مالک فایل دستگاه (مثلاً dba).
  • MODE: سطح دسترسی فایل دستگاه (مثلاً 0660).

 

اعمال تنظیمات UDEV

برای اعمال تنظیمات جدید udev، دستور زیر را اجرا کنید:

udevadm control --reload-rules

udevadm trigger

 

چک نهایی:

بعد از انجام این کارها، باید مشخصات دیسک، بصورت زیر عوض شده باشد:

[root@vahiddb ~]# ll /dev/sdb

brw-rw----. 1 oracle asmadmin 8, 16 Aug  4 04:30 /dev/sdb