1. 程式人生 > >oracle 使用udev繫結磁碟方法

oracle 使用udev繫結磁碟方法

scsi_id命令發出一個SCSI INQUIRY指令給裝置,訪問vital product data (VPD)頁0x83的資料,那裡包含裝置的WWID和其他的資訊,或者頁0x80的資料,那裡包含單元序列號(unit serial number)。 scsi_id命令的執行結果(一長串字元)是裝置的WWID,當前對映到/dev/sdc(/sys/block/sdc)。每一條到裝置的路徑和裝置上的每一個分割槽的WWID都是相同的。裝置的WWID不會改變,即使將其他的裝置新增到系統或者從系統中刪除。但是,對映到/dev/sdc的裝置可能會改變。這就是為什麼需要建立一個靜態的裝置名。可以根據WWID建立裝置名。


一、 如何獲取裝置WWID
(1) Redhat 5 Enterprise Linux 如下:
#/sbin/scsi_id -g -u -s /dev/sdb
Or
#/sbin/scsi_id -g -u -s /block/sdb
Shell指令碼
# for i in `cat /proc/partitions | awk {'print $4'} |grep sd`; do echo "### $i: `scsi_id -g -u -s /block/$i`"; done

(2) Redhat 6 Enterprise Linux 如下:
#/sbin/scsi_id -g -u /dev/sdb
Or
#/sbin/scsi_id -g -u /block/sdb
Or
#/sbin/scsi_id --whitelist [--replace-whitespace] [ --device=] /dev/sdb
Shell指令碼
# for i in `cat /proc/partitions | awk {'print $4'} |grep sd`; do echo "### $i: `scsi_id --whitelist --replace-whitespace /dev/$i`"; done

二、 寫入udev .rules

(1) 對於整個盤的繫結寫入 99-oracle-asmdevices.rules (檔名,測試可以隨便命令)

RHEL5
for i in b c d e f ;
do
echo "KERNEL==\"sd*\", BUS==\"scsi\", PROGRAM==\"/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\", RESULT==\"`/sbin/scsi_id -g -u -s /dev/sd$i`\", NAME=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\"" >> /etc/udev/rules.d/99-oracle-asmdevices.rules
done

RHEL6
for i in b c d e f ;
do
echo "KERNEL==\"sd*\", BUS==\"scsi\", PROGRAM==\"/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\", RESULT==\"`/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", NAME=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\"" >> /etc/udev/rules.d/99-oracle-asmdevices.rules
done

Kernel [2.6.32] and later
KERNEL=="sdc", BUS=="scsi", PROGRAM=="/sbin/scsi_id -gud /dev/$name" RESULT=="1ATA_VBOX_HARDDISK_VB93327385-145dda10", SYMLINK+="asmdisk/asm-crs1", OWNER="grid", GROUP="asmadmin", MODE="0660"
OR
KERNEL=="sdc", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name" RESULT=="1ATA_VBOX_HARDDISK_VB93327385-145dda10", SYMLINK+="asmdisk/asm-crs1", OWNER="grid", GROUP="asmadmin", MODE="0660"

(2) 對於磁碟子分割槽的繫結
Redhat Enterprise Linux 5 用如下引數 
KERNEL=="sd?[1-2]", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="1ATA_VBOX_HARDDISK_VBaef9fa71-c32978c8", NAME="asm-ocr%n", OWNER="grid", GROUP="asmdba", MODE="0660"

Redhat Enterprise Linux 6 用如下引數
KERNEL=="sd?[1-2]", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBaef9fa71-c32978c8", NAME="asm-ocr%n", OWNER="grid", GROUP="asmdba", MODE="0660"
Or
KERNEL=="sdb1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent" RESULT=="1ATA_VBOX_HARDDISK_VB8383313d-441fd502", NAME="asm-crs1", OWNER="grid", GROUP="asmadmin", MODE="0660"

(3) 只改許可權
[[email protected] oracle]# cat /etc/udev/rules.d/99-asm-multipath.rules
PROGRAM="/bin/chown oracle:oinstall /dev/mapper/back_mpath1p1"
PROGRAM="/bin/chown oracle:oinstall /dev/mapper/back_mpath2p1"
PROGRAM="/bin/chown oracle:oinstall /dev/mapper/data_mpath1p1"
PROGRAM="/bin/chown oracle:oinstall /dev/mapper/data_mpath2p1"

