分类: LINUX
2008-04-28 22:25:50
删除 FireWire 共享存储器上的所有分区
在本示例中,我将使用整个 FireWire 磁盘(没有分区)。在这种情况下,我将使用 /dev/sda 来创建逻辑卷 / 物理卷。这并不是完成创建 LVM 环境任务的唯一方法。我们还可以在磁盘上创建 Linux LVM 分区(其类型为 8e )。让我们假设该 LVM 分区是在磁盘上创建的第一个分区。这样我们需要利用 /dev/sda1 来工作。同样,在本示例中,我将使用整个 FireWire 驱动器(没有分区) , 因此要访问 /dev/sda 。在创建物理卷和逻辑卷之前,通过使用 fdisk 命令删除 FireWire 驱动器上的任何现有分区,这是很重要的(因为我们要使用整个磁盘):
# fdisk /dev/sda
Command (m for help):p
Disk /dev/sda:203.9 GB, 203927060480 bytes
255 heads, 63 sectors/track, 24792 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 24791 199133676 c Win95 FAT32 (LBA)
Command (m for help):d
Selected partition 1
Command (m for help):p
Disk /dev/sda:203.9 GB, 203927060480 bytes
255 heads, 63 sectors/track, 24792 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
Command (m for help):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
创建逻辑卷
以下的一组命令执行创建逻辑卷所需的步骤:
• 运行 vgscan 命令( 在集群中所有的 RAC 节点上运行 ),以创建 /etc/lvmtab 文件。
• 使用 pvcreate 创建由逻辑卷管理器 (LVM) 所使用的物理卷。
• 使用 vgcreate ,为驱动器或者为您希望用于 RAW 设备的分区创建一个卷组。在这里我们为整个驱动器创建卷。在我们的示例中(如下所示),该命令将允许创建 256 个逻辑分区和 256 个物理分区,范围大小为 128K 。
• 使用 lvcreate 在卷组中创建逻辑卷。
注意: 上文讲到,我需要在所有节点上运行 vgscan 命令,以便该命令能够创建 /etc/lvmtab 文件。应该在运行下列命令之前执行该命令。
将以下命令放在一个 schell 脚本中,更改执行权限,然后以 “root”UNIX 用户 id 来运行该脚本:
vgscan
pvcreate -d /dev/sda
vgcreate -l 256 -p 256 -s 128k /dev/pv1 /dev/sda
lvcreate -L 5m /dev/pv1
lvcreate -L 100m /dev/pv1
lvcreate -L 10m /dev/pv1
lvcreate -L 200m /dev/pv1
lvcreate -L 200m /dev/pv1
lvcreate -L 200m /dev/pv1
lvcreate -L 55m /dev/pv1
lvcreate -L 25m /dev/pv1
lvcreate -L 255m /dev/pv1
lvcreate -L 105m /dev/pv1
lvcreate -L 55m /dev/pv1
lvcreate -L 805m /dev/pv1
lvcreate -L 255m /dev/pv1
lvcreate -L 105m /dev/pv1
lvcreate -L 405m /dev/pv1
lvcreate -L 405m /dev/pv1
lvcreate -L 105m /dev/pv1
lvcreate -L 155m /dev/pv1
lvcreate -L 105m /dev/pv1
lvcreate -L 105m /dev/pv1
lvcreate -L 105m /dev/pv1
lvcreate -L 105m /dev/pv1
lvcreate -L 105m /dev/pv1
使用该脚本(如上所示)将会创建 /dev/pv1/lvol1 - /dev/pv1/lvol23 。
我通常使用 lvscan 命令来检查逻辑卷的状态:
[root@linux2 root]# lvscan
lvscan -- ACTIVE "/dev/pv1/lvol1" [5 MB]
lvscan -- ACTIVE "/dev/pv1/lvol2" [100 MB]
lvscan -- ACTIVE "/dev/pv1/lvol3" [10 MB]
lvscan -- ACTIVE "/dev/pv1/lvol4" [200 MB]
lvscan -- ACTIVE "/dev/pv1/lvol5" [200 MB]
lvscan -- ACTIVE "/dev/pv1/lvol6" [200 MB]
lvscan -- ACTIVE "/dev/pv1/lvol7" [55 MB]
lvscan -- ACTIVE "/dev/pv1/lvol8" [25 MB]
lvscan -- ACTIVE "/dev/pv1/lvol9" [255 MB]
lvscan -- ACTIVE "/dev/pv1/lvol10" [105 MB]
lvscan -- ACTIVE "/dev/pv1/lvol11" [55 MB]
lvscan -- ACTIVE "/dev/pv1/lvol12" [805 MB]
lvscan -- ACTIVE "/dev/pv1/lvol13" [255 MB]
lvscan -- ACTIVE "/dev/pv1/lvol14" [105 MB]
lvscan -- ACTIVE "/dev/pv1/lvol15" [405 MB]
lvscan -- ACTIVE "/dev/pv1/lvol16" [405 MB]
lvscan -- ACTIVE "/dev/pv1/lvol17" [105 MB]
lvscan -- ACTIVE "/dev/pv1/lvol18" [155 MB]
lvscan -- ACTIVE "/dev/pv1/lvol19" [105 MB]
lvscan -- ACTIVE "/dev/pv1/lvol20" [105 MB]
lvscan -- ACTIVE "/dev/pv1/lvol21" [105 MB]
lvscan -- ACTIVE "/dev/pv1/lvol22" [105 MB]
lvscan -- ACTIVE "/dev/pv1/lvol23" [105 MB]
lvscan -- 23 logical volumes with 3.88 GB total in 1 volume group
lvscan -- 23 active logical volumes
重新启动 RAC 集群中的所有节点
在完成分区的创建之后,建议您重新启动所有 RAC 节点上的内核,以确保所有的新分区被所有 RAC 节点上的内核所识别:
# su -
# reboot
重要声明: 切记,您需要在您的一个启动脚本中添加语句,先调用 vgscan ,然后调用 vgchange -a y ,以便您的 RAC 集群中的每台机器在启动时运行它们。这两个命令在激活所有的卷组之前为您提供一个实际的卷管理器数据库。本文将提供所有应该加入到您的 /etc/rc.local 脚本中的设置,以便对 Oracle9 i RAC 集群中的每个节点进行设定。
创建 RAW 绑定(在两个节点上执行)
注意: 在每次启动机器时 , 需要在集群中的每个节点上执行本部分中的一些命令。这些命令的详细信息以及关于将其加入启动脚本的说明都包含在 用于每个 RAC 节点的所有启动命令 一节中。
在本部分中,我将说明如何在 FireWire 共享存储器上配置原始设备,这些设备将用于所有的物理 Oracle 数据库文件,包括 srvctl 的 Cluster Manager Quorum File 和 Shared Configuration File 。
现在,我们已经在 FireWire 共享存储器上创建了所需的分区。我们现在需要使用 raw 命令将所有卷绑定到原始设备:
usr/bin/raw /dev/raw/raw1 /dev/pv1/lvol1
/usr/bin/raw /dev/raw/raw2 /dev/pv1/lvol2
/usr/bin/raw /dev/raw/raw3 /dev/pv1/lvol3
/usr/bin/raw /dev/raw/raw4 /dev/pv1/lvol4
/usr/bin/raw /dev/raw/raw5 /dev/pv1/lvol5
/usr/bin/raw /dev/raw/raw6 /dev/pv1/lvol6
/usr/bin/raw /dev/raw/raw7 /dev/pv1/lvol7
/usr/bin/raw /dev/raw/raw8 /dev/pv1/lvol8
/usr/bin/raw /dev/raw/raw9 /dev/pv1/lvol9
/usr/bin/raw /dev/raw/raw10 /dev/pv1/lvol10
/usr/bin/raw /dev/raw/raw11 /dev/pv1/lvol11
/usr/bin/raw /dev/raw/raw12 /dev/pv1/lvol12
/usr/bin/raw /dev/raw/raw13 /dev/pv1/lvol13
/usr/bin/raw /dev/raw/raw14 /dev/pv1/lvol14
/usr/bin/raw /dev/raw/raw15 /dev/pv1/lvol15
/usr/bin/raw /dev/raw/raw16 /dev/pv1/lvol16
/usr/bin/raw /dev/raw/raw17 /dev/pv1/lvol17
/usr/bin/raw /dev/raw/raw18 /dev/pv1/lvol18
/usr/bin/raw /dev/raw/raw19 /dev/pv1/lvol19
/usr/bin/raw /dev/raw/raw20 /dev/pv1/lvol20
/usr/bin/raw /dev/raw/raw21 /dev/pv1/lvol21
/usr/bin/raw /dev/raw/raw22 /dev/pv1/lvol22
/usr/bin/raw /dev/raw/raw23 /dev/pv1/lvol23
/bin/chmod 600 /dev/raw/raw1
/bin/chmod 600 /dev/raw/raw2
/bin/chmod 600 /dev/raw/raw3
/bin/chmod 600 /dev/raw/raw4
/bin/chmod 600 /dev/raw/raw5
/bin/chmod 600 /dev/raw/raw6
/bin/chmod 600 /dev/raw/raw7
/bin/chmod 600 /dev/raw/raw8
/bin/chmod 600 /dev/raw/raw9
/bin/chmod 600 /dev/raw/raw10
/bin/chmod 600 /dev/raw/raw11
/bin/chmod 600 /dev/raw/raw12
/bin/chmod 600 /dev/raw/raw13
/bin/chmod 600 /dev/raw/raw14
/bin/chmod 600 /dev/raw/raw15
/bin/chmod 600 /dev/raw/raw16
/bin/chmod 600 /dev/raw/raw17
/bin/chmod 600 /dev/raw/raw18
/bin/chmod 600 /dev/raw/raw19
/bin/chmod 600 /dev/raw/raw20
/bin/chmod 600 /dev/raw/raw21
/bin/chmod 600 /dev/raw/raw22
/bin/chmod 600 /dev/raw/raw23
/bin/chown oracle:dba /dev/raw/raw1
/bin/chown oracle:dba /dev/raw/raw2
/bin/chown oracle:dba /dev/raw/raw3
/bin/chown oracle:dba /dev/raw/raw4
/bin/chown oracle:dba /dev/raw/raw5
/bin/chown oracle:dba /dev/raw/raw6
/bin/chown oracle:dba /dev/raw/raw7
/bin/chown oracle:dba /dev/raw/raw8
/bin/chown oracle:dba /dev/raw/raw9
/bin/chown oracle:dba /dev/raw/raw10
/bin/chown oracle:dba /dev/raw/raw11
/bin/chown oracle:dba /dev/raw/raw12
/bin/chown oracle:dba /dev/raw/raw13
/bin/chown oracle:dba /dev/raw/raw14
/bin/chown oracle:dba /dev/raw/raw15
/bin/chown oracle:dba /dev/raw/raw16
/bin/chown oracle:dba /dev/raw/raw17
/bin/chown oracle:dba /dev/raw/raw18
/bin/chown oracle:dba /dev/raw/raw19
/bin/chown oracle:dba /dev/raw/raw20
/bin/chown oracle:dba /dev/raw/raw21
/bin/chown oracle:dba /dev/raw/raw22
/bin/chown oracle:dba /dev/raw/raw23
注意: 切记,需要在每次启动时为 RAC 集群中的每个节点执行以上的 绑定 步骤。它应该放在类似 /etc/rc.local 的启动脚本中。
您可以使用 raw 命令来验证原始绑定:
# raw -qa
/dev/raw/raw1:bound to major 58, minor 0
/dev/raw/raw2:bound to major 58, minor 1
/dev/raw/raw3:bound to major 58, minor 2
/dev/raw/raw4:bound to major 58, minor 3
/dev/raw/raw5:bound to major 58, minor 4
/dev/raw/raw6:bound to major 58, minor 5
/dev/raw/raw7:bound to major 58, minor 6
/dev/raw/raw8:bound to major 58, minor 7
/dev/raw/raw9:bound to major 58, minor 8
/dev/raw/raw10:bound to major 58, minor 9
/dev/raw/raw11:bound to major 58, minor 10
/dev/raw/raw12:bound to major 58, minor 11
/dev/raw/raw13:bound to major 58, minor 12
/dev/raw/raw14:bound to major 58, minor 13
/dev/raw/raw15:bound to major 58, minor 14
/dev/raw/raw16:bound to major 58, minor 15
/dev/raw/raw17:bound to major 58, minor 16
/dev/raw/raw18:bound to major 58, minor 17
/dev/raw/raw19:bound to major 58, minor 18
/dev/raw/raw20:bound to major 58, minor 19
/dev/raw/raw21:bound to major 58, minor 20
/dev/raw/raw22:bound to major 58, minor 21
/dev/raw/raw23:bound to major 58, minor 22