ITPub博客

12c RAC 创建ADVM和ACFS

原创 作者:迷倪小魏 时间:2018-05-06 17:26:08 0 删除 编辑


    ACFS是
oracle database 11gR2的一个新特性。关于ACFS的更多信息请参考官方文档。这篇文章是基于12C RAC环境写的,不知道在非RAC环境中,还能不能使用ACFS呢,有兴趣的朋友可以测试下。以下内容是如何使用asmca、命令行以及sql语句去创建ADVM,进而创建ACFS。其中在操作系统中会用到mountumountacfsutilmkfs.acfssrvctl等几个命令。其中的acfsutil是不属于任何一个rpm软件包的,只有你安装了grid组件之后才会出现。


一、ADVM介绍

ADVM主要是为了使除了数据库之外的第三方应用程序也可以使用asm存储,这样不限于使asm局限于自家的数据库领域。要想使用ADVM首先必须安装grid,已经创建好了asm磁盘,asm磁盘组。一个advm卷可以占用一个磁盘组的所有空间,也可以占用部分空间,一个advm卷的空间只能来自于一个asm磁盘组,但是一个asm磁盘组可以创建多个advm卷。每次创建的advm卷都会在/dev/asm/目录下产生一个文件,用于创建文件系统。


二、创建ADVM的方法

1、使用asmca命令进行图形化工具创建

(1)在创建ADVM之间,首选in需要创建ASM磁盘组,下图是创建好的磁盘组,ACFS磁盘组用于接下来的实验使用


(2)点击Volumes->create,输入卷名称和卷大小以及选择ASM磁盘组


(3)ADVM创建成功,发现state是未启用的状态


(4)在卷wjqvol1上创建ACFS文件系统,并选择自动挂载,输入挂载点


(5)【可忽略】点击show command,查看创建ACFS的相关命令,便于后续可以手动的去创建ACFS


(6)点击ok后,提示执行下面的脚本


(7)切换到root用户,执行该脚本,然后点击close


(8)查看ACFS文件系统在RAC的两个节点都挂载成功

[grid@c01n01 ~]$ df -Th

Filesystem    Type    Size  Used Avail Use% Mounted on

/dev/xvda2    ext3    9.7G  2.8G  6.4G  31% /

tmpfs        tmpfs    4.0G  1.3G  2.8G  31% /dev/shm

/dev/xvda1    ext3    243M   83M  147M  37% /boot

/dev/xvdc1    ext3    2.0G   38M  1.9G   2% /home

/dev/xvdd1    ext3     20G   12G  7.1G  62% /u01

/dev/asm/wjqvol1-245

              acfs    2.0G  145M  1.9G   8% /wjqacfs

[grid@c01n01 ~]$

[grid@c01n01 ~]$  ssh c01n02 "df -Th"

Filesystem    Type    Size  Used Avail Use% Mounted on

/dev/xvda2    ext3    9.7G  3.8G  5.5G  41% /

tmpfs        tmpfs    4.0G  1.3G  2.8G  31% /dev/shm

/dev/xvda1    ext3    243M   83M  147M  37% /boot

/dev/xvdc1    ext3    2.0G   37M  1.9G   2% /home

/dev/xvdd1    ext3     20G   12G  7.2G  61% /u01

/dev/asm/wjqvol1-245

              acfs    2.0G  145M  1.9G   8% /wjqacfs


(9)查看ACFS相关的信息


(10)查看crs资源可以发现刚才创建好的ADVM以及ACFS


(11)进入挂载点,进行读写测试



2、使用命令创建ADVM

(1)在grid用户下执行asmcmd命令,创建ADVM

[grid@c01n01 ~]$ asmcmd -p


ASMCMD [+] > volinfo -G acfs wjqvol1     #该命令查看已存在卷的信息

Diskgroup Name: ACFS


         Volume Name: WJQVOL1

         Volume Device: /dev/asm/wjqvol1-245

         State: ENABLED

         Size (MB): 2048

         Resize Unit (MB): 32

         Redundancy: UNPROT

         Stripe Columns: 4

         Stripe Width (K): 128

         Usage: ACFS

         Mountpath: /wjqacfs