三、 udev管理
# udevadm -h
# udevadm control -h
# udevadm control --reload-rules
#############################################
SUSE Linux 使用UDEV配置ASMdisk
#############################################
vzwc1:~ # uname -a 
Linux vzwc1 3.0.76-0.11-default #1 SMP Fri Jun 14 08:21:43 UTC 2013 (ccab990) x86_64 x86_64 x86_64 GNU/Linux 
vzwc1:~ # cat /etc/issue 
Welcome to SUSE Linux Enterprise Server 11 SP3 (x86_64) - Kernel \r (\l).

新增編輯/etc/scsi_id.config 檔案
options=--whitelisted --replace-whitespace

新增編輯/etc/udev/rules.d/99-oracle-asmdevices.rules
for i in b c d e f g h i 
do 
echo "KERNEL==\"sd*\", SUBSYSTEM==\"block\", PROGRAM==\"/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\", RESULT==\"`/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", NAME=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\"" 
done

vzwc1:~ # cat /etc/udev/rules.d/99-oracle-asmdevices.rules 
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB0221f2e9-f408ff4f", NAME="asm-diskb", OWNER="grid", GROUP="asmadmin", MODE="0660" 
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB49eb0a29-3c952001", NAME="asm-diskc", OWNER="grid", GROUP="asmadmin", MODE="0660" 
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB4aa82271-74ee0a90", NAME="asm-diskd", OWNER="grid", GROUP="asmadmin", MODE="0660" 
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB2f97c868-e1906340", NAME="asm-diske", OWNER="grid", GROUP="asmadmin", MODE="0660" 
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBf82d24e5-0f7a2eaf", NAME="asm-diskf", OWNER="grid", GROUP="asmadmin", MODE="0660" 
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB6a27197b-c6c40e34", NAME="asm-diskg", OWNER="grid", GROUP="asmadmin", MODE="0660" 
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB9b039565-b8786d7f", NAME="asm-diskh", OWNER="grid", GROUP="asmadmin", MODE="0660" 
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB06b0cef7-cc3e6c40", NAME="asm-diski", OWNER="grid", GROUP="asmadmin", MODE="0660"

啟動udev
vzwc1:~ # /etc/init.d/boot.udev status 
vzwc1:~ # /etc/init.d/boot.udev restart 
Restarting udevd:

SUSE和RedHat系列不同,需要使用udevadm test測試,例如 udevadm test /sys/block/sdb
建議配置完成後重啟

vzwc1:~ # fdisk -l 
Disk /dev/sda: 42.9 GB, 42949672960 bytes 
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors 
Units = sectors of 1 * 512 = 512 bytes 
Sector size (logical/physical): 512 bytes / 512 bytes 
I/O size (minimum/optimal): 512 bytes / 512 bytes 
Disk identifier: 0x0002a75e 

Device Boot Start End Blocks Id System 
/dev/sda1 2048 8386559 4192256 82 Linux swap / Solaris 
/dev/sda2 * 8386560 8787967 200704 83 Linux 
/dev/sda3 8787968 83886079 37549056 83 Linux 
vzwc1:~ # ll /dev/sd* 
brw-rw---- 1 root disk 8, 0 Dec 30 13:56 /dev/sda 
brw-rw---- 1 root disk 8, 1 Dec 30 13:56 /dev/sda1 
brw-rw---- 1 root disk 8, 2 Dec 30 13:56 /dev/sda2 
brw-rw---- 1 root disk 8, 3 Dec 30 13:56 /dev/sda3 
vzwc1:~ # 
vzwc1:~ # l /dev/asm-disk* 
brw-rw---- 1 grid asmadmin 8, 16 Dec 30 13:56 /dev/asm-diskb 
brw-rw---- 1 grid asmadmin 8, 32 Dec 30 13:56 /dev/asm-diskc 
brw-rw---- 1 grid asmadmin 8, 48 Dec 30 13:56 /dev/asm-diskd 
brw-rw---- 1 grid asmadmin 8, 64 Dec 30 13:56 /dev/asm-diske 
brw-rw---- 1 grid asmadmin 8, 80 Dec 30 13:56 /dev/asm-diskf 
brw-rw---- 1 grid asmadmin 8, 96 Dec 30 13:56 /dev/asm-diskg 
brw-rw---- 1 grid asmadmin 8, 112 Dec 30 13:56 /dev/asm-diskh 
brw-rw---- 1 grid asmadmin 8, 128 Dec 30 13:56 /dev/asm-diski 
#############################################
案例一則:IBM multipath多路徑+VCS雙機+udev方式+LVM
#############################################
1、檢視多路徑
AEP11:/etc/multipath # multipath -ll | grep IBM
3600507680c800091180000000000022e dm-2 IBM ,2145 
3600507680c800091180000000000022d dm-1 IBM ,2145 
3600507680c800091180000000000022c dm-0 IBM ,2145 
2、配置多路徑別名
備註:因機器上無/etc/multipath.conf(不明原因),從其他主機(OS版本不同)拷貝/etc/multipath.conf,僅用multipath.conf配置檔案中的別名部分配置,如下所示:
AEP11:/etc/multipath # cat /etc/multipath.conf 
multipaths {
multipath {
wwid 3600507680c800091180000000000022c
alias aep_diska
}
multipath {
wwid 3600507680c800091180000000000022d
alias aep_diskb
}
multipath {
wwid 3600507680c800091180000000000022e
alias aep_diskc
}
}

