免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2849 | 回复: 9
打印 上一主题 下一主题

[SCO UNIX] 哪位大侠共享一下:UNIXWARE创建裸设备的具体步骤 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-11-26 12:51 |只看该作者 |倒序浏览
正研究这方面的东东,搜到一些很好的资料,MIAOMU2008的帖子很好,可是里面提到的“具体步骤见《附件4.4:unixware裸设备的建立方法》文档”
不知有没有,哪位老大能指点迷津,感激不尽

论坛徽章:
0
2 [报告]
发表于 2004-11-26 13:48 |只看该作者

哪位大侠共享一下:UNIXWARE创建裸设备的具体步骤

论坛上以前讲过,自己搜一下
以下是简单步骤:
1.首先你的设备必须有空间
2.prtvtoc /home/vtoc /dev/rdsk/c0b0t0d0s0
3.vi /home/vtoc
添加新的分片(slice),设置文件系统为裸设备0x201
4.edvtoc /home/vtoc /dev/rdsk/c0b0t0d0s0

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
3 [报告]
发表于 2004-11-26 13:50 |只看该作者

哪位大侠共享一下:UNIXWARE创建裸设备的具体步骤

http://wdb1.sco.com/kb/showta?taid=105805&qid=8751625&sid=2137801054&pgnum=1
裸设备唯一与新加文件系统不同的地方是TAG为0x7
看不懂的地方再问。

论坛徽章:
0
4 [报告]
发表于 2004-11-26 15:31 |只看该作者

哪位大侠共享一下:UNIXWARE创建裸设备的具体步骤

我做的,unixware+oracle+ha(rose)和unixware+sybase+ha

数据库放在磁盘阵列上,diskadd 添加磁盘阵列作成文件系统,很简单实现双机热备。

切换的时候HA做操作

fsck -F vxfs -y $DISKDEV
mount -F vxfs $DISKDEV $MOUNTPOINT

在下对裸设备的操作不熟,甚至还没用过prtvtoc edvtoc ,如果把磁盘阵列作成裸设备的话,,HA用上面的命令能不能MOUNT,所以这两天就搜集这方面的资料。
多谢指教

论坛徽章:
0
5 [报告]
发表于 2004-11-26 15:55 |只看该作者

哪位大侠共享一下:UNIXWARE创建裸设备的具体步骤

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2004-11-26 16:02 |只看该作者

哪位大侠共享一下:UNIXWARE创建裸设备的具体步骤

如果把磁盘阵列作成裸设备的话,,HA用上面的命令能不能MOUNT,

你的要求不可能实现,所谓裸设备就是没有文件系统的物理存储块,
是需要操作者如数据库自行管理读写的设备,操作系统不识别的东西你怎么mount?!

论坛徽章:
0
7 [报告]
发表于 2004-11-26 16:06 |只看该作者

哪位大侠共享一下:UNIXWARE创建裸设备的具体步骤

cd /
prtvtoc -f  vtoc /dev/rdsk/c0b0t0d0s0
vi vtoc
在vtoc的后面增加要的裸设备 自己要设计好裸设备所在地址和大小
地址不能重叠slice不能相同
edvtoc -f vtoc /dev/rdsk/c0b0t0d0s0
shutdown -y -g -i6
在/dev/rdsk中就多了你要增加的裸设备
要使用刚建的裸设备要用mknod指定一个文件如:
mknod /data/touchfile b 7679 16
/data/touchfile 是你touch的一个文件 16是你的slice号

论坛徽章:
0
8 [报告]
发表于 2004-11-27 12:03 |只看该作者

哪位大侠共享一下:UNIXWARE创建裸设备的具体步骤

如果要实现双机热备,把数据库建的裸设备上,有没有这方面的方案呢。

我觉的总有一种办法来解决这个问题。(恕本人问些无知的问题,这方面知道不多)

论坛徽章:
0
9 [报告]
发表于 2004-11-28 10:02 |只看该作者

哪位大侠共享一下:UNIXWARE创建裸设备的具体步骤

原帖由 "小嗖" 发表:
如果要实现双机热备,把数据库建的裸设备上,有没有这方面的方案呢。

我觉的总有一种办法来解决这个问题。(恕本人问些无知的问题,这方面知道不多)


兄弟,好像双极热备和裸设备没什么关系吧,顶多是切换脚本里的一点区别
数据库是否使用裸设备是因为性能的原因啊。

论坛徽章:
0
10 [报告]
发表于 2004-11-28 20:56 |只看该作者

哪位大侠共享一下:UNIXWARE创建裸设备的具体步骤

