创建ASM磁盘

来源:互联网 发布:unity3d 手机摇杆 编辑:程序博客网 时间:2024/04/30 02:39

ASM磁盘组是由ASM磁盘构成的,在创建ASM磁盘组之前,首先创建ASM磁盘。在Linux平台,既可以使用ASMLib来管理Oracle ASM磁盘,也可以直接使用磁盘设备文件作为ASM磁盘;非Linux平台如果要使用ASM,只能使用原始设备文件作为ASM磁盘。

使用ASMLib需要安装和操作系统内核完全一致的RPM包,并完成ASMLib初始化配置和ASM磁盘组的初始化过程。如果使用原始设备文件作为ASM磁盘,需要在集群的每个节点修改作为ASM磁盘的设备文件的权限,以便grid用户能够正常读写这些设备。


一、安装ASMLib驱动

执行以下步骤安装操作系统支持的CPU架构的ASMLib驱动。

步骤1、下载ASMLib安装包。
根据服务器和操作系统内核版本到Oracle ASMLib官网上下载相应的ASMLib安装包。下面对下载页面中不同的CPU架构进行简单说明:

(1)AMD64 / Intel em64t 架构
Intel em64t(Extended Memory 64 Technology)扩展的64位技术,这种技术和AMD64都是IA-32技术的增强版本。使用这种芯片的服务器可以运行64位的程序,也能很好地兼容32位的程序。常见的x86_64就是这样的运行环境。而x86是IA-32环境,只支持32位的程序运行。常见的PC服务器中的Intel至强都是em64t的CPU。

(2)Intel IA64架构
真正使用64位技术生产的CPU—Intel安腾64位CPU。这种CPU常在HP小型机上使用。

(3)IBM Power架构
IBM Power CPU,IBM P系列小型机都是使用这样的CPU。

(4)IBM zSeries架构
用在IBM大型机,比较难见到。

(5)Intel IA32(x86)架构
除了(1)和(2)以外的Intel和AMD的CPU都可以运行。
说明:一般的PC可以根据CPU的型号搜索其具备的特性来确定是否支持em64t。

[root@ractest1 asmlib]# uname -a  Linux rhel1 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:48 EDT 2009 x86_64 x86_64  x86_64 GNU/Linux
根据上述内核版本需要下载如下3个包:

oracleasm-2.6.18-164.el5-2.0.5-1.el5.x86_64.rpm  oracleasmlib-2.0.4-1.el5.x86_64.rpm  oracleasm-support-2.1.3-1.el5.x86_64.rpm
注意   下载的oracleasm版本一定要和系统的版本号完全一致(2.6.18-164.el5)。例如,安装的操作系统内核是Xen的,请下载相应的支持Xen内核的oracleasm包。使用ASMLib管理ASM磁盘,所有的集群节点都需要安装ASMLib包。

步骤2、配置ASMLib驱动。

完成RPM包安装之后,需要在所有节点完成ASMLib的配置工作,如下所示:

[root@rhel1 asmlib]# /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 <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]:  Writing Oracle ASM library driver configuration: done  Initializing the Oracle ASMLib driver:                     [  OK  ]  Scanning the system for Oracle ASMLib disks:               [  OK  ]
注意 在初始化ASMLib驱动的过程中可能会失败,失败的时候查看日志/var/log/ oracleasm查找失败原因。下面举个简单的例子:

cat /var/log/oracleasm  Creating /dev/oracleasm mount point: /dev/oracleasm  Loading module "oracleasm": failed  Unable to load module "oracleasm"

通过上面的日志可以看到在加载oracleasm模块时的错误。通过观察发现,系统运行在2.6.18-53.el5xen内核上,而下载安装的ASMLib包是oracleasm-2.6.18-53.el5,所以报此错,通过下载安装oracleasm-2.6.18-53.el5-2.0.5-1.el5xen包,成功配置ASMLib驱动。


二、 创建ASMLib磁盘(1)

ASMLib磁盘是ASM磁盘的一种表现形式,执行以下步骤创建ASMLib磁盘。
步骤1   共享磁盘分区。
将每个共享磁盘划分为一个主分区,只需要在任一节点执行分区即可。操作如下:

[root@rhel1 soft]# fdisk /dev/sda  The number of cylinders for this disk is set to 30976.  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)  Command (m for help): n  Command action     e   extended     p   primary partition (1-4)  p  Partition number (1-4): 1  First cylinder (1-30976, default 1):  Using default value 1  Last cylinder or +size or +sizeM or +sizeK (1-30976, default 30976):  Using default value 30976  Command (m for help): w  The partition table has been altered!  Calling ioctl () to re-read partition table.  Syncing disks.  [root@rhel1 soft]#partprobe

其他的节点服务器需要重启才能生成分区设备文件。

注意 挂载到本地的iSCSI磁盘一定要分区后再使用,而且分区一定要是主分区。如果挂载的单张磁盘大于2TB,使用parted工具创建分区(fdisk不支持在大于2.2TB的磁盘上创建分区)。

前面讨论过由于服务器对挂载的iSCSI扫描顺序的不同,不同节点相同设备文件可能对应不同的存储设备,通过udev解决了这个问题。执行上一步对iSCSI分区以后,udev创建的链接设备文件也会发生相应的变化。变化如下:

[root@rhel1 iscsi]# cd /dev/iscsi  [root@rhel1 iscsi]# tree  .  |-- dbfile1  |   |-- part -> ../../sdf  |   `-- part1 -> ../../sdf1  ……  6 directories, 12 files

从上面的输出可以看出,分区创建之后,udev也新创建了一个链接文件指向分区设备文件, part1链接到sdf1,完整的链接路径是/dev/iscsi/dbfile1/part1链接到设备文件/dev/sdf1。使用/dev/iscsi/dbfile1/part1作为ASM磁盘能够帮助区分具体的iSCSI磁盘。

用同样的方法将其他磁盘都划分一个主磁盘分区。完成后在分区的节点执行partprobe命令,将分区信息写入磁盘分区表,然后在另一个节点执行fdisk -l就可以看到相同的分区信息。如果在另外的节点看不到分区信息,请重启服务器。

在生产环境中,存储设备都有多条路径,对应挂载到节点服务器就有多个设备文件,所以需要在节点服务器安装多路径软件,然后对聚合后的多路径设备文件进行分区;分区完成后应重启其他服务器,确保系统创建了相应的分区设备文件。多路径软件相关的内容将在第15章详细讨论。

步骤2、创建ASMLib磁盘。
ASMLib驱动的安装和磁盘分区完成之后,就可以创建ASMLib磁盘。
使用ASMLib驱动中的oracleasm工具创建ASMLib磁盘:

[root@rhel1 soft]# /etc/init.d/oracleasm createdisk OCRVDISK1 /dev/iscsi/ocrvdisk1/part1  Marking disk "OCRVDISK1" as an ASM disk:                    [  OK  ]  [root@rhel1 soft]# /etc/init.d/oracleasm createdisk OCRVDISK2 /dev/iscsi/ocrvdisk2/part1  Marking disk "OCRVDISK2" as an ASM disk:                    [  OK  ]  [root@rhel1 soft]# /etc/init.d/oracleasm createdisk OCRVDISK3 /dev/iscsi/ocrvdisk3/part1  Marking disk "OCRVDISK3" as an ASM disk:                    [  OK  ]  [root@rhel1 soft]# /etc/init.d/oracleasm createdisk DBFILE1 /dev/iscsi/dbfile1/part1  Marking disk "DBFILE1" as an ASM disk:                     [  OK  ]  [root@rhel1 soft]# /etc/init.d/oracleasm createdisk FRA1 /dev/iscsi/fra1/part1  Marking disk "FRA1" as an ASM disk:                        [  OK  ]  [root@rhel1 asmlib]#  [root@rhel1 init.d]# ./oracleasm listdisks  DATAFILE1  FRA1  OCRVDISK1  OCRVDISK2  OCRVDISK3

三、创建ASMLib磁盘(2)

注意   这里创建ASMLib磁盘使用的是udev工具生成的磁盘设备文件的链接文件。
ASMLib磁盘不需要在多个节点重复创建,在一个节点创建成功,只需要在其他节点使用oracleasm工具扫描一次,就可以在其他节点看到所有的ASMLib磁盘。这步是必须的,如果没有在其他磁盘扫描创建的ASMLib磁盘,那么在该节点磁盘组则无法加载。在其他节点执行以下命令来扫描配置成功的ASMLib磁盘:

[root@rhel2 asmlib]# /etc/init.d/oracleasm scandisks  Scanning the system for Oracle ASMLib disks:               [  OK  ]  [root@rhel2 init.d]# ./oracleasm listdisks  DATAFILE1  FRA1  OCRVDISK1  OCRVDISK2  OCRVDISK3
ASMLib磁盘创建成功之后,会在/dev/oracleasm目录下产生相应的设备文件,在创建ASMLib磁盘组的时候同样可以使用这些设备文件。执行以下命令,查看/etc/oracleasm/disks目录下的ASM磁盘设备文件:

[root@rhel1 oracleasm]# pwd  /dev/oracleasm  [root@rhel1 oracleasm]# tree disks  disks  |-- OCRVDISK1  |-- OCRVDISK2  |-- OCRVDISK3  |-- DBFILE1  `-- FRA1
确保这些文件的所有者都是grid:oinstall。
注意   ASMLib驱动只存在于Linux平台,强烈推荐在Linux平台使用ASMLib来管理ASM磁盘。Oracle不仅限于使用ASMLib作为ASM磁盘,在Linux平台和其他UNIX平台同样可以使用分区的设备文件作为ASM磁盘。需要注意的是,分区设备文件分为块设备文件和字符设备文件,应使用字符设备文件作为ASM磁盘,字符设备文件也就是通常所说的裸设备文件。
步骤3 、使用oracleasm工具。
oracleasm工具是安装ASMLib驱动之后配套的ASMLib管理工具,使用它能够完成ASMLib的配置和管理工作。oracleasm不只在/etc/init.d/目录下存在,系统默认找到的是/usr/sbin/位置下的oracleasm,通过执行/usr/sbin/oracleasm能够获得更为详细的帮助信息。下面是两个不同位置的oracleasm工具的帮助信息:

[root@rhel1 bin]# which oracleasm  /usr/sbin/oracleasm  [root@rhel1 bin]# /usr/sbin/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  [root@rhel1 bin]# /etc/init.d/oracleasm -h  Usage:  /etc/init.d/oracleasm  {start|stop|restart|enable|disable|configure|createdisk|deletedisk|  querydisk|listdisks|scandisks|status}

从上面输出的帮助信息可以看出,不同位置的oracleasm提供的功能是不完全相同的。其中/usr/sbin下的oracleasm能够加载(init)/卸载(exit)ASMLib驱动、重命名ASMLib磁盘标签(renamedisk),以及下载最新的ASMLib驱动(update-driver);而/etc/init.d/下面的oracleasm包含日常维护中的启动、停止、重启、启用、禁用和配置的功能。

两个位置的oracleasm工具实现的功能不完全相同,因此在实际的使用过程中可以配合使用。


四、创建ASMLib磁盘(3)
(1)查看ASM磁盘对应的磁盘设备文件
通过oracleasm querydisk -p可以查看创建的ASM磁盘对应的设备文件名称。

[root@rhel2 init.d]# ./oracleasm querydisk -p OCRVDISK1  Disk "OCRVDISK1" is a valid ASM disk  /dev/sda1: LABEL="OCRVDISK1" TYPE="oracleasm"
(2)查看ASMLib的配置信息
配置信息如下:

[root@rhel1 bin]# /usr/sbin/oracleasm configure  ORACLEASM_ENABLED=true ORACLEASM_UID=grid ORACLEASM_GID=asmadmin ORACLEASM_SCANBOOT=true ORACLEASM_SCANORDER="" ORACLEASM_SCANEXCLUDE=""

如上所示,可以了解ASMLib驱动所属的用户、组和是否自动启动等信息。这与/etc/init. d/oracleasm的执行效果完全不同。

另外,执行/usr/sbin/oracleasm configure-i启动的ASMLib配置向导,同执行/etc/init.d/oracleasm configure命令启动的配置向导是相同的:

[root@rhel1 bin]# /usr/sbin/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 [grid]:

原创粉丝点击