(2)通过volcreate命令创建ADVM,并通过volinfo查看卷的信息

[grid@c01n01 ~]$ asmcmd -p

ASMCMD [+] > volcreate -G acfs -s 1G wjqvol2

ASMCMD [+] > volinfo -G acfs wjqvol2

Diskgroup Name: ACFS


         Volume Name: WJQVOL2

         Volume Device: /dev/asm/wjqvol2-245

         State: ENABLED

         Size (MB): 1024

         Resize Unit (MB): 32

         Redundancy: UNPROT

         Stripe Columns: 4

         Stripe Width (K): 128

         Usage:

         Mountpath:


(3)可以通过volresize调整ADVM卷的大小

ASMCMD [+] > volresize -G acfs -s 1.5G wjqvol2

ASMCMD [+] > volinfo -G acfs wjqvol2

Diskgroup Name: ACFS


         Volume Name: WJQVOL2

         Volume Device: /dev/asm/wjqvol2-245

         State: ENABLED

         Size (MB): 1536

         Resize Unit (MB): 32

         Redundancy: UNPROT

         Stripe Columns: 4

         Stripe Width (K): 128

         Usage:

         Mountpath:


注意:调小的时候会出现下面的提示信息

ASMCMD [+] > volresize -G acfs -s 1G wjqvol2

The requested size is smaller than the current size.

Data corruption may occur.

Are you sure? [y/n]: y

ASMCMD [+] >

ASMCMD [+] > volinfo -G acfs wjqvol2

Diskgroup Name: ACFS


         Volume Name: WJQVOL2

         Volume Device: /dev/asm/wjqvol2-245

         State: ENABLED

         Size (MB): 1024

         Resize Unit (MB): 32

         Redundancy: UNPROT

         Stripe Columns: 4

         Stripe Width (K): 128

         Usage:

         Mountpath:


(4)通过volstat查看卷的使用相关信息

ASMCMD [+acfs] > volstat


DISKGROUP NUMBER / NAME:  3 / ACFS

---------------------------------------

  VOLUME_NAME

     READS           BYTES_READ      READ_TIME       READ_ERRS      

     WRITES          BYTES_WRITTEN   WRITE_TIME      WRITE_ERRS     

  -------------------------------------------------------------

  WJQVOL1

     2685            1510912         47.366          0              

     1407            5386240         43.44           0              

  WJQVOL2

     0               0               0               0              

     0               0               0               0              

  WJQVOL3

     0               0               0               0              

     0               0               0               0              


3、通过SQL命令创建ADVM

(1)通过SQLplus进去,执行SQL语句

[grid@c01n01 ~]$ sqlplus / as sysdba


SQL*Plus: Release 12.1.0.1.0 Production on Fri May 4 11:46:52 2018


Copyright (c) 1982, 2013, Oracle.  All rights reserved.



Connected to:

Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production

With the Real Application Clusters and Automatic Storage Management options


SQL> alter diskgroup acfs add volume wjqvol3 size 1G;

alter diskgroup acfs add volume wjqvol3 size 1G

*

ERROR at line 1:

ORA-15032: not all alterations performed

ORA-15260: permission denied on ASM disk group

注意:sqlplus下创建advm不能使用sysdba权限登录,否则会报权限不足,需要使用sysasm权限


SQL> alter diskgroup acfs add volume wjqvol3 size 1G;

Diskgroup altered.


(2)使用sysasm权限登录进行创建

[grid@c01n01 ~]$ sqlplus / as sysasm


SQL*Plus: Release 12.1.0.1.0 Production on Fri May 4 11:53:08 2018


Copyright (c) 1982, 2013, Oracle.  All rights reserved.



Connected to:

Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production

With the Real Application Clusters and Automatic Storage Management options


SQL> alter diskgroup acfs resize volume wjqvol3 size 1.1G;

alter diskgroup acfs resize volume wjqvol3 size 1.1G

                                                *

ERROR at line 1:

ORA-02017: integer value required

注意:通过SQL语句调整ADVM大小时,只能整数倍的调整


SQL> alter diskgroup acfs resize volume wjqvol3 size 2G;

