全部博文(389)
分类: Oracle
2013-12-21 17:53:56
ADVM初体验
从oracle 11.2开始,asm不但可以存储原来的数据库相关的三个大件,现在asm通过
ADVM,也可以作为一种普通的LVM来使用,而且还提供了一种acfs的文件系统.不过
advm在部分平台上还不支持,比如rhel 4上。例中使用的是rhel 5.5,oracle 11.2.0.1,在
支持的范围内.
根据安装文档安装好GI后,启动asm实例,并且创建相应的磁盘组.
在GI_HOME/bin目录下,通过acfsload加载advm和acfs的内核模块.
[root@asm bin]# ./acfsload start
ACFS-9327: Verifying ADVM/ACFS devices.
ACFS-9322: done.
[root@asm bin]# ./acfsdriverstate -orahome /u01/app/grid/11.2 supported
ACFS-9200: Supported
[root@asm bin]# ./acfsdriverstate -orahome /u01/app/grid/11.2 installed
ACFS-9203: true
[root@asm bin]# ./acfsdriverstate -orahome /u01/app/grid/11.2 loaded
ACFS-9203: true
[root@asm bin]# lsmod | grep ora
oracleacfs 877320 0
oracleadvm 221760 0
oracleoks 276880 2 oracleacfs,oracleadvm
--确认内核模块加载成功.
在例子中创建一个vol,名字为mg_vol1.
SQL> alter diskgroup mygroup1 add volume mg_vol1 size 100M;
Diskgroup altered.
SQL> select volume_name
2 ,size_mb from v$asm_volume;
VOLUME_NAME SIZE_MB
------------------------------ ----------
MG_VOL1 256
在这里的size大小竟然是256M,这是因为asm volume最小分配粒度为256MB,只要小于这个
粒度都会大于这个数字来算,这和sga中的granule size的概念是一样的.
advm的块设备存放的路径为/dev/asm.
[root@asm /]# ls -l /dev/asm/*
brwxrwx--- 1 root oinstall 252, 57345 Dec 22 01:15 /dev/asm/mg_vol1-112
系统自动为我们加了一个数字112.接下来我们按照标准的流程,对块设备进行格式
化.然后再挂载
[root@asm asm]# mkfs -t ext3 /dev/asm/mg_vol1-112
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0
.......省略..........
[root@asm asm]# mkdir /acfstest
[root@asm asm]# mount -t ext3 /dev/asm/mg_vol1-112 /acfstest
[root@asm asm]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
36G 18G 17G 53% /
/dev/sda1 99M 13M 82M 14% /boot
tmpfs 736M 156M 581M 22% /dev/shm
/dev/asm/mg_vol1-112 248M 11M 226M 5% /acfstest
可以看到我们的advm设备已经成功使用了.
[root@asm /]# cd /acfstest/
[root@asm acfstest]# ls --存在lost+found目录,说明是一个单独的文件系统
lost+found
[root@asm acfstest]# echo "abc">test.txt
[root@asm acfstest]# ls
lost+found test.txt
[root@asm acfstest]# cat test.txt
abc
新建了一个文本文件,往里写字符,没有问题.使用ADVM作为标准的LVM已经成功达到目标了.
在很多时候,我们需要扩展我们的设备大小,以支持更大的存储空间,对于一个ADVM来说
很方便就可以实现
[root@asm /]# umount /dev/asm/mg_vol1-112 --umount advm block device
SQL> alter diskgroup mygroup1 resize volume mg_vol1 size 300M;
Diskgroup altered.
SQL> select volume_name ,size_mb from v$asm_volume;
VOLUME_NAME SIZE_MB
------------------------------ ----------
MG_VOL1 512
300=256+50,所以是2个granule,512M
[root@asm /]# fsck -f /dev/asm/mg_vol1-112 -- fsck first
fsck 1.39 (29-May-2006)
e2fsck 1.39 (29-May-2006)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/asm/mg_vol1-112: 12/131072 files (8.3% non-contiguous), 27076/524288 blocks
[root@asm /]# resize2fs /dev/asm/mg_vol1-112 512M --resize file system
resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/asm/mg_vol1-112 to 524288 (1k) blocks.
The filesystem on /dev/asm/mg_vol1-112 is now 524288 blocks long.
[root@asm /]# mount -t ext3 /dev/asm/mg_vol1-112 /acfstest --mount again
[root@asm /]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
36G 18G 17G 53% /
/dev/sda1 99M 13M 82M 14% /boot
tmpfs 736M 156M 581M 22% /dev/shm
/dev/asm/mg_vol1-112 496M 11M 466M 3% /acfstest --new size
[root@asm /]# cd /acfstest/
[root@asm acfstest]# ls
lost+found test.txt
advm设备size扩展成功.
对于advm的管理不但可以通过sql命令来实现,也可以通过asmcmd中vol开头的命令来实
现,比如:
ASMCMD> volinfo -G mygroup1 mg_vol1
Diskgroup Name: MYGROUP1
Volume Name: MG_VOL1
Volume Device: /dev/asm/mg_vol1-112
State: ENABLED
Size (MB): 512
Resize Unit (MB): 256 -granule size
Redundancy: UNPROT
Stripe Columns: 4
Stripe Width (K): 128
Usage:
Mountpath:
也可在advm block device上格式化acfs文件系统.
通过ASM,ADVM,ACFS这些功能,可以看出oracle在存储市场上的发展和野心,蚕食传统的
文件系统和LVM厂商的份额.不过ADVM和ACFS本身的稳定性和性能还有待市场的检验.