zoukankan      html  css  js  c++  java
  • EMC 加盘 【转载】

    存储拓扑如下(点击看大图):

     

    一、需求

    站点

    集群名称

    主机名

    WWWN

    存储阵列/空间需求

    主站点03

    irrac03

    irora11

    10000090fa07c5fa
    10000090fa07c5fb

    EMC VMAX10K

    RAID10/2000G (20*100GB)

    irora12

    10000090fa07c5ea 10000090fa07c5eb

    irora13

    10000090fa07c66c 10000090fa07c66d

    如上表,这里是一套oracle RAC数据库的三个节点,及其对应的主机端HBA卡的wwwn号,此次需求是从存储上划分2T的数据(20个LUN)给这套数据库 ---数据库之前的数据需要保留。

    二、磁盘信息备份

    变更操作前,可以通过如下命令将现已存在的磁盘信息进行备份:

    1. mkdir diskinfo_`date +%y%m%d`
    2. cd diskinfo_`date +%y%m%d`
    3. cat /sys/class/fc_host/host*/port_name > wwwn
    4. fdisk -l > fdisk
    5. cat /proc/scsi/scsi > procscsi
    6. multipath -ll > multipath
    7. powermt display > powermt
    8. powermt display dev=all >>powermt
    9. emcpadm export_mappings -x -f map.xml
    10. lsscsi > lsscsi
    11. ls -l /dev > dev
    12. ls -l /dev/asmdisk > asmdisk
    13. ls -l /dev/mapper/ > mapper
    14. for i in `ls /dev/disk`;do
    15. ls -l /dev/disk/$i >>devdisk
    16. done
    17. cp /etc/udev/rules.d/*asmdisk* .

    三、存储上划LUN

    存储划LUN可以进行浏览器图形操作,也可以通过命令方的方式进行配置 。先说图形配置,通过浏览器打开https://存储IP:8443 ,输入用户名密码后进入如下界面:

    storage下会有很多选项,我们选择volumes ,再点virtual volume ,双击打开TDEV ,如下:

    最下面点击Create就会弹出划LUN配置界面,如下:

    选择最下面的run now后,就会开始创建lun,lun创建好后,会弹出一个successfully created volumes的框 。

    当然也可以通过命令进行lun的创建 ,具体命令如下:

    1. symconfigure -sid 0082 -cmd "set symmetrix auto_meta_member_size=27307;" commit
    2. symconfigure -sid 0082 -cmd "create dev count=20, size=109928cyl, emulation=FBA, config=TDEV, binding to pool= VP_FC10_R10, preallocate size=all;" commit

    四、将lun分配给主机组

    LUN空间在存储端划好后,还需要将这部分LUN分配给主机组。在刚刚登录的web管理界面,依次通过点击:Storage > Storage Groups >sg_irrac03(对应的rac主机组),选择右边的volumes ,点击Add从volumes To Storage Group菜单里选取刚划分好的20个100GLUN,再点OK完成LUN的分配。如下图:

    分配完成后,可以退回到上图中的sg_irrac03位置,分别点击右边的Associated With:后的MaskingViews-3 ,由于该rac有三台主机,所以进去后会看到三台主机。选择其中一台,再点下面的View details或View Connections ,可以看到该主机分配的所有存储LUN情况。确认刚刚创建的LUN都已经在其中,就证明分配的没问题。

    五、主机扫盘

    扫盘和保存配置命令如下:

    1. # cd /sys/class/scsi_host/host4/
    2. # echo '- - - ' > scan
    3. # echo "1" > /sys/class/fc_host/host4/issue_lip
    4. 完成扫盘后保存配置
    5. #Powermt config
    6. #powermt save

    不同型号的HBA,扫盘的时候命令也不同,有些是操作sys下的scan文件,另一些操作是issue_lip文件。扫盘完成后,就可以在系统下识别新增的盘了,具体可以通过powermt display对比前后总LUN的数目(powermt命令需要在安装EMC的多路径软件后才有,如果使用系统自带的multipath,需要使用multipath -ll查看)。

    以上操作需要在三台RAC节点上分别执行。

    六、存储主机加盘相关理论

    数据库加盘操作主要涉及到三个概念:存储别名、scsi_id、askdisk别名。

    1、存储别名:是由多路径软件聚合后生成的名称,无论是emcpower或者multipath 都可以通过特殊的命令或配置文件修改,变更该名称;

    2、scsi_id:该id是唯一值,在存储划lun完成后就已经生成的,在主机上也可以通过scsi_id命令获取到,无论是存储别名还是asmdisk别名,最终都是跟此ID保持一致;

    3、asmdisk别外:该名称是通过udev策略匹配scsi_id后通过触发生成的 ,该名称是便于数据库管理员维护使用;

    4、以三节点的rac为例,理论上来说三台主机的存储别名与asmdisk不一定非要保持一致。如:某一scsi_id,在A主机上存储别名为emcpoweran,B主机上存储别名为emcpoweram,但通过udev策略修改过后,A、B两台主机上的asmdisk别名都为asm-data-an,这在数据库里加盘是没问题的。但出于后期维护的便利性和信息的统一性,强制要求同一个LUN在三台主机上这三个信息是一致的。

    除以上提到的三个信息外,存储还会有Logical device ID这类唯一性信息存在,Logical device ID的作用和scsi_id的作用一样,也是唯一的。具体见下图:

    七、对盘

    1、同台主机增加前后对盘

    1. powermt display dev=all|grep 'Pseudo|Logical' |awk '{if(NR%2==0){printf $0 " "}else{printf "%s ",$0}}' > /tmp/powermt_new
    2. cat powermt|grep 'Pseudo|Logical' |awk '{if(NR%2==0){printf $0 " "}else{printf "%s ",$0}}' > /tmp/powermt_old
    3. diff /tmp/powermt_new /tmp/powermt_old |grep '<' |awk '{print $NF,$3}' > /tmp/1.txt

     

    2、RAC主机间对盘(三台主机)

    1. # join -a1 <(sort 3.txt) <(sort 2.txt) | join - <(sort 1.txt)
    2. ID=0A72 name=emcpowerdq name=emcpowerbh name=emcpowerbh
    3. ID=0A76 name=emcpowerdr name=emcpowerdq name=emcpowergb
    4. ID=0A7A name=emcpowerds name=emcpowerdr name=emcpowergc
    5. ………………省略

    为了便于进一步处理时可以更好的生成修改的脚本,我也可以将以上输出的结果,使用sed命令处理,将其中的name=字段去掉 。如下:

    1. join -a1 <(sort 03s) <(sort 08s) | sed 's/name=//g' > join.txt

    3、生成自动修改脚本

    这里使用的是emcpadm命令进行的修改,这个之前在 linux下powerpath对盘与更改盘符名 。脚本内容如下:

    1. #!/bin/bash
    2. # author : write by yangbk < www.361way.com >
    3. # mail : itybku@139.com
    4. # desc : gen file of change disk name
    5. function emcmod(){
    6. while read line;do
    7. v1=`echo $line|awk '{print $'$1'}' `
    8. v2=`echo $line|awk '{print $'$2'}'`
    9. #echo $v1 $v2
    10. pre=${v2:8:1}
    11. suf=${v2:8:2}
    12. nv=emcpower${pre}${suf}
    13. if [ $v1 != $v2 ];then
    14. echo "emcpadm renamepseudo –s $v2 –t $nv"
    15. fi
    16. done < join.txt
    17. }
    18. function emcmod2(){
    19. while read line;do
    20. v1=`echo $line|awk '{print $'$1'}' `
    21. v2=`echo $line|awk '{print $'$2'}'`
    22. #echo $v1 $v2
    23. pre=${v2:8:1}
    24. suf=${v2:8:2}
    25. nv=emcpower${pre}${suf}
    26. if [ $v1 != $v2 ];then
    27. echo "emcpadm renamepseudo –s $nv –t $v1"
    28. fi
    29. done < join.txt
    30. }
    31. #result2=$(emcmod 2 3)
    32. #echo $result2
    33. echo '--------------------------------------'
    34. emcmod 2 3
    35. echo '--------------------------------------'
    36. emcmod2 2 3
    37. echo -e " "
    38. echo '--------------------------------------'
    39. emcmod 2 4
    40. echo '--------------------------------------'
    41. emcmod2 2 4

    八、udev配置及触发

    /etc/udev/rules.d下的asmdisk.rules里需要增加的内容,可以通过如下命令生成:

    1. for i in dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef ;do
    2. echo "KERNEL=="emcpower*", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="`/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/emcpower$i`", NAME="asmdisk/asm-data-$i", OWNER="grid", GROUP="oinstall", MODE="0660""
    3. done

    由于UDEV触发时,如果都所有的规则全部触发,会出现心跳网卡闪断或其他问题。所以这里选择逐条进行规则触发,这里也是使用全自动的操作,可以每2秒触发一条,如下:

    1. for i in `awk -F= '{print $NF}' 1.txt `;do udevadm trigger --subsystem-match=block --sysname-match=$i --verbose ;sleep 2 ;done

    九、数据库加盘

    1、加盘前检查

    检查确定当前已在使用的磁盘最大编码。新增磁盘从该编码下一个开始编号。

    1. SQL> set linesize 160
    2. SQL> col path for a60
    3. SQL> set pagesize 100
    4. SQL> select group_number,disk_number,name,path,os_MB from v$asm_disk where path like '%asm-data-d%' order by group_number,disk_number;
    5. GROUP_NUMBER DISK_NUMBER NAME PATH OS_MB
    6. ------------ ----------- ------------------------------ ------------------------------------------------------------ ----------
    7. 6 28 DATADG03_0028 /dev/asmdisk/asm-data-do 102401
    8. 6 29 DATADG03_0029 /dev/asmdisk/asm-data-dp 102401
    9. 16 rows selected.

    2、加盘

    需要注意,加盘有两种方式:一种是向已存在的磁盘组中加盘;一种是创建一个新的磁盘组,并将存储新划分的盘分配到该组里。

    创建新的磁盘组:

    1. CREATE DISKGROUP datadg04 EXTERNAL REDUNDANCY DISK '/dev/asmdisk/asm-data-dq','/dev/asmdisk/asm-data-dr','/dev/asmdisk/asm-data-ds','/dev/asmdisk/asm-data-dt','/dev/asmdisk/asm-data-du','/dev/asmdisk/asm-data-dv','/dev/asmdisk/asm-data-dw','/dev/asmdisk/asm-data-dx','/dev/asmdisk/asm-data-dy';

    向已有磁盘组里增加磁盘:

    1. alter diskgroup datadg01 add disk '/dev/asmdisk/asm-data-cc', '/dev/asmdisk/asm-data-cd', '/dev/asmdisk/asm-data-ce','/dev/asmdisk/asm-data-cf','/dev/asmdisk/asm-data-cg','/dev/asmdisk/asm-data-ch','/dev/asmdisk/asm-data-ci','/dev/asmdisk/asm-data-cj','/dev/asmdisk/asm-data-ck' ;

    十、检查

    1、检查增加后的磁盘组信息(RAC 每个节点都要检查)grid 用户下,执行 asmcmd lsdg 命令,检查是否有新增加的磁盘组。如果没有,通过 crsctl stat res -t 检查对应的磁盘组资源在该节点是否处于 offline 状态,手动把该资源组启动即可;

    2、检查磁盘组中的磁盘信息grid 用户下执行,asmcmd lsdsk 检查,新增加的磁盘是否增加到对应的磁盘组。

    3、检查磁盘组数据平衡进度(向磁盘组中增加磁盘时,需要执行该检查)grid 用户下,连接到 ASM 实例下执行该操作:

    1. select * from v$asm_operation;

    十一、值守检查

      1. # 集群状态
      2. crs_stat –t
      3. #日志应有相关
      4. Alert.log
      5. V$datafile
      6. Select checkpoint_time from v$datafile where rownum <= 1;
      7. #监控
      8. QMONITOR及Grid control 监控数据
  • 相关阅读:
    Android Media Playback 中的MediaPlayer的用法及注意事项(二)
    Android Media Playback 中的MediaPlayer的用法及注意事项(一)
    34. Search for a Range
    33. Search in Rotated Sorted Array
    32. Longest Valid Parentheses
    31. Next Permutation下一个排列
    30. Substring with Concatenation of All Words找出串联所有词的子串
    29. Divide Two Integers
    28. Implement strStr()子串匹配
    27. Remove Element
  • 原文地址:https://www.cnblogs.com/yaoyangding/p/14637509.html
Copyright © 2011-2022 走看看