alter diskgroup acfs resize volume wjqvol3 size 2G

*

ERROR at line 1:

ORA-15032: not all alterations performed

ORA-15041: diskgroup "ACFS" space exhausted

注意:调整的ADVM大小操作ASM磁盘组的大小会出现如上的报错信息


SQL> alter diskgroup acfs resize volume wjqvol3 size 2G;

Diskgroup altered.


(4)查看asm文件的相关信息

SQL> select group_number,bytes,type from v$asm_file;


GROUP_NUMBER      BYTES TYPE

------------ ---------- --------------------

           1       1536 ASMPARAMETERFILE

           1  165974016 OCRFILE

           1       7680 PASSWORD

           1   62922752 DATAFILE

           1  419438592 DATAFILE

           1  629153792 DATAFILE

           1 2147491840 DATAFILE

           1  104865792 DATAFILE

           1    9945088 CONTROLFILE

           1   52429312 ONLINELOG

           1   52429312 ONLINELOG

           1   52429312 ONLINELOG

           1   20979712 TEMPFILE

           1       3584 PARAMETERFILE

           1       7680 PASSWORD

           1  954212352 DATAFILE

           1  838868992 DATAFILE

           1    5251072 DATAFILE

           1  183508992 DATAFILE

           1   18956288 CONTROLFILE

           1   52429312 ONLINELOG

           1   52429312 ONLINELOG

           1  109060096 TEMPFILE

           1  376840192 DATAFILE

           1   78651392 DATAFILE

           1   52429312 ONLINELOG

           1   52429312 ONLINELOG

           1       3584 PARAMETERFILE

           2   18956288 CONTROLFILE

           2   52429312 ONLINELOG

           2   52429312 ONLINELOG

           2   52429312 ONLINELOG

           2   52429312 ONLINELOG

           3 2147483648 ASMVOL

           3 1073741824 ASMVOL

           3 2147483648 ASMVOL


36 rows selected.


(4)查看ADVM卷的相关信息

SQL> select volume_name,size_mb,state,volume_device,mountpath from v$asm_volume;


VOLUME_NAME        SIZE_MB STATE    VOLUME_DEVICE                  MOUNTPATH

--------------- ---------- -------- ------------------------------ ----------

WJQVOL1               2048 REMOTE   /dev/asm/wjqvol1-245           /wjqacfs

WJQVOL2               1024 REMOTE   /dev/asm/wjqvol2-245

WJQVOL3               2048 REMOTE   /dev/asm/wjqvol3-245


(5)查看ADVM卷的使用相关信息

SQL> select volume_name,reads,writes,read_errs,bytes_read,bytes_written from v$asm_volume_stat;


VOLUME_NAME          READS     WRITES  READ_ERRS BYTES_READ BYTES_WRITTEN

--------------- ---------- ---------- ---------- ---------- -------------

WJQVOL1                  0          0          0          0             0

WJQVOL2                  0          0          0          0             0

WJQVOL3                  0          0          0          0             0


(6)查看/dev/asm路径下上面创建的ADVM卷文件

[root@c01n01 ~]# ll /dev/asm/

total 0

brwxrwx--- 1 root asmadmin 252, 125441 May  3 16:01 wjqvol1-245

brwxrwx--- 1 root asmadmin 252, 125442 May  4 11:45 wjqvol2-245

brwxrwx--- 1 root asmadmin 252, 125443 May  4 11:53 wjqvol3-245




三、创建ACFS

1、通过asmca创建

上述已经实验

2、在ADVM上创建标准文件系统

(1)格式化成ext4文件系统

[root@c01n01 ~]# mkfs.ext4 /dev/asm/wjqvol2-245

mke2fs 1.41.12 (17-May-2010)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

65536 inodes, 262144 blocks

13107 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=268435456

8 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:

        32768, 98304, 163840, 229376


Writing inode tables: done                           

Creating journal (8192 blocks): done

Writing superblocks and filesystem accounting information: done


This filesystem will be automatically checked every 25 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.


(2)挂载

[root@c01n01 ~]# mkdir /wjqext4

