В попередньому пості описувалося, як розгорталася повноцінна Lustre-система. Однак іноді хочеться поекспериментувати не так монументально. Можливість для цього існує :-)
Lustre чудово працює на loopback-пристроях.
Опишемо як можна створити таку іграшкову (кишенькову) "люстру". Додатково корисно подивитися "10.1 Configuring a Simple Lustre File System" (Lustre 2.0 Operations Manual) та "Configuring Lustre - Examples" (Lustre 1.8 Operations Manual). (Інструкції до 1.8 хоча і трохи застаріли для 2.0, однак часто більш зрозумілі чи детальні).
1.) Створюємо loopback-пристрої, активуємо їх.
- MGS
[node]# dd if=/dev/zero of=mgs_loopback bs=1M count=200 200+0 records in 200+0 records out 209715200 bytes (210 MB) copied, 0.429137 seconds, 489 MB/s
Створюється файл mgs_loopback, заповнюється нулями, що беруться з пристрою /dev/zero. Розмір файла 200 блоків (count=200) розміром 1Мб (bs=1M)
Зауваження 209715200 bytes (210 MB) це 200МебіБайт (1024*1024), а воно якраз рівне ~210Мб (1000*1000 байт)
[node]# losetup /dev/loop0 ./mgs_loopback
Активуємо його, тепер цей "віртуальний" блочний пристрій доступний як пристрій /dev/loop0.
- MDT
[node]# dd if=/dev/zero of=mdt_loopback bs=1G count=1 1+0 records in 1+0 records out 1073741824 bytes (1.1 GB) copied, 2.20904 seconds, 486 MB/s
Розмір 1Гб, "житиме" не пристрої /dev/loop1:
[node]# losetup /dev/loop1 ./mdt_loopback
- OST0, OST1
[node]# dd if=/dev/zero of=ost0_loopback bs=1G count=10 10+0 records in 10+0 records out 10737418240 bytes (11 GB) copied, 785.754 seconds, 13.7 MB/s [node]# losetup /dev/loop2 ./ost0_loopback [node]# dd if=/dev/zero of=ost1_loopback bs=1G count=10
10+0 records in 10+0 records out 10737418240 bytes (11 GB) copied, 2225.34 seconds, 4.8 MB/s
[node]# losetup /dev/loop3 ./ost1_loopback
Розмір обох - 10Гб,
пристрої -- loop2 i loop3.
2.) Створюємо файлові системи lustre.
- MGS
[node]# mkdir /mnt/mgs
[node]# mkfs.lustre --mgs /dev/loop0 Permanent disk data: 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: checking for existing Lustre data: not found device size = 200MB formatting backing filesystem ldiskfs on /dev/loop0 target name MGS 4k blocks 51200 options -q -O dir_index,uninit_bg -F mkfs_cmd = mke2fs -j -b 4096 -L MGS -q -O dir_index,uninit_bg -F /dev/loop0 51200 Writing CONFIGS/mountdata
[node]# mount -t lustre /dev/loop0 /mnt/mgs
MGS готовий до роботи.
- MDS
[node]# mkdir /mnt/mdt [node]# mkfs.lustre --mdt --mgsnode=<node-ip>@tcp0 --fsname=lustre9 /dev/loop1 Permanent disk data: Target: lustre9-MDTffff Index: unassigned Lustre FS: lustre9 Mount type: ldiskfs Flags: 0x71 (MDT needs_index first_time update ) Persistent mount opts: iopen_nopriv,user_xattr,errors=remount-ro Parameters: mgsnode=<node-ip>@tcp checking for existing Lustre data: not found device size = 1024MB formatting backing filesystem ldiskfs on /dev/loop1 target name lustre9-MDTffff 4k blocks 262144 options -i 4096 -I 512 -q -O dir_index,dirdata,uninit_bg -F mkfs_cmd = mke2fs -j -b 4096 -L lustre9-MDTffff -i 4096 -I 512 -q -O dir_index,dirdata,uninit_bg -F /dev/loop1 262144 Writing CONFIGS/mountdata [root@compute-0-14 partition1]# mount -t lustre /dev/loop1 /mnt/mdt
Де, нагадуємо, node-ip -- IP-адреса вузла з MGS, використання hostname можливе, але не бажане.
Після успішного монтування MDS файлову систему lustre9 можна вважати такою, що існує та почати додавати до неї OSS-и.
- OSS0, OSS1
[node]# mkdir /mnt/ost0 [node]# mkfs.lustre --ost --mgsnode=<node-ip>@tcp0 --fsname=lustre9 --param failover.mode=failout /dev/loop2 Permanent disk data: Target: lustre9-OSTffff Index: unassigned Lustre FS: lustre9 Mount type: ldiskfs Flags: 0x72 (OST needs_index first_time update ) Persistent mount opts: errors=remount-ro,extents,mballoc Parameters: mgsnode=<node-ip>@tcp failover.mode=failout checking for existing Lustre data: not found device size = 10240MB formatting backing filesystem ldiskfs on /dev/loop2 target name lustre9-OSTffff 4k blocks 2621440 options -J size=400 -I 256 -q -O dir_index,extents,uninit_bg -F mkfs_cmd = mke2fs -j -b 4096 -L lustre9-OSTffff -J size=400 -I 256 -q -O dir_index,extents,uninit_bg -F /dev/loop2 2621440 Writing CONFIGS/mountdata [node]# mount -t lustre /dev/loop2 /mnt/ost0
[node]# mkdir /mnt/ost1 [node]# mkfs.lustre --ost --mgsnode=<node-ip>@tcp0 --fsname=lustre9 --param failover.mode=failout /dev/loop3 Permanent disk data: Target: lustre9-OSTffff Index: unassigned Lustre FS: lustre9 Mount type: ldiskfs Flags: 0x72 (OST needs_index first_time update ) Persistent mount opts: errors=remount-ro,extents,mballoc Parameters: mgsnode=<node-ip>@tcp failover.mode=failout checking for existing Lustre data: not found device size = 10240MB formatting backing filesystem ldiskfs on /dev/loop3 target name lustre9-OSTffff 4k blocks 2621440 options -J size=400 -I 256 -q -O dir_index,extents,uninit_bg -F mkfs_cmd = mke2fs -j -b 4096 -L lustre9-OSTffff -J size=400 -I 256 -q -O dir_index,extents,uninit_bg -F /dev/loop3 2621440 Writing CONFIGS/mountdata [node]# mount -t lustre /dev/loop3 /mnt/ost1
- Клієнти
Монтуємо побудовану нами "люстру":
[node]# mount -t lustre <node-ip>@tcp0:/lustre9 /mnt/lustre9/ [node]# df -h Filesystem Size Used Avail Use% Mounted on *skipped* /dev/loop0 194M 17M 168M 9% /mnt/mgs /dev/loop1 896M 34M 812M 4% /mnt/mdt /dev/loop2 9.9G 423M 9.0G 5% /mnt/ost0 /dev/loop3 9.9G 423M 9.0G 5% /mnt/ost1 @tcp0:/lustre9 20G 846M 18G 5% /mnt/lustre9
Все, кишенькова Lustre готова до вживання.
Деяку інформацію про неї можна отримати за допомогою команди lfs df
[node]# lfs df UUID 1K-blocks Used Available Use% Mounted on lustre9-MDT0000_UUID 917400 34180 830792 3% /mnt/lustre9[MDT:0] lustre9-OST0000_UUID 10321208 432804 9364052 4% /mnt/lustre9[OST:0] lustre9-OST0001_UUID 10321208 432804 9364052 4% /mnt/lustre9[OST:1] filesystem summary: 20642416 865608 18728104 4% /mnt/lustre9
Бажаю успішних та веселих експериментів :-)
Немає коментарів:
Дописати коментар