пʼятниця, 19 серпня 2011 р.

Зміна NID серверів Lustre

Іноді Network IDentifier (NID) MGS/MDS/OSS може змінюватися. Наприклад при перенесенні на нову апаратуру, встановленні нової мережевої карти, чи просто присвоєнню нової IP-адреси.

Описано цей процес тут: "14.5 Changing a Server NID" (Lustre 2.0 Operations Manual), хоча деяких деталей там не вказано.

Покажемо його на прикладі зміни NID MGS нашої іграшкової Lustre.

Припустимо, що мережева адреса MGS змінюватиметься з node на new-mgs

1. Такяк мережевий інтерфейс залишається тим сами, змінювати конфігурацію LNET в  /etc/modprobe.conf немає потреби.

2. Розмонтовуємо всі частини люстри у вказаному порядку:
  1. Всі клієти
  2. MDT
  3. Всі OST
  4. MGS
Зазвичай Lustre терпима до порядку монтування/розмонтування, але в цьому випадку слід дотриматися вказаного, інакше можливі труднощі в подальших етапах.

3. Якщо б змінювалися адреси тільки MDS чи OSS, достатньо було б виконати "tunefs.lustre --writeconf <device>" на всіх них. Однак, змінено адресу (NID) MGS, тому слід робити erase-params, вказуючи нові параметри. Щоб не знищити важливі параметри, що вже були встановлені, слід скористатися "tunefs.lustre --dryrun --writeconf <device>", (як і в пості про квоти), щоб отримати їх значення та відтворити.

MDT:

[root@node]# tunefs.lustre --erase-param --mgsnode=<new-mgs-ip>@tcp0 /dev/loop1
checking for existing Lustre data: found CONFIGS/mountdata
Reading CONFIGS/mountdata

   Read previous values:
Target:     lustre9-MDT0000
Index:      0
Lustre FS:  lustre9
Mount type: ldiskfs
Flags:      0x1
              (MDT )
Persistent mount opts: iopen_nopriv,user_xattr,errors=remount-ro
Parameters: mgsnode=<node-ip>@tcp


   Permanent disk data:
Target:     lustre9-MDT0000
Index:      0
Lustre FS:  lustre9
Mount type: ldiskfs
Flags:      0x41
              (MDT update )
Persistent mount opts: iopen_nopriv,user_xattr,errors=remount-ro
Parameters: mgsnode=<new-mgs-ip>@tcp

Writing CONFIGS/mountdata


Всі OST:

[root@node]# tunefs.lustre --erase-param --mgsnode=<new-mgs-ip>@tcp0 --param="failover.mode=failout" /dev/loop2
checking for existing Lustre data: found CONFIGS/mountdata
Reading CONFIGS/mountdata

   Read previous values:
Target:     lustre9-OST0000
Index:      0
Lustre FS:  lustre9
Mount type: ldiskfs
Flags:      0x2
              (OST )
Persistent mount opts: errors=remount-ro,extents,mballoc
Parameters: mgsnode=<node-ip>@tcp failover.mode=failout


   Permanent disk data:
Target:     lustre9-OST0000
Index:      0
Lustre FS:  lustre9
Mount type: ldiskfs
Flags:      0x42
              (OST update )
Persistent mount opts: errors=remount-ro,extents,mballoc
Parameters: mgsnode=<new-mgs-ip>@tcp failover.mode=failout

Writing CONFIGS/mountdata
 
[root@node]# tunefs.lustre --erase-param --mgsnode=<new-mgs-ip>@tcp0 --param="failover.mode=failout" /dev/loop3
checking for existing Lustre data: found CONFIGS/mountdata
Reading CONFIGS/mountdata

   Read previous values:
Target:     lustre9-OST0001
Index:      1
Lustre FS:  lustre9
Mount type: ldiskfs
Flags:      0x2
              (OST )
Persistent mount opts: errors=remount-ro,extents,mballoc
Parameters: mgsnode=<node-ip>@tcp failover.mode=failout


   Permanent disk data:
Target:     lustre9-OST0001
Index:      1
Lustre FS:  lustre9
Mount type: ldiskfs
Flags:      0x42
              (OST update )
Persistent mount opts: errors=remount-ro,extents,mballoc
Parameters: mgsnode=<new-mgs-ip>@tcp failover.mode=failout

Writing CONFIGS/mountdata

Важливо: для OSS слід вказати  failover.mode=failout, інакше Lustre працювати не буде (MDS відмовиться їх "визнавати")

Тепер робимо --writeconf для всіх елементів:

[root@new-mgs]# tunefs.lustre --writeconf /dev/loop0
checking for existing Lustre data: found CONFIGS/mountdata
Reading CONFIGS/mountdata

   Read previous values:
Target:     MGS
Index:      unassigned
Lustre FS:  lustre
Mount type: ldiskfs
Flags:      0x74
              (MGS needs_index first_time update )
Persistent mount opts: iopen_nopriv,user_xattr,errors=remount-ro
Parameters:


   Permanent disk data:
Target:     MGS
Index:      unassigned
Lustre FS:  lustre
Mount type: ldiskfs
Flags:      0x174
              (MGS needs_index first_time update writeconf )
Persistent mount opts: iopen_nopriv,user_xattr,errors=remount-ro
Parameters:

Writing CONFIGS/mountdata
 
------------------------------------------------------------
[root@node]# tunefs.lustre --writeconf /dev/loop1
checking for existing Lustre data: found CONFIGS/mountdata
Reading CONFIGS/mountdata

   Read previous values:
Target:     lustre9-MDT0000
Index:      0
Lustre FS:  lustre9
Mount type: ldiskfs
Flags:      0x41
              (MDT update )
Persistent mount opts: iopen_nopriv,user_xattr,errors=remount-ro
Parameters: mgsnode=<new-mgs-ip>@tcp


   Permanent disk data:
Target:     lustre9-MDT0000
Index:      0
Lustre FS:  lustre9
Mount type: ldiskfs
Flags:      0x141
              (MDT update writeconf )
Persistent mount opts: iopen_nopriv,user_xattr,errors=remount-ro
Parameters: mgsnode=<new-mgs-ip>@tcp

Writing CONFIGS/mountdata

-------------------------------------------------------------------

[root@node]# tunefs.lustre --writeconf /dev/loop2
checking for existing Lustre data: found CONFIGS/mountdata
Reading CONFIGS/mountdata

   Read previous values:
Target:     lustre9-OST0000
Index:      0
Lustre FS:  lustre9
Mount type: ldiskfs
Flags:      0x42
              (OST update )
Persistent mount opts: errors=remount-ro,extents,mballoc
Parameters: mgsnode=<new-mgs-ip>@tcp failover.mode=failout


   Permanent disk data:
Target:     lustre9-OST0000
Index:      0
Lustre FS:  lustre9
Mount type: ldiskfs
Flags:      0x142
              (OST update writeconf )
Persistent mount opts: errors=remount-ro,extents,mballoc
Parameters: mgsnode=<new-mgs-ip>@tcp failover.mode=failout

Writing CONFIGS/mountdata

-------------------------------------------------------------------

[root@node]# tunefs.lustre --writeconf /dev/loop3
checking for existing Lustre data: found CONFIGS/mountdata
Reading CONFIGS/mountdata

   Read previous values:
Target:     lustre9-OST0001
Index:      1
Lustre FS:  lustre9
Mount type: ldiskfs
Flags:      0x42
              (OST update )
Persistent mount opts: errors=remount-ro,extents,mballoc
Parameters: mgsnode=<new-mgs-ip>@tcp failover.mode=failout


   Permanent disk data:
Target:     lustre9-OST0001
Index:      1
Lustre FS:  lustre9
Mount type: ldiskfs
Flags:      0x142
              (OST update writeconf )
Persistent mount opts: errors=remount-ro,extents,mballoc
Parameters: mgsnode=<new-mgs-ip>@tcp failover.mode=failout

Writing CONFIGS/mountdata

4. Монтуємо всі елементи. 

Порядок монтування важливи! Зазвичай "Люстра" толерантна до порядку монтування, але в даному випадку це важливо.
- MGS
- MDT
- Всі OST
- Клієнти.

[root@new-mgs]# mount -t lustre /dev/loop0 ./mgs
 
[root@node]# mount -t lustre /dev/loop1 /mnt/mdt/
[root@node]# mount -t lustre /dev/loop2 /mnt/ost0
[root@node]# mount -t lustre /dev/loop3 /mnt/ost1
[root@node]# mount -t lustre <new-mgs>@tcp0:/lustre9 /mnt/lustre9

NID MDS успішно змінено.

Немає коментарів:

Дописати коментар