bitscn.com
linux udev和为mysql innodb共享表空间配置裸设备
⑴ udev 基础
udev 可管理保存在/dev 目录下的文件、文件只有在接入相应设备后才会生成、设备被拔出后自动删除
它还允许用户添加规则、以便修改/dev中默认的名称和权限、规则保存在/etc/udev/rules.d/目录下
⑵ mysql 绑定裸设备
只有innodb可以用裸设备
优点:绕过了文件系统,读写速度会有提高,并且数据会比较安全、同时降低文件系统负担、也改善系统性能
缺点:太安全了,好多备份工具可能没法用、dd可以考虑
下面介绍如何为mysql共享表空间绑定裸设备
㈠ 制作裸设备
# fdisk /dev/sda ==> /dev/sda5 # partprobe # fdisk -l # pvcreate /dev/sda5 # vgcreate -s 16m mysqlvg /dev/sda5 # lvcreate -l 90m -n sharespace mysqlvg # vim /etc/sysconfig/rawdevices ==> /dev/raw/raw1 /dev/mysqlvg/sharespace # service rawdevices start # chkconfig rawdevices on # chown -r mysql:dba /dev/mapper/mysqlvg-sharespace
㈡ 配置mysql
① 指定newraw属性
innodb_data_home_dir = innodb_data_file_path = /dev/mapper/mysqlvg-sharespace:60mnewraw
② 重启mysql服务,待其完成分区初始化工作后,再关闭mysql服务
③ 修改raw属性
innodb_data_home_dir = innodb_data_file_path = /dev/mapper/mysqlvg-sharespace:60mraw
④ 重启mysql服务
如果整个系统重启、裸设备的权限会被回收、导致mysql无法开启
官网描述如下:
[plain] will fail after the next reboot, if the /dev-tree is dynamically created by, e.g. udev, a makedev-script or similar. after reboot, the device will regain its former permission, typically excluding access by mysql.
alert 报警如下:
[plain] 130719 20:42:43 innodb: operating system error number 13 in a file operation. innodb: the error means mysqld does not have the access rights to innodb: the directory. innodb: file name /dev/mapper/mysqlvg-sharespace innodb: file operation call: 'open'. innodb: cannot continue operation.
此时可选方案:
1)写个简单的初始化脚本、当重启的时候自动授权
2)配置 udev条目、
[plain] [root@odd rules.d]# pwd /etc/udev/rules.d [root@odd rules.d]# cat 60-raw.rules action==add, kernel==sda5, group==dba, mode==0660, run+=/bin/raw /dev/raw/raw1 %n [root@odd rules.d]# cat 65-raw-permissions.rules kernel==sda5, group=dba, mode=0660
bitscn.com