本篇主要介绍在linux环境下以命令行方式来准备安装sybase所需要的裸设备分区、卷组、逻辑卷等。
首先来看看裸设备相关的知识:
1.什么叫做裸设备?
裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Linux通过文件系统来读取的特殊字符设备。它由应用程序负责对它进行读写操作。不经过文件系统的缓冲。
2.使用裸设备的好处
因为使用裸设备避免了再经过操作系统这一层,数据直接从Disk到应用进行传输,所以使用裸设备对于读写频繁的数据库应用来说,可以极大地提高数据库系统的性能。当然,这是以磁盘的 I/O 非常大,磁盘I/O已经称为系统瓶颈的情况下才成立。如果磁盘读写确实非常频繁,以至于磁盘读写成为系统瓶颈的情况成立,那么采用裸设备确实可以大大提高性能,最大甚至可以提高至40%,非常明显。
下面来看看我实验的这台机器的磁盘:
在xenserver里挂载了2个virtual disks给这台实验机器,挂载hdb的分区都为文件系统用来安装os以及sybase应用,挂载hdc的将建立逻辑卷来存放sybase的device。
建立分区
先看下hdb的分区:
Login as root:
Command (m for help): p (输出分区表)
Disk /dev/hdb: 64.4 GB, 64424509440 bytes
255 heads, 63 sectors/track, 7832 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hdb1 1 523 4200966 82 Linux swap / Solaris
/dev/hdb2 * 524 1829 10490445 83 Linux
/dev/hdb3 1830 7051 41945715 83 Linux
这里一定要注意,接着到我们要操作的hdc这个存储去!!!!!
DevServer-9:~ # fdisk /dev/hdc
Command (m for help): p (输出分区表)
Device Boot Start End Blocks Id System
Command (m for help): n (建立新分区)
Command action
e extended
p primary partition (1-4)
Partition number (1-4):1(建立新分区序号输入1则建立/dev/hdc1)
First cylinder (1-23497, default 1): (默认)
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-23497, default 23497): (默认全部空间都分掉)
Using default value 23497
Command (m for help): p (看看分区表现在怎么样了)
Disk /dev/hdc: 193.2 GB, 193273528320 bytes
255 heads, 63 sectors/track, 23497 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hdc1 1 23497 188739621 83 Linux(这里的83不是我们要的哦!)
Command (m for help): t (改分区格式)
Selected partition 1
Hex code (type L to list codes): 8e(8e才是我们要的)
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): p (再确认一下分区表吧,虽然是实验环境咱也得谨慎点是不)
Disk /dev/hdc: 193.2 GB, 193273528320 bytes
255 heads, 63 sectors/track, 23497 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hdc1 1 23497 188739621 8e Linux LVM
Command (m for help): w (确认写入,然后等suse齐齐卡卡…………)
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
中间不是有提示你按L看看codes的列表,那咱就看看吧:)
0 Empty 1e Hidden W95 FAT1 80 Old Minix be Solaris boot
1 FAT12 24 NEC DOS 81 Minix / old Lin bf Solaris
2 XENIX root 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
5 Extended 41 PPC PReP Boot 85 Linux extended c7 Syrinx
6 FAT16 42 SFS 86 NTFS volume set da Non-FS data
7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / .
8 AIX 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility
9 AIX bootable 4f QNX4.x 3rd part 8e Linux LVM df BootIt
a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e1 DOS access
b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O
c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS e4 SpeedStor
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs
f W95 Ext'd (LBA) 54 OnTrackDM6 a5 FreeBSD ee EFI GPT
10 OPUS 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
11 Hidden FAT12 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
12 Compaq diagnost 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor a9 NetBSD f4 SpeedStor
16 Hidden FAT16 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fd Linux raid auto
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fe LANstep
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid ff BBT
1c Hidden W95 FAT3 75 PC/IX
通常,不需要重启,但有些计算机却要求。因此如果下面的命令不工作,试试重启。
到这里我们的分区算是分完了。命令行确实有点麻烦啊,尤其是写到博客里……
建立卷组以及逻辑卷
在这节我们要建立sybase所需要的设备空间。
syb-master 300M
syb-proc 556M
syb-tempdb 4200M
syb-data1 64G
syb-log1 32G
所有逻辑卷都在syb卷组下面。
Login as root:
#vgcreate syb /dev/hdc1(建立分组。syb为组名。/dev/hdb1为上面建立的物理卷)
Volume group "syb" successfully created
#lvcreate -L 300M -n master syb
Logical volume "master" created
#lvcreate -L 556M -n proc syb
Logical volume "proc" created
#lvcreate -L 4200M -n tempdb syb
Logical volume "tempdb" created
#lvcreate –L64G -n data1 syb
Logical volume "data1" created
#lvcreate -L 32G -n log1 syb
Logical volume "log1" created
建立完成后可用vgdisplay syb –v命令查看
创建完后可以看到/dev/mapper下有5个分卷设备,卷名分别为:
syb-master
syb-proc
syb-tempdb
syb-data1
syb-log1
# vi /etc/raw (添加以下内容。如raw设备已被使用请自行调整)
raw11:syb/master
raw12:syb/proc
raw13:syb/data1
raw14:syb/tempdb
raw15:syb/log1
注意这里:前后都不要有坑爹的空格啊!!!!!!!!!
激活裸设备, 将裸设备绑定到分区
# cd /etc/init.d/
# sh raw start
启动/etc/init.d ./raw start
停止/etc/init.d ./raw stop
DevServer-9:/etc/init.d # sh raw start
bind /dev/raw/raw11 to /dev/syb/master... done
bind /dev/raw/raw12 to /dev/syb/proc... done
bind /dev/raw/raw13 to /dev/syb/data1... done
bind /dev/raw/raw14 to /dev/syb/tempdb... done
bind /dev/raw/raw15 to /dev/syb/log1... done
#查询是否激活
# /usr/sbin/raw -qa
配置在系统重启动后自动激活裸设备
# /sbin/chkconfig raw on
检查
# /sbin/chkconfig raw (应为on)
数据库初始化设备时使用/dev/raw/raw(n)设备名即可