[root@c01n01 ~]# mount /dev/asm/wjqvol2-245 /wjqext4

[root@c01n01 ~]# df -TH

Filesystem    Type     Size   Used  Avail Use% Mounted on

/dev/xvda2    ext3      11G   3.0G   6.9G  31% /

tmpfs        tmpfs     4.3G   1.3G   3.0G  31% /dev/shm

/dev/xvda1    ext3     254M    87M   154M  37% /boot

/dev/xvdc1    ext3     2.2G    39M   2.0G   2% /home

/dev/xvdd1    ext3      21G    12G   7.7G  62% /u01

192.0.2.1:/stage

               nfs      11G    11G      0 100% /stage

/dev/asm/wjqvol1-245

              acfs     2.2G   152M   2.0G   8% /wjqacfs

/dev/asm/wjqvol2-245

              ext4     1.1G    35M   969M   4% /wjqext4


3、在ADVM上创建ACFS文件系统

注意:ACFS不能用于linux根分区,不能用于grid的安装目录,不支持数据库文件(即asm存储的文件),使用acfs要依赖于advm


(1)格式化成acfs文件系统

[root@c01n01 ~]# mkfs.acfs /dev/asm/wjqvol3-245

mkfs.acfs: version                   = 12.1.0.1.0

mkfs.acfs: on-disk version           = 39.0

mkfs.acfs: volume                    = /dev/asm/wjqvol3-245

mkfs.acfs: volume size               = 2147483648

mkfs.acfs: Format complete.


(2)挂载,注意:这里只是临时挂载,只能在RAC的当前节点看到,其他的节点看不到

[root@c01n01 ~]# mkdir /wjqacfs.man

[root@c01n01 ~]# mount /dev/asm/wjqvol3-245 /wjqacfs.man

mount: you must specify the filesystem type

[root@c01n01 ~]# mount -t acfs /dev/asm/wjqvol3-245 /wjqacfs.man

[root@c01n01 ~]# df -Th

Filesystem    Type    Size  Used Avail Use% Mounted on

/dev/xvda2    ext3    9.7G  2.8G  6.4G  31% /

tmpfs        tmpfs    4.0G  1.3G  2.8G  31% /dev/shm

/dev/xvda1    ext3    243M   83M  147M  37% /boot

/dev/xvdc1    ext3    2.0G   38M  1.9G   2% /home

/dev/xvdd1    ext3     20G   12G  7.1G  62% /u01

/dev/asm/wjqvol1-245

              acfs    2.0G  145M  1.9G   8% /wjqacfs

/dev/asm/wjqvol2-245

              ext4   1008M   34M  924M   4% /wjqext4

/dev/asm/wjqvol3-245

              acfs    2.0G   43M  2.0G   3% /wjqacfs.man


(3)通过SQL查看挂载情况

SQL> select volume_name,size_mb,state,volume_device,mountpath from v$asm_volume;


VOLUME_NAME        SIZE_MB STATE    VOLUME_DEVICE        MOUNTPATH

--------------- ---------- -------- -------------------- ---------------

WJQVOL1               2048 REMOTE   /dev/asm/wjqvol1-245 /wjqacfs

WJQVOL2               1024 REMOTE   /dev/asm/wjqvol2-245

WJQVOL3               2048 REMOTE   /dev/asm/wjqvol3-245 /wjqacfs.man


(4)查看crs资源可以发现,可以看到创建ADVM卷,但是wjqvol3卷上创建的ACFS文件系统却看不到



(5)通过asmca可以发现,在wjqvol3上创建的ACFSstate处于UNKNOWN[未挂载状态]


(6)下面通过命令进行永久的挂载

永久挂载:

[grid@c01n01 ~]$ srvctl add filesystem -d /dev/asm/wjqvol3-245 -m /wjqacfs.man -u grid -fstype ACFS -autostart ALWAYS

PRCN-2018 : Current user grid is not a privileged user

注意:这里在grid下执行上述命令提示没有权限,只能在root用户下执行


[root@c01n01 ~]# /u01/app/12.1.0/grid/bin/srvctl add filesystem -d /dev/asm/wjqvol3-245 -m /wjqacfs.man -u grid -fstype ACFS -autostart ALWAYS


