请教各位大虾:块设备和字符设备的区别以及它们的用途和优缺点!
在下先谢谢各位了。
jazy 回复于:2002-08-01 16:18:41 |
[这个贴子最后由jazy在 2002/08/02 09:46am 编辑] 字符设备是裸设备 通过查看 ll /dev/vg00/ 下的内容 若开头带c字符的则为字符设备 块设备是文件设备 通过查看 ll /dev/vg00/ 下的内容 若开头带b字符的则为块符设备 在使用上,只要在对数据库方面的应用需要考虑是选择快设备还是字符设备。一般数据库厂商会建议你建库时使用裸设备(字符设备),空间管理完全由数据库引擎进行管理,这样所有数据和日志直接写盘,当发生系统故障时,系统安全性较强,不至于丢失数据。但还有一种说法是使用块设备便于管理维护人员的系统管理,因为使用裸设备在第一次分配出去之后,这个设备的空间就不能做任何其他用途了,但块设备则不然,你想使用多少空间就分配多少,你可以进行自由的扩展,而无需一次性的全部分配出去。所以我建议在创建数据库master库使用裸设备,而业务数据库及tempdb则使用块设备。 |
guoguo 回复于:2002-08-01 17:15:47 |
建议数据库都用字符设备!!!! |
jazy 回复于:2002-08-02 09:43:15 |
当然,最保守的办法是全部采用字符设备了,但这是需要牺牲速度的。 |
Apache 回复于:2002-08-02 10:40:14 |
字符设备要比块设备快!而且节省资源。其他的优点,大家说得很清楚了,因为: 字符设备可以使用DMA。 |
jazy 回复于:2002-08-02 15:30:09 |
sybase数据库的安装分为两种方式:文件系统方式和原始设备方式。文件系统方式即将sybase数据库建立在文件系统( File System)的基础上,以文件的形式存放,优点是读写的速度快,据sybase公司工程师称,其读写速度是原始设备方式的5倍,并且备份可以采用保存转移文件的形式进行,较为灵活;而原始设备方式将数据库系统直接建立在原始设备(Raw device)的基础上,最大的优点是安全性较高。 |
guoguo 回复于:2002-08-02 17:38:18 |
可笑!sybase设计! 竟然与其它数据库相反! 文件系统比裸设备快! |
jazy 回复于:2002-08-02 18:57:07 |
是啊,这点也许大家都觉得奇怪,但我想我有责任进一步说明这点!在这我给诸位列出二者之间的比较,资料来自sybase公司培训教材! Advantages of Operating System Files on UNIX: Potential advantages to using operating system files rather than raw partitions: 1>Response time for queries may be faster: Requested page may be found in the file system cache even when not found in the Sybase buffer cache 2>Operating system sequential prefetch may be faster: Operating system can fetch more than 16K from disk 3>Reads are at least as fast as reads from raw partitions 4>Devices created on file systems that support greater than 4GB physical memory can take advantage of a large file system cache File systems are easier to manage than raw partitions Sybase Devices on Windows NT: Raw Versus File System: On Windows NT, choices for Sybase devices are: 1>FAT files 2>NTFS files 3>Raw partitions For both NTFS files and raw partitions: 1>Asynchronous I/O is available 2>Writes are reliable 3>Performance is nearly identical Because files are easier to work with, using NTFS files for Sybase devices is recommended 至于如何选择,还是自己拿主意吧,哈哈...... |
gangang 回复于:2002-08-07 15:51:41 |
真是不看不知道,SYBASE真奇妙。和ORACLE,DB2如此不同。 我有个问题:如果想使用RAW DEVICE,是否直接使用这个设备文件就可以了。还是要向LINUX中那样先raw一下(或者其他什么处理)。 |
jazy 回复于:2002-08-08 10:04:46 |
需要创建裸分区:(在这里是创建一个存放master库的设备) lvcreate -L 300 -n sybmasterdev /dev/vgdata1 这样在dev/vgdata1/下会形成两个设备:sybmasterdev 和 rsybmasterdev 在创建数据库时如果用裸设备就选用rsybmaster ,如果用文件系统则用sybmasterdev! |
cjns 回复于:2002-08-08 14:08:07 |
其实SYBASE在FS上快是因为使用了两次内存的缓冲,系统的缓冲和刷新效果很明显的。 其实也只是返回值快,数据还在内存里,所以不可靠。但是sybase 12已经把FS的系统缓冲可以disable了,没优势啦,呵呵!!! 其实接了大盘阵用什么都无所谓,反正是用cache |
howto 回复于:2002-08-08 14:18:51 |
问的是操作系统的东西,怎么都跑到sybase上去了??? 跑题啦!!! |
chinazhaok 回复于:2002-08-08 14:21:22 |
其实讨论一下也很好啊!不同的数据库他们的设计不同,比如oracle常常都是建在文件系统上! |
cjns 回复于:2002-08-08 14:29:31 |
哈哈哈哈哈哈哈哈哈 |
zhguowen 回复于:2002-08-08 15:05:09 |
这儿的讨论非常精彩,感谢大家的参与!!!我却无法贴图 唉! |
zhguowen 回复于:2002-08-09 11:21:03 |
大家分析的很好 |
jazy 回复于:2002-08-11 10:00:06 |
很高兴大家能就这个问题进行激烈的讨论,我想,有些问题不存在绝对的正确与错误,很多时候只是涉及系统优化的问题,具体如何规划,这需要考虑自己的具体情况,权衡利弊。前几天,我们这刚安装一套系统,硬件配制是HP L2000(主备)加磁盘阵列,操作系统是HPUX 11i,数据库选用ASE12,双机采用MC/SG 。在规划时,是将master、systempprocs及业务库分别建在不同的裸设备上,而只将tempdb创建在文件系统上。 |
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/