重新生成多路徑裝置:
multipath -F
multipath -v2

3、檢視重新生成的多路徑裝置
AEP11:~ # multipath -ll | grep aep
aep_diskc (3600507680c800091180000000000022e) dm-2 IBM ,2145 
aep_diskb (3600507680c800091180000000000022d) dm-1 IBM ,2145 
aep_diska (3600507680c800091180000000000022c) dm-0 IBM ,2145

4、udev方式繫結多路徑
AEP11:~ # cat /etc/udev/rules.d/99-aep-devices.rules 
KERNEL=="dm*", SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="3600507680c800091180000000000022c", NAME="aep_diska"
KERNEL=="dm*", SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="3600507680c800091180000000000022d", NAME="aep_diskb"
KERNEL=="dm*", SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="3600507680c800091180000000000022e", NAME="aep_diskc"

備註:如加許可權,則可類似如下:
KERNEL=="dm*", SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="3600507680c800091180000000000022c", NAME="aep_diska", OWNER="grid", GROUP="asmadmin", MODE="0660"

-- 重新載入配置檔案
AEP11:~ # udevadm control --reload-rules
-- 使規則生效,生成udev裝置檔案
AEP11:~ # udevadm trigger

5、檢視繫結的裝置:
# ls -lrt /dev/aep_disk*

6、建立pv
AEP11:~ # pvcreate /dev/aep_disk{a,b,c}
AEP11:~ # pvs

注意:因操作的主機AEP11是雙機,所以除去步驟6建立pv之外,其他步驟都需在主備機上操作。

相關推薦

oracle 使用udev磁碟方法

scsi_id命令發出一個SCSI INQUIRY指令給裝置,訪問vital product data (VPD)頁0x83的資料,那裡包含裝置的WWID和其他的資訊,或者頁0x80的資料,那裡包含單元序列號(unit serial number)。 scsi_id命令的執行結果(一長串字元)是裝置的WW

oracle RAC 通過udev磁碟

關於oracle RAC 通過udev繫結磁碟,以下內容不做翻譯: Real Application Clusters (RAC) requires special ownership (owner, group and permissions) for the OCR (Oracle Clu

使用UDEV磁碟的說明

 如果系統已經存在盤陣資訊,現在要增加多個lun資訊,那麼我們需要做下面安全操作: 1),對磁碟進行udev別名繫結(可以通過指令碼來做) 2),然後由應用修改其資料的儲存裝置改為udev繫結之後的別名裝置,如果是ASM,那就不需要做udev綁定了,因為ASM的資訊,寫在了

udevASM磁碟

[[email protected] rules.d]# fdisk -l Disk /dev/sda: 42.9 GB, 42949672960 bytes 255 heads, 63 sectors/track, 5221 cylinders Units =

ORACLE中對in操作使用變數方法

ORACLE中對in操作使用變數繫結的方法<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />在ORACLE資料庫程式設計中使用變數繫結,可以重用共享池的查詢,最小

android data binding jetpack III 一個方法

第三篇  給view繫結一下方法響應。  (補充:1.被繫結的方法必須是public的。      1.繫結方法可以用主語法。也可以用以下雙冒號方式“::”    android:onClick="@{presenter::onClick}" ) 第一步:定義個響應

jquery獲取dom物件上方法

jquery在1.8.0版本之前: $.data(domObj,'events');//或者$('selector').data('events') 1.8.0及以後的版本: $._data(domObj,'events');//注意,這裡不能像$('selector')._data('event

DataGridView控制元件---資料方法

    DataGridView控制元件是在windows應用程中顯示資料最好的方式,它只需要幾行簡短的程式碼就可以把資料顯示給使用者,同時又支援增、刪、改操作。今天將自己總結的增加資料的方法總結分

Asp.Net--DropDownList與DataTable資料方法(C#)[學習筆記]

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default"%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transi

原生js事件方法簡單封裝

const ListenerFN = function ({ target, event, FN, option = {} }) { if (target, event, FN) Error('ta

js給文字框動態onblur方法,失焦的時候觸發

//以下以失焦時,去掉文字框對應值的前後空格為例;此外存在區域性重新整理元素也適應,區域性重新整理後再呼叫此方法即可。 var funMap = {};//記錄頁面變動之前的所有元素原始onblur方

關於Vue.js中資料模型的以及方法事件的與呼叫

在vue.js中,我們可以將事件方法寫在methods屬性中,資料模型在data中定義Vue的基本結構如下(只寫最常用的):將資料與vue例項繫結通過v-bind標籤這裡繫結的是sourceId這個值,基於vue的雙向繫結,如果要取vue的資料模型中的資料,使用{{param

2種js動態事件方法

1、使用原生JS動態為動態建立的物件繫結事件1-1、建立一個function,用來相容IE8以下瀏覽器新增事件 function addEvent(el, type, fun) { if (el.addEventListener) {

C#手動ComboBox方法

一般手動新增 ComboBox 資料有很多種方法,可以直接新增 Item,也可以通過資料繫結 Value 和 Display。直接新增 Item 無法設定下拉框的值,所以我使用繫結 ComboBox 資料來源的 Datatble 方式直接通過二維陣列 String 自動轉換繫

Linux 6上使用UDEV共享儲存

轉載地址:http://www.linuxidc.com/Linux/2015-04/115820.htm 1.硬碟的檢視方式; 2.獲得硬碟SCSI(Small Computer System Interface)ID; 3.繫結共享儲存; 4.繫結共享儲存的指令碼;

js事件方法:addEventListener與attachEvent的不同瀏覽器的相容性寫法

js的事件繫結方法中,ie只支援attachEvent,而FF和Chrome只支援addEventListener,所以就必須為這兩個方法做相容處理,原理是先判斷attachEvent只否為真(存在),如果為真則用attachEvent()方法,否則的話就用addEvent

jQuery bind/One/live三種事件方法的區別

1. bind/Unbind 在jquery的事件模型中,有兩個基本的事件綁 定函式,bind與unbind,這兩個函式的含義就是匹配頁面元素進行相關事件的處理。比如我們在JS中經常使用到的 onfocus,onblur,onmouseover,onmousedown等事件都可以作為bind的引數進行傳遞。$

oracle變數的使用

不使用繫結變數而使用硬編碼是oracle效能問題的主要原因和可伸縮性的主要障礙而且這種障礙是除了使用繫結變數以外很難改變的!下面根據一個簡單的試驗來檢視硬編碼與使用繫結變數對效能的影響:在一個查詢中我們可以使用兩種方式:比如查詢個人編號:select * from ac01

淺析multipath與udev——磁碟策略

    asm在使用磁碟時一般不會直接使用初始的磁碟路徑,asm對磁碟的許可權非常敏感,一般asm磁碟許可權是grid:asmadmin,且grid使用者必須在asmadmin組中,特殊環境甚至oracle也需要在asmadmin組中。如何穩定磁碟許可權(比如主機重啟後磁碟許

oracle變數使用方法總結

在Oracle中,對於一個提交的sql語句,存在兩種可選的解析過程,硬解析和軟解析。 一個硬解析需要經解析,制定執行路徑,優化訪問計劃等步驟。硬解析不僅僅會耗費大量的cpu,更重要的是會佔據重要的閂(latch)資源。唯一使得oracle能夠重複利用執行計劃的方法就是採用繫