启动该文件系统,然后查看是否自动挂载

[root@c01n01 ~]# /u01/app/12.1.0/grid/bin/srvctl start filesystem -d /dev/asm/wjqvol3-245

 

[root@c01n01 ~]# df -Th

Filesystem    Type    Size  Used Avail Use% Mounted on

/dev/xvda2    ext3    9.7G  2.8G  6.4G  31% /

tmpfs        tmpfs    4.0G  1.3G  2.8G  31% /dev/shm

/dev/xvda1    ext3    243M   83M  147M  37% /boot

/dev/xvdc1    ext3    2.0G   38M  1.9G   2% /home

/dev/xvdd1    ext3     20G   12G  7.1G  62% /u01

192.0.2.1:/stage

               nfs    9.9G  9.7G     0 100% /stage

/dev/asm/wjqvol1-245

              acfs    2.0G  145M  1.9G   8% /wjqacfs

/dev/asm/wjqvol2-245

              ext4   1008M   34M  924M   4% /wjqext4

/dev/asm/wjqvol3-245

              acfs    2.0G   43M  2.0G   3% /wjqacfs.man

查看crs资源发现,存在该文件系统,并且可以看到挂载的路径


再次通过asmca查看,发现在wjqvol3上创建的ACFSstatemount状态


四、使用ACFS的管理工具-acfsutil

1、查看acfsutil的版本信息

[grid@c01n01 ~]$ acfsutil version

acfsutil version: 12.1.0.1.0


2、查看ACFS文件系统的相关信息

[grid@c01n01 ~]$ acfsutil info fs

/wjqacfs

    ACFS Version: 12.1.0.1.0

    flags:        MountPoint,Available

    mount time:   Thu May  3 16:01:14 2018

    volumes:      1

    total size:   2147483648

    total free:   1996140544

    primary volume: /dev/asm/wjqvol1-245

        label:                

        flags:                 Primary,Available,ADVM

        on-disk version:       39.0

        allocation unit:       4096

        major, minor:          252, 125441

        size:                  2147483648

        free:                  1996140544

        ADVM diskgroup         ACFS

        ADVM resize increment: 33554432

        ADVM redundancy:       unprotected

        ADVM stripe columns:   4

        ADVM stripe width:     131072

    number of snapshots:  0

    snapshot space usage: 0

    replication status: DISABLED


/wjqacfs.man

    ACFS Version: 12.1.0.1.0

    flags:        MountPoint,Available

    mount time:   Fri May  4 12:19:50 2018

    volumes:      1

    total size:   2147483648

    total free:   2103123968

    primary volume: /dev/asm/wjqvol3-245

        label:                

        flags:                 Primary,Available,ADVM

        on-disk version:       39.0

        allocation unit:       4096

        major, minor:          252, 125443

        size:                  2147483648

        free:                  2103123968

        ADVM diskgroup         ACFS

        ADVM resize increment: 33554432

        ADVM redundancy:       unprotected

        ADVM stripe columns:   4

        ADVM stripe width:     131072

    number of snapshots:  0

    snapshot space usage: 0

    replication status: DISABLED


3、管理ACFS快照

(1)创建ACFS的快照

[grid@c01n01 ~]$ acfsutil snap create wjqvol1 /wjqacfs

acfsutil snap create: Snapshot operation is complete.


(2)快照创建成功后,在ACFS的挂载路径下会自动生成一个.ACFS的目录,该目录下的snaps可以查看快照

[grid@c01n01 wjqvol1]$ pwd

/wjqacfs/.ACFS/snaps/wjqvol1

[grid@c01n01 wjqvol1]$ ll

total 4

d????????? ? ?    ?         ?            ? lost+found

-rw-r--r-- 1 grid oinstall 18 May  3 16:11 test.txt


(3)更新之前创建快照前的文件test.txt

[root@c01n01 wjqacfs]# echo "This is snapshot" >> test.txt

[root@c01n01 wjqacfs]# cat test.txt

This is acfs test

This is snapshot


(4)查看快照文件和现在文件的差异

[root@c01n01 wjqacfs]# cat .ACFS/snaps/wjqvol1/test.txt

This is acfs test


(5)删除快照

[root@c01n01 ~]# acfsutil snap delete wjqvol1 /wjqacfs

acfsutil snap delete: Snapshot operation is complete.



五、删除ACFS以及ADVM

1、使用acfsutil撤销acfs文件系统的注册

[root@c01n01 ~]# acfsutil registry -d /wjqacfs.man

acfsutil registry: ACFS-03135: unable to locate mount point /wjqacfs.man in Oracle Registry

acfsutil registry: ACFS-03112: unable to remove mount point /wjqacfs.man from Oracle Registry

注意:如果出现如上的报错,说明在crs中没有该ACFS的资源,并没有注册到crs中,需要你按照永久挂载的方式进行注册后即可进行


2、再次执行上述撤销注册信息

[root@c01n01 ~]# acfsutil registry -d /wjqacfs.man

acfsutil registry: successfully removed ACFS mount point /wjqacfs.man from Oracle Registry


3、查看挂载情况以及crs资源是否存在该ACFS信息

[root@c01n01 ~]# df -Th

Filesystem    Type    Size  Used Avail Use% Mounted on

/dev/xvda2    ext3    9.7G  2.8G  6.4G  31% /

tmpfs        tmpfs    4.0G  1.3G  2.8G  31% /dev/shm

/dev/xvda1    ext3    243M   83M  147M  37% /boot

/dev/xvdc1    ext3    2.0G   38M  1.9G   2% /home

/dev/xvdd1    ext3     20G   12G  7.1G  62% /u01

192.0.2.1:/stage

               nfs    9.9G  9.7G     0 100% /stage

/dev/asm/wjqvol1-245

              acfs    2.0G  145M  1.9G   8% /wjqacfs

/dev/asm/wjqvol2-245

              ext4   1008M   34M  924M   4% /wjqext4


4、查看OS/dev/asm的卷文件依旧存在

[root@c01n01 ~]# ll /dev/asm/

total 0

brwxrwx--- 1 root asmadmin 252, 125441 May  3 16:01 wjqvol1-245

brwxrwx--- 1 root asmadmin 252, 125442 May  4 12:15 wjqvol2-245

brwxrwx--- 1 root asmadmin 252, 125443 May  4 13:41 wjqvol3-245


5、通过asmcmd命令删除ADVM

[grid@c01n01 ~]$ asmcmd -p

ASMCMD [+] > voldisable -G acfs wjqvol3#首先disbaleADVM卷,然后在删除


ASMCMD [+] > volinfo -G acfs wjqvol3

Diskgroup Name: ACFS


         Volume Name: WJQVOL3

         Volume Device: /dev/asm/wjqvol3-245

         State: DISABLED

         Size (MB): 2048

         Resize Unit (MB): 32

         Redundancy: UNPROT

         Stripe Columns: 4

         Stripe Width (K): 128

         Usage:

         Mountpath:


ASMCMD [+] > voldelete -G acfs wjqvol3    #删除ADVM


确认卷已经完全的删除

ASMCMD [+] > volstat


DISKGROUP NUMBER / NAME:  3 / ACFS

---------------------------------------

  VOLUME_NAME

     READS           BYTES_READ      READ_TIME       READ_ERRS      

     WRITES          BYTES_WRITTEN   WRITE_TIME      WRITE_ERRS     

  -------------------------------------------------------------

  WJQVOL1

     3049            5919744         53.171          0              

     1551            5567488         46.828          0              

  WJQVOL2

     93              377856          .254            0              

     12397           50778112        4330.134        0 


[root@c01n01 ~]# ll /dev/asm/

total 0

brwxrwx--- 1 root asmadmin 252, 125441 May  3 16:01 wjqvol1-245

brwxrwx--- 1 root asmadmin 252, 125442 May  4 12:15 wjqvol2-245



作者:SEian.G(苦练七十二变,笑对八十一难)

请登录后发表评论 登录
全部评论

注册时间:2016-03-12

  • 博文量
    102
  • 访问量
    149866