3.使用vtoc命令划分slice
3.1.命令模式
VTOC的全称Volume Table of Contents,目录卷表,它管理着fdisk分区表和slice的分区表。
prtvtoc命令是一个磁盘VTOC信息的显示工具,该命令的命令模式如下:
prtvtoc –f filename /dev/rdsk/c0b0t1d0s0 (filename可以任意指定)
edvtoc命令是硬盘VTOC信息的编辑工具,因为每个硬盘在UnixWare7操作系统中都是VTOC驱动程序通过VTOC表进行管理的,所以说edvtoc也是UnixWare7修改硬盘分区的工具该命令的命令模式如下:
edvtoc –f filename /dev/rdsk/c0b0t1d0s0 (filename是指定的vtoc文件)
利用diskadd或者disksetup命令添加一个2G大小的分片
3.2.读取VTOC信息
以root用户登录
# prtvtoc –f vtoc.txt /dev/rdsk/c0b0t3d0s0
# pg vtoc.txt
---------------------------------------------------------------------
# SLICE TAG FLAGS START SIZE
0 0x5 0x201 32 45998000 ――》代表整个逻辑盘
1 0x4 0x201 2048 4280320 ――》代表第一个分片(裸设备)
2 0x0 0x0 0 0
3 0x0 0x0 0 0
4 0x0 0x0 0 0
5 0x0 0x0 0 0
6 0x0 0x0 0 0
7 0x1 0x201 32 34 ――》boot区
8 0xd 0x201 66 1982 ――》Alternate sector/track
9 0x0 0x0 0 0
10 0x0 0x0 0 0
11 0x0 0x0 0 0
12 0x0 0x0 0 0
13 0x0 0x0 0 0
14 0x0 0x0 0 0
15 0x0 0x0 0 0
(EOF):
--------------------------------------------------------------------------
注:
SLICE:该字段表示分片号,其中分片号0(代表整个逻辑盘)、7、8是系统所有;
TAG:该字段对于分片号0、7、8是系统自定的(0x5、0x1、0xd),不能改变,其它分片号在划分裸设备时对应该字段都是0x4;
FLAGS:该字段中0x200表示文件系统,0x201表示裸设备;
START:开始大小,其数值等于上一个分片的start+size,例如在vtoc文件中,我们可以看到其中slice8的start值(66)等于slice7的start+size值(32+34),其中slice1的start值(204等于slice8的start+size值(66+1982);
SIZE:分片大小,单位512字节,其中slice0的size表示整个逻辑盘的大小45998000*0.5K=22.998G,而slice1的分片实际大小为4280320*0.5K=2.14G,因为sybase限制分片最大2G,所以我们可以修改vtoc文件使size大小为4000000*0.5K=2G
3.3.编辑VTOC信息
了解vtoc.txt文件中每个字段的意义,我们就可以利用vi工具编辑该文件,修改后的文件为:
------------------------------------------------------------------
#SLICE TAG FLAGS START SIZE
0 0x5 0x201 32 47101920
1 0x4 0x201 2048 4000000
2 0x4 0x201 4002048 4000000
3 0x4 0x201 8002048 4000000
4 0x4 0x201 12002048 4000000
5 0x4 0x201 16002048 4000000
6 0x4 0x201 20002048 4000000
7 0x1 0x201 32 34
8 0xd 0x201 66 1982
9 0x4 0x201 24002048 4000000
10 0x4 0x201 28002048 4000000
11 0x4 0x201 32002048 4000000
12 0x4 0x201 36002048 4000000
13 0x4 0x201 40002048 4000000
14 0x4 0x201 44002048 3000000
------------------------------------------------------------------------------------
注:
1. 编辑vtoc.txt有一个原则,最后一个slice的结束sector不能超出整个fdisk分区的范围,如果超出,将产生不可预料的严重错误,甚至有导致整个系统瘫痪的可能(如果整个硬盘作为裸设备则不会出现该问题)。
2. 所有分片的的size之和不能超过该硬盘的大小,即所有slice(1-14)对应的size之和不能大于slice0对应的szie数值。
3. 编辑vtoc.txt文件时,最后一行不能为空行。

3.4.更新VTOC信息
利用edvtoc命令更新硬盘的VTOC信息:
# edvtoc –f vtoc.txt /dev/rdsk/c0b0t3d0s0
你会看到
---------------------------------------------------------------------------
UX:edvtoc: INFO: The following slices are the new disk configuration
you have created. NO ERROR or VALIDITY checking has been done on it.
slice 0: tag: DISK perms: VALID UNMOUNTABLE start: 32 length: 47101920
slice 1: tag: USER perms: VALID UNMOUNTABLE start: 2048 length: 4000000
slice 2: tag: USER perms: VALID UNMOUNTABLE start: 4002048 length: 4000000
slice 3: tag: USER perms: VALID UNMOUNTABLE start: 8002048 length: 4000000
slice 4: tag: USER perms: VALID UNMOUNTABLE start: 12002048 length: 4000000
slice 5: tag: USER perms: VALID UNMOUNTABLE start: 16002048 length: 4000000
slice 6: tag: USER perms: VALID UNMOUNTABLE start: 20002048 length: 4000000
slice 7: tag: BOOT perms: VALID UNMOUNTABLE start: 32 length: 34
slice 8: tag: ALT SEC/TRK perms: VALID UNMOUNTABLE start: 66 length: 1982
slice 9: tag: USER perms: VALID UNMOUNTABLE start: 24002048 length: 4000000
slice 10: tag: USER perms: VALID UNMOUNTABLE start: 28002048 length: 4000000
slice 11: tag: USER perms: VALID UNMOUNTABLE start: 32002048 length: 4000000
slice 12: tag: USER perms: VALID UNMOUNTABLE start: 36002048 length: 4000000
slice 13: tag: USER perms: VALID UNMOUNTABLE start: 40002048 length: 4000000
slice 14: tag: USER perms: VALID UNMOUNTABLE start: 44002048 length: 3000000

Is this configuration the VTOC you want written to c0b0t3d0s0?
(y/n) y
-----------------------------------------------------------------------------------------------
编译内核后重新启动机器 :
# /etc/conf/bin/idbuild
# shutdown –y –g0 –i6
三.查看分片情况
# cd dev/rdsk
# lf c0b0t3d01s*
如果看到的文件从cob0t3d0s0~c0b0t3d0se的话,表示分片成功。
四.映射裸设备文件
1.映射裸设备
通过裸设备创建数据库设备(database device),则需首先将裸设备文件映射到指定的文件名上:
# ln –s /dev/rdsk/c0b0t3d0s1 /home/sybae/devlink/dev25
链接映射后,还需将/dev/rdsk/c0b0t3d0s1的文件属性进行修改:
# chown sybase:sybase /dev/rdsk/c0b0t1d0s1
# chmod 660 /dev/rdsk/c0b0t1d0s1
这里我们为了方便可以先编写一个devcfg的shell脚本:
#raw device config 20040618
ln -s /dev/rdsk/c0b0t3d0s1 /home/sybase/devlink/dev25
ln -s /dev/rdsk/c0b0t3d0s2 /home/sybase/devlink/dev26
ln -s /dev/rdsk/c0b0t3d0s3 /home/sybase/devlink/dev27
ln -s /dev/rdsk/c0b0t3d0s4 /home/sybase/devlink/dev28
ln -s /dev/rdsk/c0b0t3d0s5 /home/sybase/devlink/dev29
ln -s /dev/rdsk/c0b0t3d0s6 /home/sybase/devlink/dev30
ln -s /dev/rdsk/c0b0t3d0s9 /home/sybase/devlink/dev31
ln -s /dev/rdsk/c0b0t3d0sa /home/sybase/devlink/dev32
ln -s /dev/rdsk/c0b0t3d0sb /home/sybase/devlink/dev33
ln -s /dev/rdsk/c0b0t3d0sc /home/sybase/devlink/dev34
ln -s /dev/rdsk/c0b0t3d0sd /home/sybase/devlink/dev35
ln -s /dev/rdsk/c0b0t3d0se /home/sybase/devlink/dev36
修改脚本属性为可执行:
# chmod +x devcfg
# devcfg
2.修改裸设备属主及属性
# chown sybase:sybase /dev/rdsk/c0b0t3*
# chown sybase:sybase /dev/dsk/c0b0t3*
# chown sybase:sybase /dev/async
# chmod 660 /dev/dsk/c0b0t1d0s0
# chmod 660 /dev/rdsk/c0b0t3d0s
# chmod 660 /dev/dsk/c0b0t3d0s0

到此,裸设备配置完成,之后在裸设备上划分建立数据库设备就可以了。
注:
服务器由于更改配置需要重启,重新rebuild后裸设备的映射关系以及属主、属性有可能会回复初始状态,这不是我们希望看到的。解决此问题的办法,就是将裸设备的映射关系以及改变属主、属性的操作统一写在一个可执行文件中(例如S99rawdevcfg),然后将此文件的属性用chmod 777 S99rawdevcfg改为可执行,再将此文件置放于系统自启动目录/etc/rc2.d下,则系统启动时自动执行此文件,以保证裸设备的正常运作。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP