Both sides previous revision
Previous revision
Next revision
|
Previous revision
|
ru:jobs:lustrefs [2013/01/12 10:21] admin [Развертывание Lustre] |
ru:jobs:lustrefs [2015/03/12 17:11] admin [Послесловие] |
Lustre - распределенная файловая система с раздельным хранением данных и метаданных. | Lustre - распределенная файловая система с раздельным хранением данных и метаданных. |
Непосредственно для хранения данных и метаданных на узлах используется файловая система **ext3**. | Непосредственно для хранения данных и метаданных на узлах используется файловая система **ext3**. |
Существует проект: [[http://zfsonlinux.org/lustre.html|ZFS based Lustre solution]], использующий ZFS со всеми плюсами этой файловой системы (в данной работе мы не будем его касаться). | Описание установки over ZFS : [[http://myitnotes.info/doku.php?id=ru:jobs:lustrefszfs|тут]] (в данной работе мы не будем его касаться). |
| |
**Lustre состоит из следующих компонентов:**\\ | **Lustre состоит из следующих компонентов:**\\ |
| |
{{:ru:jobs:lustrecomp.jpg?600|300}} | {{:ru:jobs:lustrecomp.jpg?600|300}} |
| |
==== Выбор аппаратного обеспечения узлов*. ==== | ==== Выбор аппаратного обеспечения узлов*. ==== |
*** Все дальнейшие рассуждения и расчеты приведены для связок | *** Все дальнейшие рассуждения и расчеты приведены для связок |
**На сервере MGS/MDS/OSS:**\\ | **На сервере MGS/MDS/OSS:**\\ |
| |
//mkfs.lustre --fsname=FS --mgs --mdt --index=0 /dev/md1// (Где /dev/md1 - устройство software RAID1)\\ | mkfs.lustre --fsname=FS --mgs --mdt --index=0 /dev/md1// (Где /dev/md1 - устройство software RAID1) |
//mkdir /mdt\\ | mkdir /mdt |
mount -t lustre /dev/md1 /mdt\\ | mount -t lustre /dev/md1 /mdt |
echo "/dev/md1 /mdt lustre defaults,_netdev 0 0" >> /etc/fstab//\\ | echo "/dev/md1 /mdt lustre defaults,_netdev 0 0" >> /etc/fstab// |
| |
//mkfs.lustre --fsname=FS --mgsnode=10.255.255.1@tcp0 --ost --index=0 /dev/sda// (Где /dev/sda - том RAID5)\\ | mkfs.lustre --fsname=FS --mgsnode=10.255.255.1@tcp0 --ost --index=0 /dev/sda// (Где /dev/sda - том RAID5) |
//mkfs.lustre --fsname=FS --mgsnode=10.255.255.1@tcp0 --ost --index=1 /dev/sdb// (Где /dev/sdb - том RAID5)\\ | mkfs.lustre --fsname=FS --mgsnode=10.255.255.1@tcp0 --ost --index=1 /dev/sdb// (Где /dev/sdb - том RAID5) |
| |
//mkdir /ost0\\ | mkdir /ost0 |
mkdir /ost1// | mkdir /ost1 |
| |
//mount -t lustre /dev/sda /ost0\\ | mount -t lustre /dev/sda /ost0 |
mount -t lustre /dev/sdb /ost1// | mount -t lustre /dev/sdb /ost1 |
| |
// | echo "/dev/sda /ost0 lustre defaults,_netdev 0 0" >> /etc/fstab |
echo "/dev/sda /ost0 lustre defaults,_netdev 0 0" >> /etc/fstab\\ | echo "/dev/sdb /ost1 lustre defaults,_netdev 0 0" >> /etc/fstab |
echo "/dev/sdb /ost1 lustre defaults,_netdev 0 0" >> /etc/fstab// | |
| |
//mkdir /FS\\ | mkdir /FS |
mount -t lustre /FS\\ | mount -t lustre /FS |
echo "10.255.255.1@tcp0:/temp /FS lustre defaults,_netdev 0 0" >> /etc/fstab// | echo "10.255.255.1@tcp0:/temp /FS lustre defaults,_netdev 0 0" >> /etc/fstab |
| |
**На серверах OSS:**\\ | **На серверах OSS:** |
| |
//mkfs.lustre --fsname=FS --mgsnode=10.255.255.1@tcp0 --ost --index=N /dev/sda// (Где N-номер узла, /dev/sda - том RAID5)\\ | mkfs.lustre --fsname=FS --mgsnode=10.255.255.1@tcp0 --ost --index=N /dev/sda// (Где N-номер узла, /dev/sda - том RAID5) |
//mkfs.lustre --fsname=FS --mgsnode=10.255.255.1@tcp0 --ost --index=N+1 /dev/sdb// (Где N-номер узла, /dev/sdb - том RAID5)\\ | mkfs.lustre --fsname=FS --mgsnode=10.255.255.1@tcp0 --ost --index=N+1 /dev/sdb// (Где N-номер узла, /dev/sdb - том RAID5) |
| |
//mkdir /ostN\\ | mkdir /ostN |
mkdir /ostN+1// | mkdir /ostN+1 |
| |
//mount -t lustre /dev/sda /ostN\\ | mount -t lustre /dev/sda /ostN |
mount -t lustre /dev/sdb /ostN+1// | mount -t lustre /dev/sdb /ostN+1 |
| |
// | echo "/dev/sda /ostN lustre defaults,_netdev 0 0" >> /etc/fstab |
echo "/dev/sda /ostN lustre defaults,_netdev 0 0" >> /etc/fstab\\ | echo "/dev/sdb /ostN+1 lustre defaults,_netdev 0 0" >> /etc/fstab |
echo "/dev/sdb /ostN+1 lustre defaults,_netdev 0 0" >> /etc/fstab// | |
| |
//mkdir /FS\\ | mkdir /FS |
mount -t lustre /FS\\ | mount -t lustre /FS |
echo "10.255.255.1@tcp0:/temp /FS lustre defaults,_netdev 0 0" >> /etc/fstab// | echo "10.255.255.1@tcp0:/temp /FS lustre defaults,_netdev 0 0" >> /etc/fstab |
| |
** | **Так же для каждого OST возможно без перерыва в работе и в любое время освободить 5% свободного места**\\ |
Так же для каждого OST возможно без перерыва в работе и в любое время освободить 5% свободного места**\\ | |
| |
tune2fs -m 0 /dev/sda// | tune2fs -m 0 /dev/sda// |
| |
| |
| |
**На клиентах:** | **На клиентах:** |
| |
//mkdir /FS\\ | mkdir /FS |
mount -t lustre /FS\\ | mount -t lustre /FS |
echo "10.255.255.1@tcp0:/temp /FS lustre defaults,_netdev 0 0" >> /etc/fstab// | echo "10.255.255.1@tcp0:/temp /FS lustre defaults,_netdev 0 0" >> /etc/fstab |
| |
Теперь на любом из узлов вы можете посмотреть текущее состояние файловой системы:\\ | Теперь на любом из узлов возможен просмотр текущего состояние файловой системы: |
//lfs df -h//\\ | |
//FS-MDT0000_UUID 83.8G 2.2G 76.1G 3% /FS[MDT:0]\\ | lfs df -h |
FS-OST0000_UUID 30.0T 28.6T 1.4T 95% /FS[OST:0]\\ | FS-MDT0000_UUID 83.8G 2.2G 76.1G 3% /FS[MDT:0] |
FS-OST0001_UUID 30.0T 28.7T 1.3T 96% /FS[OST:1]\\ | FS-OST0000_UUID 30.0T 28.6T 1.4T 95% /FS[OST:0] |
FS-OST0002_UUID 30.0T 28.6T 1.3T 96% /FS[OST:2]\\ | FS-OST0001_UUID 30.0T 28.7T 1.3T 96% /FS[OST:1] |
FS-OST0003_UUID 30.0T 28.7T 1.3T 96% /FS[OST:3]\\ | FS-OST0002_UUID 30.0T 28.6T 1.3T 96% /FS[OST:2] |
FS-OST0004_UUID 30.0T 28.3T 1.7T 94% /FS[OST:4]\\ | FS-OST0003_UUID 30.0T 28.7T 1.3T 96% /FS[OST:3] |
FS-OST0005_UUID 30.0T 28.2T 1.8T 94% /FS[OST:5]\\ | FS-OST0004_UUID 30.0T 28.3T 1.7T 94% /FS[OST:4] |
FS-OST0006_UUID 30.0T 28.3T 1.7T 94% /FS[OST:6]\\ | FS-OST0005_UUID 30.0T 28.2T 1.8T 94% /FS[OST:5] |
FS-OST0007_UUID 30.0T 28.2T 1.7T 94% /FS[OST:7]\\ | FS-OST0006_UUID 30.0T 28.3T 1.7T 94% /FS[OST:6] |
FS-OST0008_UUID 30.0T 28.3T 1.7T 94% /FS[OST:8]\\ | FS-OST0007_UUID 30.0T 28.2T 1.7T 94% /FS[OST:7] |
FS-OST0009_UUID 30.0T 28.2T 1.8T 94% /FS[OST:9]// | FS-OST0008_UUID 30.0T 28.3T 1.7T 94% /FS[OST:8] |
| FS-OST0009_UUID 30.0T 28.2T 1.8T 94% /FS[OST:9] |
| |
====Работа c Lustre==== | ====Работа c Lustre==== |
| |
остановимся только на двух задачах: | остановимся только на двух задачах: |
| |
1. Добавление нового узла и как следствие дисбаланс сохраненных данных на OST\\ | 1. Добавление нового узла и как следствие дисбаланс сохраненных данных на OST |
**Пример:** | **Пример:** |
| |
//FS-MDT0000_UUID 83.8G 2.2G 76.1G 3% /FS[MDT:0]\\ | FS-MDT0000_UUID 83.8G 2.2G 76.1G 3% /FS[MDT:0] |
FS-OST0000_UUID 30.0T 28.6T 1.4T 95% /FS[OST:0]\\ | FS-OST0000_UUID 30.0T 28.6T 1.4T 95% /FS[OST:0] |
FS-OST0001_UUID 30.0T 28.7T 1.3T 96% /FS[OST:1]\\ | FS-OST0001_UUID 30.0T 28.7T 1.3T 96% /FS[OST:1] |
FS-OST0002_UUID 30.0T 28.6T 1.3T 96% /FS[OST:2]\\ | FS-OST0002_UUID 30.0T 28.6T 1.3T 96% /FS[OST:2] |
FS-OST0003_UUID 30.0T 28.7T 1.3T 96% /FS[OST:3]\\ | FS-OST0003_UUID 30.0T 28.7T 1.3T 96% /FS[OST:3] |
FS-OST0004_UUID 30.0T 28.3T 1.7T 94% /FS[OST:4]\\ | FS-OST0004_UUID 30.0T 28.3T 1.7T 94% /FS[OST:4] |
FS-OST0005_UUID 30.0T 28.2T 1.8T 94% /FS[OST:5]\\ | FS-OST0005_UUID 30.0T 28.2T 1.8T 94% /FS[OST:5] |
FS-OST0006_UUID 30.0T 28.3T 1.7T 94% /FS[OST:6]\\ | FS-OST0006_UUID 30.0T 28.3T 1.7T 94% /FS[OST:6] |
FS-OST0007_UUID 30.0T 28.2T 1.7T 94% /FS[OST:7]\\ | FS-OST0007_UUID 30.0T 28.2T 1.7T 94% /FS[OST:7] |
FS-OST0008_UUID 30.0T 28.3T 1.7T 94% /FS[OST:8]\\ | FS-OST0008_UUID 30.0T 28.3T 1.7T 94% /FS[OST:8] |
FS-OST0009_UUID 30.0T 28.2T 1.8T 94% /FS[OST:9]\\ | FS-OST0009_UUID 30.0T 28.2T 1.8T 94% /FS[OST:9] |
FS-OST000a_UUID 30.0T 2.1T 27.9T 7% /FS[OST:10]\\ | FS-OST000a_UUID 30.0T 2.1T 27.9T 7% /FS[OST:10] |
FS-OST000b_UUID 30.0T 2.2T 27.8T 7% /FS[OST:11]//\\ | FS-OST000b_UUID 30.0T 2.2T 27.8T 7% /FS[OST:11] |
| |
При добавлении дополнительного узла как правило могут возникнуть две ситуации:\\ | При добавлении дополнительного узла как правило могут возникают две ситуации:\\ |
1.1 Невозможность записи файла в связи с отсутствием свободного места на одном из OST (при этом на файловой системе места может быть предостаточно)\\ | 1.1 Невозможность записи файла в связи с отсутствием свободного места на одном из OST (при этом на файловой системе места может быть предостаточно)\\ |
1.2 Увеличение нагрузки ввода/вывода на новый добавленный узел.\\ | 1.2 Увеличение нагрузки ввода/вывода на новый добавленный узел.\\ |
* Обратная активация OST | * Обратная активация OST |
| |
Пример:\\ | Пример: |
//lctl --device N deactivate\\ | |
lfs find --ost {OST_UUID} -size +1G | lfs_migrate -y\\ | lctl --device N deactivate |
lctl --device N activate// | lfs find --ost {OST_UUID} -size +1G | lfs_migrate -y |
| lctl --device N activate |
| |
2.Резервное копирование | 2.Резервное копирование |
| |
| |
| ==== Об авторе ==== |
| [[https://www.linkedin.com/pub/alexey-vyrodov/59/976/16b|Profile]] автора |