用asmlib方式創建oracle集群ASM磁盤(oracleasm)


創建asm磁盤的幾種方式
創建asm方式很多主要有以下幾種
1、Faking方式 2、裸設備方式 3、udev方式(它下面有兩種方式) 3.1 uuid方式 3.2 raw方式(裸設備方式) 4、asmlib方式(oracleasm)
 
系統采樣
[root@shdb02 dev]#  lsb_release -a
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:
graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch Distributor ID: RedHatEnterpriseServer Description: Red Hat Enterprise Linux Server release 6.4 (Santiago) Release: 6.4 Codename: Santiago [root@shdb02 dev]# uname -rm //查詢體系架構 2.6.32-358.el6.x86_64 x86_64 [root@shdb02 dev]# cat /etc/redhat-release //linux centos系統版本 Red Hat Enterprise Linux Server release 6.4 (Santiago)

  [root@shdb02 disks]# su - oracle
  [oracle@shfpdb02 ~]$ echo $ORACLE_HOME
  /u01/app/oracle/product/11.2.0/db_1  //ORACLE版本

 
一、安裝asmlib(即使用oracleasm工具)
 在Linux中,加載設備時,因加載順序問題,共享磁盤在各節點的設備名可能會不一致.
    為解決這個問題,保證各節點的設備名一致,有兩種方法:
    <<1>>使用asmlib創建asm磁盤,將會在各分區上做asm磁盤標識,以保證設備名稱的唯一性
    首先安裝ASM內核軟件包
    在oracle官方網站下載asm的軟件包安裝到各節點主機上.

  Oracle ASMLib 2.0

 1、oracleasmlib-2.0.12-1.el6.x86_64.rpm  
  https://download.oracle.com/otn_software/asmlib/oracleasmlib-2.0.12-1.el6.x86_64.rpm
 2、oracleasm-support-2.1.8-1.el6.x86_64.rpm
  https://oss.oracle.com/projects/oracleasm-support/dist/files/RPMS/rhel6/amd64/2.1.8/oracleasm-support-2.1.8-1.el6.x86_64.rpm
   https://www.oracle.com/linux/downloads/linux-asmlib-v6-downloads.html

    https://download.oracle.com/otn_software/asmlib/oracleasmlib-2.0.12-1.el6.x86_64.rpm  (el6代表centos6)

    https://www.oracle.com/linux/downloads/linux-asmlib-rhel6-downloads.html

 
安裝 Install ASMLIB RPM(這三個包要注意按照次序來)

[root@shdb02 src]# ll
kmod-oracleasm-2.0.6.rh1-2.el6.x86_64.rpm 
oracleasmlib-2.0.4-1.el6.x86_64.rpm
oracleasm-support-2.1.8-1.el6.x86_64.rpm
[root@shdb02 src]#  cat /etc/issue
Red Hat Enterprise Linux Server release 6.4 (Santiago)
Kernel \\r on an \\m
[root@shdb02 src]#  uname -a
Linux itrus 2.6.32-358.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 EST 2013 x86_64 x86_64 x86_64 GNU/Linux

第一步: [root@shdb02 src]#  rpm
-ivh oracleasm-support-2.1.8-1.el6.x86_64.rpm

  warning: oracleasm-support-2.1.8-1.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
  Preparing... ########################################### [100%]
  1:oracleasm-support ########################################### [100%]

第二步:
[root@shdb02 src]# rpm -ivh kmod-oracleasm-2.0.6.rh1-2.el6.x86_64.rpm //安裝時間較長。 warning: kmod-oracleasm-2.0.6.rh1-2.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY Preparing... ########################################### [100%] 1:kmod-oracleasm ########################################### [100%]
第三步:
[root@shdb02 src]#  rpm -qa|grep kmod-oracleasm
kmod-oracleasm-2.0.6.rh1-2.el6.x86_64
#[root@shdb02 src]#  rpm
-ivh oracleasmlib-2.0.4-1.el6.x86_64.rpm warning: oracleasmlib-2.0.4-1.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY Preparing... ########################################### [100%] 1:oracleasmlib ########################################### [100%]

//檢查oracleasm

 [root@shdb02 src]# rpm -qa|grep oracleasm
  oracleasmlib-2.0.4-1.el6.x86_64 
  kmod-oracleasm-2.0.6.rh1-2.el6.x86_64
  oracleasm-support-2.1.8-1.el6.x86_64

  二、創建ASM磁盤(啟用、配置、創建、刪除、查看等操作)
2、在一個節點執行以下命令
# /etc/init.d/oracleasm enable
# /etc/init.d/oracleasm configure
# /etc/init.d/oracleasm createdisk diska /dev/sdb5
# /etc/init.d/oracleasm createdisk diskb /dev/sdb6
# /etc/init.d/oracleasm createdisk diskc /dev/sdb7
將在以下路徑/dev/oracleasm/disks/下產生ASM磁盤asm-diskaa,asm-diskab,asm-diskac.  在其它節點執行以下命令,掃描ASM磁盤.
3、具體過程
 [root@shdb02 src]# /etc/init.d/oracleasm -h
  Usage: /etc/init.d/oracleasm 
{start|stop|restart|enable|disable|configure|createdisk|deletedisk|querydisk|listdisks|scandisks|status}

