`
itspace
  • 浏览: 978820 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

谈谈AIX lv 4k偏移量

阅读更多
前几天在客户数据库做巡检的时候,在警告日志中发现有如下警告:
引用
WARNING: You are creating datafile /dev/rtbs_data01.
WARNING: Oracle recommends creating new datafiles on devices with zero offset. The command "/usr/sbin/mklv -y LVname -T O -w n -s n -r n VGname NumPPs" can be used. Please contact Oracle customer support for more details.

如果在AIX环境创建lv,如果创建带有4k偏移量的lv,Oracle 10g将做如上提示,使用参数-T O,AIX对-T 0有如下解释
引用
-T O
     For big vg format volume groups, the -T O option indicates that the logical volume control block will not occupy the first block of the logical volume.
     Therefore, the space is available for application data. Applications can identify this type of logical volume with the IOC INFO ioctl. The logical volume
     has a device subtype of DS_LVZ. A logical volume created without this option has a device subtype of DS_LV. This option is ignored for old and scalable
     vg format volume groups.

我们对AIX解释做进一步延伸:
AIX在创建vg时有3中vg类型可选,分别是 Original Volume Group,Big Volume Group和Scalable Volume Group
对于普通的VG(Original Volume Group),不管你使用什么命令创建lv,都是普通的DS_LV类型的LV。
对于Big VG,是唯一允许同时存在这两种LV类型的VG,如果我们指定-T O(注意,这里是大写的字母O),则创建DS_LVZ类型的LV,否则,创建普通类型的LV。如
/usr/sbin/mklv -y LVname -T O -w n -s n -r n VGname NumPPs。
对于Scalable-type VG类型的VG,不管你使用什么方式的命令创建lv,都是扩展的DS_LVZ类型的LV。
由Oracle的警告日志可以看出,Oracle 使用raw设备时,建议设置不带4k的lv。那我们不禁有3个疑问:
(1)这4k偏移量有什么用处?
(2)怎么样查看LV是否带有4K偏移量呢?
(3)设置这4k偏移量有什么坏处?
AIX将这4k偏移量称之为lvcb(logical volume control block),它将占用4k的前512个字节,它类似于Oracle数据文件头,保留有lv的创建时间,镜像拷贝信息,文件系统挂载点等。
可以通过getlvcb命令查看lvcb信息:
引用
# getlvcb -AT fslv02
         AIX LVCB
         intrapolicy = m
         copies = 1
         interpolicy = m
         lvid = 000b56cc00004c000000012d264b87e5.14
         lvname = fslv02
         label = /ora10g
         machine id = B56CC4C00
         number lps = 112
         relocatable = y
         strict = y
         stripe width = 0
         stripe size in exponent = 0
         type = jfs2
         upperbound = 32
         fs = vfs=jfs2:log=/dev/loglv00:mount=true:options=rw:account=false
         time created  = Mon Apr 18 09:52:50 2011
         time modified = Mon Apr 18 09:52:56 2011


从2个方面可以查看lv是否有4k偏移量
1、主机层面
没有4k偏移量:
引用
#lslv jfkdb_2G_044
LOGICAL VOLUME: jfkdb_2G_044 VOLUME GROUP: jfk_dbvg_01
LV IDENTIFIER: 00c3dff400004c00000001217a9d839e.84 PERMISSION: read/write
VG STATE: active/complete LV STATE: closed/syncd
TYPE: raw WRITE VERIFY: off
MAX LPs: 1024 PP SIZE: 32 megabyte(s)
COPIES: 1 SCHED POLICY: parallel
LPs: 64 PPs: 64
STALE PPs: 0 BB POLICY: relocatable
INTER-POLICY: maximum RELOCATABLE: yes
INTRA-POLICY: middle UPPER BOUND: 1024
MOUNT POINT: N/A LABEL: None
MIRROR WRITE CONSISTENCY: on/ACTIVE
EACH LP COPY ON A SEPARATE PV ?: yes
Serialize IO ?: NO
DEVICESUBTYPE : DS_LVZ

有4k偏移量:
引用
[root@jfk_p560q /]# lslv jfkdb_2G_044
LOGICAL VOLUME: jfkdb_2G_044 VOLUME GROUP: jfk_db_vg01
LV IDENTIFIER: 00ce76de00004c00000001134ee6bc51.84 PERMISSION: read/write
VG STATE: active/complete LV STATE: opened/syncd
TYPE: raw WRITE VERIFY: off
MAX LPs: 1024 PP SIZE: 32 megabyte(s)
COPIES: 1 SCHED POLICY: parallel
LPs: 64 PPs: 64
STALE PPs: 0 BB POLICY: relocatable
INTER-POLICY: maximum RELOCATABLE: yes
INTRA-POLICY: middle UPPER BOUND: 16
MOUNT POINT: N/A LABEL: None
MIRROR WRITE CONSISTENCY: on/ACTIVE
EACH LP COPY ON A SEPARATE PV ?: yes
Serialize IO ?: NO

(2)Oracle层面:
Oracle提供了一小工具dbfsize(在$ORACLE_HOME/bin下)用于观察lv是否有4k偏移量
无4k偏移量:
引用
$ dbfsize /dev/rlvsysaux_1g

Database file: /dev/rlvsysaux_1g
Database file type: raw device without 4K starting offset
Database file size: 40960 8192 byte blocks

有4k偏移量:
引用
[oracle@jfk_p560q /dev]$ dbfsize /dev/rjfkdb_2G_054

Database file: /dev/rjfkdb_2G_054
Database file type: raw device
Database file size: 262016 8192 byte blocks


如果数据库使用block size为16k,创建跨pv带有4k偏移的lv,条带块大小为64k。这样将导致第4个block横跨2个pv(条带化操作,把lvcb也计算进条带块中)。这样会导致
条带块的第4个Oracle block跨磁盘,撇开性能方面考虑,如果系统异常宕机,或者存储异常宕机,极易引起数据库块损坏,引起ora-01578错误。(metalink ID 261460.1)
引用
$   oerr ora 01578
01578, 00000, "ORACLE data block corrupted (file # %s, block # %s)"
// *Cause:  The data block indicated was corrupted, mostly due to software
//          errors.
// *Action: Try to restore the segment containing the block indicated. This
//          may involve dropping the segment and recreating it. If there
//          is a trace file, report the errors in it to your ORACLE
//          representative.

那是不是不做条带化,lv保留4k,就没问题了呢?
答案还是否定的。如果lv横跨pv,pp size 为64m,那么(64m-4k)/16k,还是除不尽,那问题还是依旧。
Oracle从 9.2.0.3开始可以识别无4k偏移量的lv,那是不是创建无4k偏移量的lv就万事大吉了呢?可惜不是,bug如期而至:
https://www-304.ibm.com/support/docview.wss?uid=isg1IY94343
也就是说当系统重启或者执行chlv之类命令,DS_LVZ标记将会消失,也就意味着Oracle认为此lv有4k偏移量,那也就存在着Oracle block横跨pv的可能性,
如果运气不好的话,ora-01578又不期而至,噩梦由此开始。
引用
IY94343: MKLV -TO ON BIG VOLUME GROUPS FAILS TO PUT SOME LV INFORMATION APPLIES TO AIX 5300-07
****************************************************************
* USERS AFFECTED:
* Users of BIG volume groups with the bos.rte.lvm fileset at
* the 5.3.0.53 or 5.3.0.54 level.
****************************************************************
* PROBLEM DESCRIPTION:
* When creating a logical volume with a device type of DS_LVZ
* using the '-TO' flag, lslv reports a DEVICESUBTYPE of DS_LV
* rather than DS_LVZ.  The problem shows up only after a reboot
* or any subsequent chlv or other LVM command that can update
* the VGDA on disk.
* This problem can cause some applications, such as Oracle, to
* fail to start, and could result in database corruption.

如果没有这个bug,即没有4k的offset,如果db_block_size比strip size大,问题还是存在的,即也会存在跨pv,这是我们建条带化所需要注意的,事实上,我也没看到过条带化大小比block size小的环境。但是这里又引申出一个问题,如果存储底层硬盘全部打散,且已做条带化,并虚拟出硬盘,那讨论应该复杂的多,可能操作系统需要跨磁盘的block,真正在物理并没有跨磁盘。
分享到:
评论

相关推荐

    AIX系统添加LV

    在AIX操作系统中,添加逻辑卷(Logical Volume, LV)是一项常见的存储管理任务,用于扩展系统或特定服务的可用磁盘空间。在这个场景中,我们看到一个针对名为`yuxscp3`的数据库服务器进行LV扩展的过程,目的是解决...

    AIX LV迁移.doc

    AIX LV迁移: 一、在同一卷组中操作,迁移L V 二、在不同一卷组中操作,迁移L V 建议在实施前做好数据备份,在业务不繁忙时停止应用操作

    LV-AIX镜像迁移.pdf

    LV-AIX镜像迁移 LV 镜像和迁移是 AIX 操作系统中的一种技术,用于将逻辑卷(LV)从一个物理卷(PV)迁移到另一个物理卷上。该技术可以帮助管理员更好地管理存储资源,提高系统的可用性和性能。 LV 镜像和迁移的...

    AIX 7.2 AIX 7.1 AIX 7100 AIX 7200

    此资源为AIX7.2版本 cd1和cd2,已经上传度盘 aix_7200-04-02-2027_1of2_072020.iso aix_7200-04-02-2027_2of2_072020.iso 通过qemu-system-ppc程序能在X86平台安装运行 此资源为AIX7.1版本 cd1和cd2 AIX_7.1_Base_...

    aix oracle

    - 注意到AIX环境下的裸设备创建存在4K偏移量的问题,这可能导致Oracle在日志文件中记录警告信息。为了避免这一问题,应使用特定的方法创建LV。 ```shell [dbser1:root:/]#mklv -y 'lvgisdata03' -TO -w 'n' -s 'n...

    AIX 学习笔记之 存储管理 LV PV VG PP

    AIX 存储管理之 LV PV VG PP AIX 操作系统中,存储管理是非常重要的一部分,它是指对存储设备的管理和配置。AIX 存储管理主要包括物理卷(PV)、卷组(VG)、物理分区(PP)、逻辑卷(LV)、逻辑分区(LP)和文件...

    IBM官方AIX模拟器

    **IBM AIX 模拟器详解** IBM AIX(Advanced Interactive eXecutive)是一款由IBM开发的UNIX操作系统,主要用于IBM Power Systems服务器。这款操作系统以其稳定性、安全性以及高性能而受到企业的广泛青睐。为了方便...

    aix 7.1 iso bt种子下载

    AIX_7.1_Base_Operating_System_TL_7100-00-01_DVD_1_of_2_102010.iso AIX_7.1_Base_Operating_System_TL_7100-00-01_DVD_2_of_2_102010.iso AIX_Enterprise_Edition_V7.1_Expansion_Pack_092010.tar.gz AIX_Express...

    aix下rsync安装包

    它在各种操作系统上广泛使用,包括Linux和Unix-like系统,如AIX。本篇文章将详细介绍在AIX环境下如何安装和使用`rsync`,以及它在跨平台数据同步中的重要性。 `rsync`是一款高效的数据同步软件,它能实现本地或远程...

    AIX安装sqluldr2

    在这个场景中,我们将聚焦于如何在AIX操作系统上安装sqluldr2。AIX(Advanced Interactive eXecutive)是IBM开发的一种强大的Unix变体,广泛应用于企业级服务器。 首先,让我们理解标题"AIX安装sqluldr2"。sqluldr2...

    AIX study, AIX 基础

    ### AIX基础知识详解 #### 一、AIX简介 AIX(Advanced Interactive Executive)是由IBM开发的一款基于UNIX的操作系统。自1986年首次发布以来,AIX一直是IBM在服务器操作系统领域的旗舰产品之一,广泛应用于各种...

    aix 文档 aix 文档

    在 AIX 中,逻辑卷(Logical Volume, LV)是提供给用户和应用程序使用的存储单元。它不是直接由用户或应用程序访问的物理卷(Physical Volume, PV)或卷组(Volume Group, VG),而是通过逻辑卷管理器来创建和管理的。逻辑...

    aix7.1 IBM小机

    AIX_7.1_Base_Operating_System_TL_7100-00-01_DVD_1_of_2_102010 AIX_7.1_Base_Operating_System_TL_7100-00-01_DVD_2_of_2_102010 AIX_Enterprise_Edition_V7.1_Expansion_Pack_092010.tar AIX_Express_Standard_...

    AIX 2009 AIX 2009

    AIX 2009是IBM的一种高级操作系统,属于UNIX家族,主要应用于IBM的Power Systems服务器。这个系统以其稳定性、安全性和性能而闻名,尤其在金融、电信和大型企业领域广泛应用。下面我们将深入探讨AIX 2009的相关知识...

    AIX7.2操作系统介绍

    ### AIX 7.2 操作系统介绍 #### 概述 AIX 7.2 是IBM为Power Systems服务器推出的最新版本的UNIX操作系统。作为市场上备受瞩目的UNIX操作系统之一,AIX 7.2 在可靠性、安全性、性能及可扩展性方面进行了显著提升,...

    aix7 安装zip 包

    在AIX 7操作系统环境下,安装和管理软件包与Linux或其他UNIX系统略有不同。本话题主要涉及如何在AIX上安装ZIP工具,以及如何使用`unzip`命令解压缩ZIP文件。AIX(Advanced Interactive eXecutive)是IBM开发的一种...

    aix密码加密方式

    在早期版本如AIX5.3 TL07之前,AIX主要使用的是传统的`crypt`加密方法,这种加密方式基于DES算法,并且提供salt机制。但在AIX5.3 TL07之后,为了增强安全性,AIX引入了更为安全的加密方法,例如MD5、SHA-1和SHA-256...

    Qemu模拟器运行AIX 7.2 系统.docx

    ### QEMU模拟器运行AIX 7.2系统的详细指南 #### AIX操作系统简介 AIX(Advanced Interactive Executive)是IBM公司开发的一款基于AT&T Unix System V的类UNIX操作系统,主要用于IBM Power架构的服务器和工作站上。...

    aix rpm相关资源下载

    bash-3.0-1.aix5.1.ppc.rpm, git-1.7.0.6-1.aix5.1.ppc.rpm, git-svn-1.6.6.2-1.aix5.1.ppc.rpm, mysql-5.1.56-1.aix5.1.ppc.rpm, sudo-1.6.7p5-3.aix5.1.ppc.rpm, unzip-5.51-1.aix5.1.ppc.rpm, vim-common-...

    AIX原文官方文档(aix5.3)

    AIX,全称为Advanced Interactive eXecutive,是IBM开发的一种UNIX操作系统,主要应用于IBM的Power Systems服务器。在AIX 5.3版本中,它提供了丰富的功能和强大的稳定性,适用于企业级应用和服务。这份"AIX原文官方...

Global site tag (gtag.js) - Google Analytics