设置Linux软件RAID10以存储MySQL数据文件和数据库
时间:2020-03-21 11:47:06 来源:igfitidea点击:
我们将设置Linux软件RAID10,并重新配置MySQL以将其用于数据文件和数据库。
安装
我们正在使用Ubuntu 13.10(Saucy Salamander):
# uname -rv 3.11.0-15-generic #23-Ubuntu SMP Mon Dec 9 18:17:04 UTC 2013
安装mdadm和mysql:
# apt-get update && apt-get install mdadm mysql-server
创建软件RAID10
我们为Linux突袭预先配置了4x2GB磁盘:
# fdisk -l | grep /dev/xv Disk /dev/xvda1 doesn't contain a valid partition table Disk /dev/xvda1: 8589 MB, 8589934592 bytes Disk /dev/xvdf: 2147 MB, 2147483648 bytes /dev/xvdf1 2048 4194303 2096128 fd Linux raid autodetect Disk /dev/xvdg: 2147 MB, 2147483648 bytes /dev/xvdg1 2048 4194303 2096128 fd Linux raid autodetect Disk /dev/xvdh: 2147 MB, 2147483648 bytes /dev/xvdh1 2048 4194303 2096128 fd Linux raid autodetect Disk /dev/xvdi: 2147 MB, 2147483648 bytes /dev/xvdi1 2048 4194303 2096128 fd Linux raid autodetect
创建RAID10阵列:
# mdadm -C /dev/md0 -l 10 -n 4 /dev/xvdf1 /dev/xvdg1 /dev/xvdh1 /dev/xvdi1 -v mdadm: layout defaults to n2 mdadm: layout defaults to n2 mdadm: chunk size defaults to 512K mdadm: size set to 2094592K mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started.
启动时自动扫描并激活阵列:
# mdadm --detail --scan --verbose > /etc/mdadm/mdadm.conf
等待阵列完成磁盘同步:
# watch cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid10 xvdi1[3] xvdh1[2] xvdg1[1] xvdf1[0] 4189184 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU] [=========>...........] resync = 49.2% (2064912/4189184) finish=0.9min speed=38738K/sec unused devices: <none>
同步完成:
# cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid10 xvdi1[3] xvdh1[2] xvdg1[1] xvdf1[0] 4189184 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU] unused devices: <none>
请注意,良好的做法是定期运行数据清理以检查并修复错误。
要手动启动数据清理:
# echo check > /sys/block/md0/md/sync_action
要安全停止当前正在运行的数据清理,请执行以下操作:
# echo idle > /sys/block/md0/md/sync_action
创建一个ext4文件系统:
# mkfs.ext4 /dev/md0
创建一个安装点:
# mkdir /sql_data
挂载RAID驱动器:
# mount /dev/md0 /sql_data
创建一个失物招领目录:
# cd /sql_data
# mklost+found
不要忘记将记录添加到fstab中:
# echo "/dev/md0 /sql_data ext4 defaults 0 0" >> /etc/fstab
(可选)配置电子邮件警报以进行每日检查,以确保所有降级的MD设备都不会被忽略:
# echo "MAILADDR Hyman@theitroad" >> /etc/mdadm/mdadm.conf # echo "MAILFROM Hyman@theitroad" >> /etc/mdadm/mdadm.conf
配置MySQL
默认情况下,MySQL在Ubuntu上将其数据文件和数据库存储在“/var/lib/mysql”下。
我们想将其更改为我们新创建的RAID驱动器。
首先停止守护程序:
# service mysql stop
打开配置文件并适当地更改“ datadir”:
# vim /etc/mysql/my.cnf [...] #datadir = /var/lib/mysql datadir = /sql_data [...]
为新路径创建别名:
# echo "alias /var/lib/mysql/-> /sql_data/," >> /etc/apparmor.d/tunables/alias
将所有内容从默认目录复制到新位置,并更改文件夹的所有权:
# cp -Rp /var/lib/mysql/* /sql_data # chown mysql:mysql /sql_data # chmod 0700 /sql_data
重新加载apparmor守护程序并启动mysql服务器:
# service apparmor reload # service mysql start
检查mysql日志,以防遇到问题:
# tail -f /var/log/mysql/error.log