本文共 5988 字,大约阅读时间需要 19 分钟。
错误信息:
10:41:54 WARNING: mt_aio_wait: errno == EINVAL
10:41:54 The chunk '/informix.links/warehouse/rootdbs' will not fit in the space specified.一台正在使用的服务器,上面已经安装过Informix了,现在想添加一个实例,由于硬盘空间不足了,所以需要加一个阵列柜。
由于要添加的实例将要用到很多空间,所以柜子的容量也比较大。当时建立阵列的时候选择的是支持大于2TB的空间。一切配置正常后,初始化报错:
10:41:49 Event alarms enabled. ALARMPROG = '/home/informix/etc/alarmprogram.sh'
10:41:49 Booting Language from module <>10:41:49 Loading Module 10:41:49 Booting Language from module <>10:41:49 Loading Module 10:41:54 DR: DRAUTO is 0 (Off)10:41:54 IBM Informix Dynamic Server Version 10.00.UC4 Software Serial Number AAA#B00000010:41:54 WARNING: mt_aio_wait: errno == EINVAL10:41:54 The chunk '/informix.links/warehouse/rootdbs' will not fit in the space specified.10:41:54 IBM Informix Dynamic Server Stopped.
首先检查数据空间有没有问题。
tonykorn97:/informix.links/warehouse # ls -al
total 8drwxr-xr-x 2 root root 4096 2007-03-09 10:44 .drwxr-xr-x 9 root root 4096 2007-03-08 14:28 ..lrwxrwxrwx 1 root root 14 2007-03-08 11:11 datadbs01 -> /dev/raw/raw55lrwxrwxrwx 1 root root 14 2007-03-08 11:12 indexdbs01 -> /dev/raw/raw56lrwxrwxrwx 1 root root 14 2007-03-08 11:10 llogdbs -> /dev/raw/raw53lrwxrwxrwx 1 root root 14 2007-03-08 11:10 plogdbs -> /dev/raw/raw52lrwxrwxrwx 1 root root 14 2007-03-09 10:44 rootdbs -> /dev/raw/raw51lrwxrwxrwx 1 root root 14 2007-03-08 11:11 tempdbs -> /dev/raw/raw54tonykorn97:/informix.links/warehouse # raw -aq/dev/raw/raw1: bound to major 8, minor 5/dev/raw/raw2: bound to major 8, minor 6/dev/raw/raw3: bound to major 8, minor 7/dev/raw/raw4: bound to major 8, minor 8/dev/raw/raw5: bound to major 8, minor 9/dev/raw/raw11: bound to major 8, minor 10/dev/raw/raw12: bound to major 8, minor 11/dev/raw/raw13: bound to major 8, minor 12/dev/raw/raw14: bound to major 8, minor 13/dev/raw/raw15: bound to major 8, minor 14/dev/raw/raw21: bound to major 8, minor 17/dev/raw/raw22: bound to major 8, minor 18/dev/raw/raw23: bound to major 8, minor 19/dev/raw/raw24: bound to major 8, minor 21/dev/raw/raw25: bound to major 8, minor 22/dev/raw/raw41: bound to major 8, minor 33/dev/raw/raw42: bound to major 8, minor 34/dev/raw/raw43: bound to major 8, minor 35/dev/raw/raw44: bound to major 8, minor 37/dev/raw/raw45: bound to major 8, minor 38/dev/raw/raw46: bound to major 8, minor 39/dev/raw/raw51: bound to major 8, minor 49/dev/raw/raw52: bound to major 8, minor 50/dev/raw/raw53: bound to major 8, minor 51/dev/raw/raw54: bound to major 8, minor 53/dev/raw/raw55: bound to major 8, minor 54/dev/raw/raw56: bound to major 8, minor 55tonykorn97:/informix.links/warehouse # tail -n 10 /etc/rawraw44:sdc5raw45:sdc6raw46:sdc7#Data warehouseraw51:sdd1
raw52:sdd2raw53:sdd3raw54:sdd5raw55:sdd6raw56:sdd7tonykorn97:/informix.links/warehouse #权限也都正常
tonykorn97:/informix.links/warehouse # ls -al /dev/raw/raw5*
crw-rw---- 1 informix informix 162, 5 2006-09-25 23:48 /dev/raw/raw5crw-rw---- 1 informix informix 162, 51 2007-03-08 11:07 /dev/raw/raw51crw-rw---- 1 informix informix 162, 52 2007-03-08 11:07 /dev/raw/raw52crw-rw---- 1 informix informix 162, 53 2007-03-08 11:07 /dev/raw/raw53crw-rw---- 1 informix informix 162, 54 2007-03-08 11:07 /dev/raw/raw54crw-rw---- 1 informix informix 162, 55 2007-03-08 11:07 /dev/raw/raw55crw-rw---- 1 informix informix 162, 56 2007-03-08 11:07 /dev/raw/raw56tonykorn97:/informix.links/warehouse #此时作为测试用文件系统做数据空间,初始化正常。
当时以为是重新分完区之后没有重新启动柜子造成的。按照原来的经历,这个是不需要重起系统的。不过当时找不出来原因,就先重起了一下系统试试,重新启动系统后结果还是一样。此时用:
dd if=/dev/raw/raw51 of=/tmp/raw51.out count=1测试出错。而当用bs=2048的时候就正常。
dd if=/dev/raw/raw51 of=/tmp/raw51.out bs=2048 count=1 然后发现正常的扇区大小是512,而柜子的扇区大小是2048tonykorn97:/informix.links/warehouse # fdisk -lDisk /dev/sdc: 146.6 GB, 146695782400 bytes
255 heads, 63 sectors/track, 17834 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System
/dev/sdc1 1 16 128488+ 83 Linux/dev/sdc2 17 80 514080 83 Linux/dev/sdc3 81 208 1028160 83 Linux/dev/sdc4 209 17834 141580845 5 Extended/dev/sdc5 209 464 2056288+ 83 Linux/dev/sdc6 465 8145 61697601 83 Linux/dev/sdc7 8146 10706 20571201 83 Linux/dev/sdc8 10707 17834 57255628+ 83 LinuxNote: sector size is 2048 (not 512)Disk /dev/sdd: 1263.3 GB, 1263324364800 bytes
255 heads, 63 sectors/track, 38397 cylindersUnits = cylinders of 16065 * 2048 = 32901120 bytesDevice Boot Start End Blocks Id System
/dev/sdd1 1 8 256914 83 Linux/dev/sdd2 9 24 514080 83 Linux/dev/sdd3 25 56 1028160 83 Linux/dev/sdd4 57 38397 1231896330 5 Extended/dev/sdd5 57 120 2056194 83 Linux/dev/sdd6 121 16120 514079874 83 Linux/dev/sdd7 16121 24120 257039874 83 Linux 当时想,如果系统是按照扇区数来读写磁盘的话,系统把现在的2048大小的扇区当作512的扇区的话,那么空间应该缩小4倍。缩小数据空间后重新初始化还是出错。还测试的有:
用lvm来管理磁盘,然后用raw建立链接,不行。用ln 直接链接到设备上,还是一样。用fdisk -b 512 /dev/sdg分区
-b 512指的是扇区大小是512tonykorn97:/proc # fdisk -b 512 /dev/sdg
Command (m for help): n
Command actione extendedp primary partition (1-4)pPartition number (1-4): 1First cylinder (1-142072, default 1): Using default value 1Last cylinder or +size or +sizeM or +sizeK (1-142072, default 142072): 32Command (m for help): p
Disk /dev/sdg: 1168.5 GB, 1168583426048 bytes
255 heads, 63 sectors/track, 142072 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System
/dev/sdg1 1 32 257008+ 83 LinuxCommand (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.
Syncing disks.fdisk -l查看的结果:
Note: sector size is 2048 (not 512)Disk /dev/sdg: 1168.5 GB, 1168583426048 bytes
255 heads, 63 sectors/track, 35518 cylindersUnits = cylinders of 16065 * 2048 = 32901120 bytesDevice Boot Start End Blocks Id System
/dev/sdg1 1 32 1028034 83 Linux 没有办法,只有重新配置阵列柜,这次配置阵列柜的时候选择Slice over 2TB为NO。配置完后重新设置,然后初始化成功。 最后总结原因,应该是系统默认的扇区大小是512,而柜子的扇区大小是2048,系统读取扇区的时候是按照512的大小来读取的。此时由于大小不一样就报错了。来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/312079/viewspace-245620/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/312079/viewspace-245620/