[root@shdb02 src]# /etc/init.d/oracleasm status
Checking if ASM is loaded: no
Checking if /dev/oracleasm is mounted: no

[root@shdb02 src]# oracleasm scandisks
      Reloading disk partitions: done
      Cleaning any stale ASM disks...
      Scanning system for ASM disks...

 [root@shdb02 src]# /etc/init.d/oracleasm configure  //注意 和 oracleasm configure 有區別,前面有/etc/init.d/  否則一個是配置,一個是顯示結果
 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 []: grid
  Default group to own the driver interface []: asmadmin
  Start Oracle ASM library driver on boot (y/n) [n]: y
  Scan for Oracle ASM disks on boot (y/n) [y]: y
  Writing Oracle ASM library driver configuration: done
  Initializing the Oracle ASMLib driver: [ OK ]
  Scanning the system for Oracle ASMLib disks: [ OK ] 

   //這個過程配合日志看下做了什么

  [root@shdb02 dev]# cat /var/log/oracleasm
  Creating /dev/oracleasm mount point: /dev/oracleasm
  Loading module "oracleasm": oracleasm
  Mounting ASMlib driver filesystem: /dev/oracleasm
  Reloading disk partitions: done
  Cleaning any stale ASM disks...
  Scanning system for ASM disks...

 

  [root@shdb02 src]# oracleasm configure
  ORACLEASM_ENABLED=true
  ORACLEASM_UID=oracle
  ORACLEASM_GID=dba
  ORACLEASM_SCANBOOT=true
  ORACLEASM_SCANORDER=""
  ORACLEASM_SCANEXCLUDE=""
  ORACLEASM_USE_LOGICAL_BLOCK_SIZE="false"

  //如果想重新配置可以使用 oracleasm configure -i來重新配置

[root@shdb02 src]# /etc/init.d/oracleasm enable Writing Oracle ASM library driver configuration: done Initializing the Oracle ASMLib driver: [ OK ] Scanning the system for Oracle ASMLib disks: //回車 [ OK ] //這個過程時間比較長耐心等待

//oracleasm 檢查狀態
[root@shdb02 src]# /etc/init.d/oracleasm status
Checking if ASM is loaded: yes
Checking if /dev/oracleasm is mounted: yes
[root@shdb02 src]# /etc/init.d/oracleasm listdisks  //如果配置錯誤,則會顯示不出磁盤,這個要注意。

//注意這里,一旦你安裝了oracleasm則會有這個目錄出現

  [root@shdb02 dev]# ll /dev | grep oracleasm
  drwxr-xr-x 4 root root 0 Mar 15 23:41 oracleasm

  oracleasm添加的磁盤通常都會在 /dev/oracleasm/disks


由於系統重新啟動后,磁盤的owner會被修改為root,為保證重啟后保持磁盤owner不變,可以在/etc/udev/rule下添加一個rules文件
    添加udev的 /etc/udev/rules.d/99-asmdisk-owner.rules文件,添加uuid內容
    當然,asmlib並不只是用於創建asm磁盤,還具有asm存儲管理功能,並為應用程序提供接口.

另外會碰到的就是

  [root@shdb02 dev]# /etc/init.d/oracleasm createdisk asm-diskjj /dev/sdj  //應該是名稱不對
  Marking disk "asm-diskjj" as an ASM disk: [FAILED]  //這種情況

//分區的磁盤才有uuid

 [root@shdb02 dev]# scsi_id -g -u -d /dev/sdj  //sdj我已分區,不需要格式化
 369ce37410023334d07dc2c4b00000008

  //最后解決。

 [root@shdb02 dev]# /usr/sbin/oracleasm querydisk /dev/sdj
  Device "/dev/sdj" is not marked as an ASM disk
 [root@shdb02 dev]# /usr/sbin/oracleasm createdisk diskj /dev/sdj   //換了名稱之后
  Device "/dev/sdj" is not a partition
 [root@shdb02 dev]# /usr/sbin/oracleasm createdisk diskj /dev/sdj1
  Writing disk header: done
  Instantiating disk: done

[root@shdb02 dev]# cat /var/log/oracleasm    //查看日志,如果出現問題

//這里開始出現

 [root@shdb02 disks]# oracleasm listdisks
 DISKJ

 [root@shdb02 disks]# lsblk -f | grep sdj
  sdj
   └─sdj1 oracleasm DISKJ

  //另外,lsblk 下出現大量的sdm,sdw等磁盤信息,但是一查確實無用的東西,應該是之前誰弄的錯的,應該結合fdisk -l 查看更准確一些。

  當然還有另外一種情況,利用的是uuid方式   

 [root@shdb02 disks]# ll /dev/ | grep asm*
  drwxrwx--- 2 root asmadmin 280 Dec 15 11:17 asm
  brw-rw---- 1 grid asmadmin 65, 160 Mar 16 01:35 asm-diskaa
  brw-rw---- 1 grid asmadmin 65, 176 Mar 16 01:35 asm-diskab
  brw-rw---- 1 grid asmadmin 65, 192 Mar 16 01:37 asm-diskac
  brw-rw---- 1 grid asmadmin 65, 208 Mar 16 01:35 asm-diskad
  brw-rw---- 1 grid asmadmin 8, 16 Mar 16 01:37 asm-diskb

 然后需要在每個節點上設置磁盤的訪問權限,否則后面配置磁盤時無法發現磁盤.
[root@shdb02 src]#chown grid:dba /dev/asm-diskaa [root@shdb02 src]#chown grid:dba /dev/asm-diskab [root@shdb02 src]#chown grid:dba /dev/asm-diskac

//如果改變/dev/oracleasm的情況下,但是這種是可以共存的。

  //這種是configure需要配置的時候用戶是grid,組是dba,加入到udev,請看下面的99-x-asmdisk.rules文件中的配置

 
         

 

查看系統內可使用的磁盤
[root@shfpdb02 dev]# lsblk -f | grep sa*
sda                                                                                     
├─sda1                         ext4              cf0f3592-a2dc-497c-be07-d4f1e0d42253   /boot
└─sda2                         LVM2_member       nY2JaS-cCZf-qn6E-f4XS-i6Ph-Bf3Y-DxLWF9 
  └─vg_bjfpbdb2-lv_swap (dm-1) swap              bcea691d-47c4-49d4-b9bc-eb366bc246f0 [SWAP]
sdb                            oracleasm                                                
sdc                            oracleasm                                                
sdd                            oracleasm                                                
sde                            oracleasm                                                
sdf                            oracleasm                                                
sdg                            oracleasm                                                
sdh                            oracleasm                                                
sdi                            oracleasm                                                
sdj                                                           
sdk                            oracleasm                                                
sdl                            oracleasm                                                
sdm                            oracleasm                                                
sdn                            oracleasm                                                
sdo                            oracleasm                                                
sdp                            oracleasm                                                
sdq                            oracleasm                                                
sdr                            oracleasm                                                
sds                            oracleasm                                                
sdt                            oracleasm                                                
sdu                            oracleasm                                                
sdv                            oracleasm                                                
sdw                            oracleasm                                                
sdx                            oracleasm                                                
sdy                            oracleasm                                                
sdz                            oracleasm                                                
sdaa                           oracleasm                                                
sdab                           oracleasm                                                
sdac                           oracleasm                                                
sdad                           oracleasm                
  三、使用udev管理
    將從磁盤獲得scsi_id,然后根據scsi_id加載成易讀的設備名,保證設備名的唯一性.
    如果使用虛擬機,首先需在虛擬主機的配置文件vmx文件中設置下列參數,以起用
    disk.EnableUUID = "TRUE"
    如果虛擬主機有通過設定更改任何參數,這個參數會自動更改為FALSE,需要重設.
    啟動主機后確認udev是否已安裝
    # rpm -qa | grep udev
    udev-095-14.27.el5_7.1
    執行以下命令獲得scsi id信息
    # /sbin/scsi_id -g -u -s /block/sdb         
    #rhel6使用:# /sbin/scsi_id -g -u -d /dev/sdb
    36000c29fd07c14fdb1ca780130a5ad8e
    配置udev配置文件,添加rules文件(在目錄/etc/udev/rules.d/下)並授權.
    # cd /etc/udev/rules.d/
    # vi 99-x-asmdisk.rules
    添加以下參數,注意一個行為一條規則,並且逗號(,)與下一個關鍵詞之間有空格.
    KERNEL=="sd?5", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s /block/$parent", RESULT=="36000c29fd07c14fdb1ca780130a5ad8e", NAME="asm-diskaa",
OWNER="grid", GROUP="dba", MODE="0660"
    KERNEL=="sd?6", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s /block/$parent", RESULT=="36000c29fd07c14fdb1ca780130a5ad8e", NAME="asm-diskab",
OWNER="oracle", GROUP="dba", MODE="0660"
    KERNEL=="sd?7", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s /block/$parent", RESULT=="36000c29fd07c14fdb1ca780130a5ad8e", NAME="asm-diskac",
OWNER="oracle", GROUP="dba", MODE="0660"
    重新啟動udev或重啟節點.
    # start_udev
    驗證是否配置正常
    # ls -al /dev/asmdisk*
    后續創建磁盤組時可以將搜索字符串ASM_DISKSTRING參數指向‘/dev/asmdisk*'就可以了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM