|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Oleg Drokin 2:5020/400 06 Apr 2007 15:48:38 To : Andre Sidko Subject : Re: lustre -------------------------------------------------------------------------------- Hello! Andre Sidko <Andre.Sidko@f77.n4641.z2.fidonet.org> wrote: AS> Есть у меня Два сервера (node1 and node2) с накопителями по 1T на каждом. AS> Хочется объединить их "вместе". Оба сервера RH4EL AS> Hастраиваю lustre 1.4.9.1 AS> Вот таким образом 2 машины: AS> node1 - mds + oss 192.168.232.130 (1 TB) AS> node2 - oss 192.168.232.131 (1 Tb) AS> node3 - client 192.168.232.132 AS> И вот первый вопрос. Возможно ли использовать любую из машин как mds и oss. AS> Т.е. на одной машине oss + mds а на второй только oss? Да, конечно. AS> Если да, то партиция какого размера должна быть на mds машине? Достаточная дла хранения метаданных. Hа данный момент достаточным считается 4k на файл. То есть вот у меня есть 2.4T файлуха с мультиками, и на MDS занято 4.3G AS> Можно ли использовать существующие, (системные), партиции или только новая? Можно использовать существующие, но больше ни подочто их использовать не выйдет. Можно, в принципе, и loop device использовать, но скорость пострадает, ясное дело. AS> Пока ответа не нашел, иду по второму варианту (новая партиция). AS> Добавляю отдельный сервер под mds. Допустим node3. Hа нем создаю партицию AS> 500mb (не знаю сколько нужно для двух oss в 1 терабайт каждый) Кстати, AS> сколько? ЗАвисит от планируемого максимального числа файлов. Отдельная нода под MDS необязательна, но есть определенные recovery implications при размещении mds и oss на одной ноде. AS> Патиции в 1T на node1 и node2 как раздел hdb1 форматированы в ext3 Люстра их сама отформатирует. Собственно ей и разделы то необязательны. То есть обычное дело когда под люстровый backend device используется весь диск (ну типа /dev/hdb например) AS> После этого с сервера node3 (mds+oss1,oss2,client ) чтобы создать config.xml AS> запускаю вот такой скрипт: AS> ==================== Begin multilustre.sh =================== AS> #!/bin/bash AS> LMC="${LMC:-lmc}" AS> NFSDIR="${NFSDIR:-/etc/lustre}" AS> config="${config:-${NFSDIR}/config.xml}" AS> host=`hostname` AS> MOUNT=${MOUNT:-/mnt/node} AS> MOUNT2=${MOUNT2:-${MOUNT}2} AS> NETTYPE=${NETTYPE:-tcp} AS> STRIPE_BYTES=${STRIPE_BYTES:-1048576} AS> STRIPES_PER_OBJ=1 AS> # Create nodes AS> ${LMC} -m $config --add node --node 192.168.232.131@tcp || exit 10 В node лучше прописывать символьное имя ноды. Я это делаю примерно так: ${LMC} --add node --node jubei || exit 10 ${LMC} --add node --node car || exit 10 ${LMC} --add net --node jubei --nid 10.1.1.9 --nettype tcp || exit 11 ${LMC} --add net --node car --nid 10.1.1.5 --nettype tcp || exit 11 ${LMC} --add net --node client --nid '*' --nettype tcp || exit 12 AS> ${LMC} -m $config --add node --node 192.168.232.130@tcp || exit 10 AS> ${LMC} -m $config --add node --node 192.168.232.132@tcp || exit 10 AS> # Add net AS> ${LMC} -m $config --add net --node 192.168.232.131@tcp --nid AS> 192.168.232.131@tcp --nettype $NETTYPE || exit 11 AS> ${LMC} -m $config --add net --node 192.168.232.130@tcp --nid AS> 192.168.232.130@tcp --nettype $NETTYPE || exit 11 AS> ${LMC} -m $config --add net --node 192.168.232.132@tcp --nid AS> 192.168.232.132@tcp --nettype $NETTYPE || exit 11 AS> # Generic client 192.168.232.132@tcp definition AS> ${LMC} -m $config --add net --node 192.168.232.132@tcp --nid '*' --nettype AS> $NETTYPE || exit 12 А в данном случе нужно дать какой-то generic имя, потому что его будут использовать все клиенты. AS> # Configure mds server AS> ${LMC} -m $config --add mds --mds mds1 --node 192.168.232.130@tcp --fstype AS> ldiskfs --dev /dev/sdb1 --journal_size 400 || exit 20 AS> # Create LOVs AS> ${LMC} -m $config --add lov --lov lov1 --mds mds1 --stripe_sz $STRIPE_BYTES AS> --stripe_cnt $STRIPES_PER_OBJ --stripe_pattern 0 $LOVOPT || exit 20 AS> # Configure OSTs AS> ${LMC} -m $config --add ost --node 192.168.232.131@tcp --lov lov1 --fstype AS> ldiskfs --dev /dev/sdb1 --ost ost1 || exit 30 AS> ${LMC} -m $config --add ost --node 192.168.232.130@tcp --lov lov1 --fstype AS> ldiskfs --dev /dev/sdb1 --ost ost1 || exit 30 AS> # Create client 192.168.232.132@tcp config AS> ${LMC} -m $config --add mtpt --node 192.168.232.132@tcp --path $MOUNT --mds AS> mds1 --lov lov1 $CLIENTOPT || exit 41 AS> =================== End multilustre.sh ================= AS> Конфиг создаётся. AS> А что потом? потом lconf --reformat /путь.lustre.xml на кажной серверной ноде Если на ноде живет сразу и mds, то такую ноду лучше всего реформатить последней, потому что mds ожидает что все ost'ы уже поднялись. AS> Есть ещё в /etc/init.d/lustre и lustrefs, Я так понимаю, что это скрипты для AS> запуска lustre. Запускаю в таком порядке, (прочитал в faq) вначале oss за AS> ним mds, но при попытке запуска /etc/init.d/lustre start выдаётся такая AS> ошибка: AS> bash-3.1# /etc/init.d/lustre start AS> Starting lustre: No host entry found. AS> lustre Hу это надо внутрь смотреть и искать что оно там ищет и не находит, поди оно ожидает что local hostname и есть имя локальной ноды и пытается сделать lconf для этой ноды, а у тебя имена нод только как ip определены. В принципе можно и руками серверные ноды поднимать как lconf --node имя /путь/lustre.xml на серверах (опять нода с MDS - последняя), а на клиентах монтировать как mount -t lustre mds_ip:/mds_nodename/clientname /путь Bye, Oleg --- ifmail v.2.15dev5.3 * Origin: Green's home news server (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/15550388185eb.html, оценка из 5, голосов 10
|