IBM AIX存储层结构原理分析

2019-07-14 00:48发布

一、AIX 的存储层
    在AIX中,可以直接IO的最底层设备是PV,也就是物理卷,通常在单硬盘环境可以理解为物理磁盘,在挂载的硬件RAID设备上,PV就是RAID卷组(有时候称为逻辑卷,虚拟卷)。
    PV通常不用来直接存储数据,仅做为VG的成员使用。因PV的大小是随机的,存储时为了效率上的考虑,VG需要有特定的分配颗粒大小,这就又引入了2个存储概念:PP和LP。
    PP(Physical Partition)在创建VG时指定,指VG的存储组成的最小单位。如PP的大小是16M,意味着整个VG都是由若干个PP组成(似乎就像PC上的单硬盘和扇区的概念),每个PP一定是来源于指定的某个PV。所以,在PV加入VG时,从PV最前面的一段VGDA、VGSA区域(很多是0x220000 byte)开始,整个PV就被描述成了一个个的单独PP,VG中所有PV的所有PP在VG中顺序编号,就是整个VG的可用空间。
    谈LP之前先说一下LV。VG创建出来后,就需要对其可用空间进行利用,这个概念,类似于PC的硬盘分区,LV是VG中一部分PP的集合。1个VG中可以划分多个LV,但一个LV只可以属于一个VG(不可以跨VG划分LV)。有时候PP的数量很多,为了效率上的考虑,LV的分配单位可以是多个PP,这就是LP。LP最小是1个PP(最多情况),也可以是2个或3个PP,LP与PP的关系就像文件系统里的簇与扇区。
    LV创建出来后就可以存储数据了,通常的用途是文件系统FS,一个LV可以格式化为一个FS,也可以由几个LV组成RAID0,RAID1,RAID10,再格式化为FS。
 
二、部分AIX存储命令
lspv 列出系统内可识别的pv
lspv -l hdisk0 列出 hdisk0的属性摘要
od –t x1 hdisk0 |more 以HEX方式查看hdisk0,可测试其是否可读
lsvg 列出所有VG
lsvg 列出指定VG属性
lsvg –l 列出指定VG下的LV信息
lsvg –M 列出指定VG下PP的LV分配MAP表。
lslv 列出指定lv属性
lslv –m 列出指定lv在VG中的PP MAP分配表。
cfgmgr 识别新硬件,如新pv
cfgmgr –i iscsi 识别新的iscsi磁盘
创建命令略(可以用smit )
varyonvg 激活VG
varyoffvg 非激活VG
从PV中导入VG: importvg –y
创建一个测试环境,基于ISCSI
{
    iscsi部分:
       1、处理TARGET部分,WINDOWS上的STARWIND,WINTARGET,LINUX上的OPENFILER之类的
       2、lsdev |grep iscsi,如果提示“iscsi0     Available              iSCSI Protocol Device” 表示ISCSI客户端已经安装,设备号是iscsi0。也可以用lslpp -L|grep -i iscsi 确认是否已经安装了ISCSI软件包。
       3、vi /etc/iscsi/targets 在最后一行,以空格隔开,分上"IP 端口 iqn_name",如
192.168.1.153 3260 iqn.2003-06.com.rocketdivision.starwind.www.datahf.net.imagefile0
       4、cfgmgr -i iscsi(扫描所有ISCSI设备)或 cfgmgr -l iscsi0(只扫描iscsi0设备,见上面iscsi0设备的获取过程)
      5、lspv 或lsdev -Cc disk确认磁盘是否挂上,可用lsattr -El hdisk?查看磁盘细节
   VGLVFS部分(推荐用smit):
      1、chdev -l hdisk? -a pv=yes (为hdisk生成pvid)
      2、mkvg -y testvg hdisk? (创建VG)
      3、mklv -y testlvjfs2 testvg 600 (创建LV)
         mklv -y testlvjfs2log testvg 30
      4、chlv -t jfs2 testlvjfs2
         chlv -t jfs2log testlvjfs2log
         mkfs -V jfs2 -o log=/dev/testlvjfs2log /dev/testlvjfs2
      5、mount -o log=/dev/testlvjfs2log /dev/testlvjfs2 /mnt/j2fs
}
删除VG:removevg(注:数据会丢)
删除一个测试存储的过程
{
导出VG:
    umount
    varyoffvg
    exportvg (如果PV已经丢失,直接执行此命令即可从ODM库中清除VG信息)
删除PV:rmdev -dl hdisk?(可以将无效的hdisk信息释放)
}
 
logform 格式化jfs /jfs2日志(日志损坏时或许需要)