Подключение ssd для базы mysql
Настройка монтирования ssd
Создаем каталог куда будет монтироваться диск
- mkdir -p /mnt/mysql/mysql
Смотрим диск
- fdisk -l
Смотрим данные диска
- yum install smartmontools
- smartctl -a /dev/sdc
Проверка на то что диск действительно ssd (показал на ssd 1, сверил smartctl -a /dev/sdc)
- smartctl -a /dev/sda| grep "Device Model:"
или
- cat /sys/block/sdc/queue/rotational
Создание раздела
(Если говорит, что уже есть partition сначала отмонтировать и форматнуть)
- fdisk /dev/sdb Command (m for help): p (так для просмотра текущих разделов диска)
- Command (m for help): n
primary partition (1-4): p
Partition number (1-4): 1
First cylinder (1-7297, default 1):1
Last cylinder, +cylinders or +size{K,M,G} (1-7297, default 7297): 7297 (enter)
- Command (m for help): w
Форматируем
- mkfs.ext4 /dev/sdc
- mount -t ext4 /dev/sdc /mnt/mysql
Устанавливаем права
- mkdir /mnt/mysql/mysql
- chown mysql:mysql /mnt/mysql/mysql
- chmod 755 /mnt/mysql/mysql
Проверяем TRIM
Важно: Вы должны убедиться, что ваш SSD поддерживает TRIM перед тем, как пытаться монтировать раздел с флагом discard. Иначе вы можете потерять данные!
TRIM — команда интерфейса ATA, позволяющая операционной системе уведомить твердотельный накопитель о том, какие блоки данных уже не содержатся в файловой системе и могут быть использованы накопителем для физического удаления.
Должна поддерживаться ядром системы и диском. В censos 6.8 ядро 2.6.32 поддержка ядром TRIM включена.
Проверить версию ядра
- uname -r
Проверка поддержки TRIM на диске
- yum install hdparm
- hdparm -I /dev/sda | grep -i trim
Ответ должен быть таким:
* Data Set Management TRIM supported (limit 8 blocks)Монтируем при запуске
- mcedit /etc/fstab
/dev/sdc /mnt/mysql ext4 defaults,noatime,discard 0 1noatime полностью отключает запись времени доступа к файлу.
Действие noatime перекрывает собой nodiratime. Нет необходимости указывать оба параметра.
discard оставляем если есть TRIM
Важно: Использование флага discard для корневого раздела с файловой системой ext3 приведёт к тому, что он будет смонтирован в режиме только-чтение.
discard оставляем если есть TRIM
Важно: Использование флага discard для корневого раздела с файловой системой ext3 приведёт к тому, что он будет смонтирован в режиме только-чтение.
errors=remount-ro часто пишут монтирование с этим параметром. По сути это перемонтирование в режиме чтения при ошибках.
Настройка mysql
Перенос каталога базы
Останавливаем mysql
Останавливаем mysql
- mcedit /etc/my.cnf
Изменяем
datadir = /var/lib/mysql
на
datadir = /mnt/mysql/mysql
Если база в innodb меняем
innodb_data_home_dir = /var/lib/mysql
на
innodb_data_home_dir = /mnt/mysql/mysqlи еще
innodb_log_group_home_dir = /mnt/mysql/mysql
копируем базу в новый каталог
Создаем папку для хранения временных файлов
- mkdir /mnt/mysqltmp
- chown mysql:mysql /mnt/mysqltmp
Выясняем идентификатор пользователя (uid) и группы (gid) mysql
- id mysql
- mcedit /etc/fstab
tmpfs /mnt/mysqltmp tmpfs rw,gid=27,uid=27,size=4G,nr_inodes=10k,mode=0700 0 0Монтируем новый tmpfs раздел
- mount /mnt/mysqltmp
Может выдать ошибку
[mntent]: предупреждение: no final newline at the end of /etc/fstabНе обращаем внимания. Открываем fstab в mcedit, ставим курсор на последнюю позицию и нажимаем enter разок, потом сохраняем.
Редактируем файл конфигурации MySQL
- mcedit /etc/my.cnf
tmpdir=/mnt/mysqltmpНе забываем установить
# ~50-70% RAMРаспределение памяти 4GB например так
innodb_buffer_pool_size = 4G
2g на mysql, 512 на рам диск и 1,5 останется на остальное
- /etc/init.d/mysqld restart
Комментарии
Отправить комментарий