Организация распределенного дискового хранилища с возможностью неограниченного расширения с применением технологий LVM и ATAoE

    Задача


    Когда диски были маленькие, а Интернет большой, владельцы частных FTP-серверов сталкивались со следующей проблемой:
    На каждом жестком диске создавалась папочка Video или Soft, и получалось так, что добавив новый жесткий диск, приходилось делать на нем папочки Video2, Soft2, etc.
    Задача поменять жесткий диск на диск большего объема приводила к тому, что данные нужно было куда-то переносить, все это происходило нетривиально и с большими downtime'ами.
    Разработанная нами система в 2005 году позволила собрать надежный и быстрый массив в 3 терабайта, масштабируемый, расширяемый, в режиме онлайн, добавляя диски или целые сервера с дисками.
    Цена всего решения составляла 110% от стоимости самих дисков, т.е. по-сути, бесплатной, с небольшим overhead.

    Вот примерная схема устройства нашего хранилища:




    Реализация


    Идея такова: есть supervisor и есть ноды. Supervisor — это паблик сервер, на который заходят клиенты, у него есть несколько гигабитных bonding интерфейсов наружу, и несколько — внутрь, к нашим нодам. Супервайзор берет экспортированные с помощью vblade по ATAoE массивы или отдельные диски, делает поверх них LVM и делает доступным этот раздел по FTP. Также супервайзор является сервером бездисковой загрузки для нод, и на нем же находится вся файловая система нод, с которой после загрузки они общаются по NFS. Ноды — это чисто диски, загрузка по PXE, далее запускается наш etherpopulate и все диски экспортируются.

    1. Настройка для удаленной загрузки нод



    устройство ноды
    ftp # ls /diskless/
    bzImage node pxelinux.0 pxelinux.cfg


    ядро, директория node — rootfs, конфиги для pxe
    ftp # ls /diskless/node/
    bin boot dev etc lib mnt proc root sbin sys tmp usr var
    ftp # chroot /diskless/node/
    ftp / # which vblade
    /usr/sbin/vblade
    ftp / # vblade
    usage: vblade [ -m mac[,mac...] ] shelf slot netif filename
    ftp / #


    все это будет доступно на нодах
    ftp node # cat /diskless/pxelinux.cfg/default
    DEFAULT /bzImage
    APPEND ip=dhcp root=/dev/nfs nfsroot=172.18.0.193:/diskless/node idebus=66

    конфиг для pxe, указан nfsroot

    конфиг dhcpd, не забываем запустить.
    ftp etc # more dhcp/dhcpd.conf
    option domain-name "domain.com";
    default-lease-time 600;
    max-lease-time 7200;
    ddns-update-style none;

    option space PXE;
    option PXE.mtftp-ip code 1 = ip-address;
    option PXE.mtftp-cport code 2 = unsigned integer 16;
    option PXE.mtftp-sport code 3 = unsigned integer 16;
    option PXE.mtftp-tmout code 4 = unsigned integer 8;
    option PXE.mtftp-delay code 5 = unsigned integer 8;
    option PXE.discovery-control code 6 = unsigned integer 8;
    option PXE.discovery-mcast-addr code 7 = ip-address;

    subnet 172.16.0.0 netmask 255.255.0.0 {
    }

    subnet 172.18.0.192 netmask 255.255.255.192 {
    class "pxeclients" {
    match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
    option vendor-class-identifier "PXEClient";
    vendor-option-space PXE;
    option PXE.mtftp-ip 0.0.0.0;
    filename "pxelinux.0";
    next-server 172.18.0.193;
    }

    host node-1 {
    hardware ethernet 00:13:d4:68:b2:7b;
    fixed-address 172.18.0.194;
    }
    host node-2 {
    hardware ethernet 00:11:2f:45:e9:fd;
    fixed-address 172.18.0.195;
    }
    host node-3 {
    hardware ethernet 00:07:E9:2A:A9:AC;
    fixed-address 172.18.0.196;
    }
    }


    конфиг tftpd
    ftp etc # more /etc/conf.d/in.tftpd
    # /etc/init.d/in.tftpd

    # Path to server files from
    INTFTPD_PATH="/diskless"

    INTFTPD_USER="nobody"
    # For more options, see tftpd(8)
    INTFTPD_OPTS="-u ${INTFTPD_USER} -l -vvvvvv -p -c -s ${INTFTPD_PATH}"


    запущен tftpd?
    ftp etc # ps -ax |grep tft
    Warning: bad ps syntax, perhaps a bogus '-'? See procps.sf.net/faq.html
    5694 ? Ss 0:00 /usr/sbin/in.tftpd -l -u nobody -l -vvvvvv -p -c -s /diskless
    31418 pts/0 R+ 0:00 grep tft


    конфиг для nfs, не забываем запустить.
    ftp etc # more exports
    /diskless/node 172.18.0.192/255.255.255.192(rw,sync,no_root_squash)


    Настройка для удаленной загрузки закончена, все ноды прописаны.

    2. Программная часть для автоматизации сборки массивов



    софтина, которая запускается на нодах, делает raid-массивы md* и экспортирует их по ataoe на supervisor.
    ftp# chroot /diskless/node
    ftp etc # more /usr/sbin/etherpopulate
    #!/usr/bin/perl

    my $action = shift();

    #system('insmod /lib/modules/vb-2.6.16-rc1.ko')
    # if ( -f '/lib/modules/vb-2.6.16-rc1.ko');

    # Get information on node_id's of ifaces
    my @ifconfig = `ifconfig`;
    my $int;
    my %iface;
    foreach my $line (@ifconfig) {
    if ($line =~ /^(\S+)/) {
    $int = $1;
    }
    if ($line =~ /inet addr:(\d+\.\d+\.\d+\.)(\d+)/ && $1 ne '127.0.0.' && $int) {
    $iface{$int} = $2;
    $int = "";
    }
    }

    my $vblade_kernel = ( -d "/sys/vblade" )?1:0;
    if ( $vblade_kernel ) {
    print " Using kernelspace vblade\n" if ($action eq "start");
    } else {
    print " Using userspace vblade\n" if ($action eq "start");
    }

    # Run vblade
    foreach my $int (keys %iface) {
    my $node_id = $iface{$int};
    open(DATA, "/etc/etherpopulate.conf");
    while () {
    chomp;
    s/#.*//;
    s/^\s+//;
    s/\s+$//;
    next unless length;

    if ($_ =~ /^node-$node_id\s+(\S+)\s+(\S+)\s+(\S.*)/) {
    my $cfg_action = $1;
    my $command = $2;
    my $parameters = $3;

    # Export disk over ATAoE
    if ($action eq $cfg_action && $command eq "ataoe" && $parameters =~ /(\S+)\s+(\d+)/) {
    my $disk_name = $1;
    my $disk_id = $2;
    if ($vblade_kernel) {
    if ( $disk_name =~ /([a-z0-9]+)$/ ) {
    my $disk_safe_name = $1;
    system("echo 'add $disk_safe_name $disk_name' > /sys/vblade/drives");
    system("echo 'add $int $node_id $disk_id' > /sys/vblade/$disk_safe_name/ports");
    }
    } else {
    system("/sbin/start-stop-daemon --background --start --name 'vblade_$node_id_$disk_id' --exec /usr/sbin/vblade $node_id $disk_id eth0 $disk_name");
    }
    print " Exporting disk: $disk_name [ $node_id $disk_id ] via $int\n";
    }

    # Execute specified command
    if ($action eq $cfg_action && $command eq "exec") {
    system($parameters);
    }
    }
    }
    close(DATA);
    }



    конфиг для etherpopulate при участии трех нод. еще два доп. диска с каждой ноды экспортируются для других целей (backup на raid1)
    ftp sbin # more /diskless/node/etc/etherpopulate.conf
    # ----------------------
    # Node 194 160gb
    node-194 start exec /sbin/mdadm -A /dev/md0 -f /dev/hd[a-h] /dev/hdl
    node-194 start ataoe /dev/md0 0 # Vblade FTP array
    node-194 start ataoe /dev/hdk 1 # Vblade BACKUP disk
    node-194 stop exec /usr/bin/killall vblade
    node-194 stop exec /sbin/mdadm -S /dev/md0

    # ----------------------
    # Node 195 200 gb
    node-195 start exec /sbin/mdadm -A /dev/md0 /dev/hd[a-b] /dev/hd[e-f] /dev/hd[g-h] /dev/sd[a-c]
    node-195 start ataoe /dev/md0 0 # Vblade FTP array
    node-195 start ataoe /dev/sdd 1 # Vblade BACKUP disk
    node-195 stop exec /usr/bin/killall vblade
    node-195 stop exec /sbin/mdadm -S /dev/md0

    # ----------------------
    # Node 196 200 gb
    node-196 start exec /sbin/mdadm -A /dev/md0 /dev/hd[a-f]
    node-196 start ataoe /dev/md0 0 # Vblade FTP array
    node-196 stop exec /usr/bin/killall vblade
    node-196 stop exec /sbin/mdadm -S /dev/md0


    3. Заключительные работы



    заставляем винты на нодах работать на максимальной скорости в ущерб надежности
    hd*_args="-d1 -X69 -udma5 -c1 -W1 -A1 -m16 -a16 -u1"

    Убедимся в ядре для supervisor'а. На самих нодах экспорт в ATAoE происходит в userland, с помощью vblade.
    ftp good # grep -i OVER_ETH .config
    CONFIG_ATA_OVER_ETH=y


    на самих нодах сразу после загрузки и запуска etherpopulate в соответствии с конфигом.
    node-195 ~ # cat /proc/mdstat
    Personalities : [linear] [raid0] [raid1] [raid5] [raid4] [raid6] [multipath] [faulty]
    md0 : active raid5 hda[0] sdc[8] sdb[7] sda[6] hdh[5] hdg[4] hdf[3] hde[2] hdb[1]
    1562887168 blocks level 5, 64k chunk, algorithm 2 [9/9] [UUUUUUUUU]

    unused devices: node-195 ~ # ps -ax | grep vblade | grep md
    Warning: bad ps syntax, perhaps a bogus '-'? See procps.sf.net/faq.html
    2182 ? Ss 2090:41 /usr/sbin/vblade 195 0 eth0 /dev/md0

    node-195 ~ # mount
    rootfs on / type rootfs (rw)
    /dev/root on / type nfs (ro,v2,rsize=4096,wsize=4096,hard,nolock,proto=udp,addr=172.18.0.193)
    proc on /proc type proc (rw)
    sysfs on /sys type sysfs (rw)
    udev on /dev type tmpfs (rw,nosuid)
    devpts on /dev/pts type devpts (rw)
    none on /var/lib/init.d type tmpfs (rw)
    shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec)



    собираем lvm из дисков на supervisor'е, в дальнейшем это делать не нужно, просто по vgscan будет находиться готовый к монтированию раздел

    ftp / # ls -la /dev/etherd/*
    c-w--w---- 1 root disk 152, 3 Jun 7 2008 /dev/etherd/discover
    brw-rw---- 1 root disk 152, 49920 Jun 7 2008 /dev/etherd/e194.0
    brw-rw---- 1 root disk 152, 49936 Jun 7 2008 /dev/etherd/e194.1
    brw-rw---- 1 root disk 152, 49920 Jun 7 2008 /dev/etherd/e195.0
    brw-rw---- 1 root disk 152, 49936 Jun 7 2008 /dev/etherd/e195.1
    brw-rw---- 1 root disk 152, 49920 Jun 7 2008 /dev/etherd/e196.0
    cr--r----- 1 root disk 152, 2 Jun 7 2008 /dev/etherd/err
    c-w--w---- 1 root disk 152, 4 Jun 7 2008 /dev/etherd/interfaces


    С первых двух нод экспортировалось по 1 массиву и по 1 диску, с третьей ноды — только массив.
    Перед тем, как эти устройства можно использовать на супервайзоре для LVM, нужно сделать «специальную« разметку, чтобы LVM добавил некоторые внутренние идентификаторы на диск.

    # pvcreate /dev/etherd/e194.0
    ...
    ...


    Диски готовы к использованию. Создаем Volume Group.
    # vgcreate cluster /dev/etherd/e194.0 /dev/etherd/e195.0 /dev/etherd/e196.0

    Хоть группа становится сразу активной, в принципе ее можно включать
    # vgchange -a y cluster

    и выключать
    # vgchange -a n cluster

    Чтобы что-то добавить в volume group используйте
    # vgextend cluster /dev/*...

    Создаем Logical Volume hyperspace на все доступное место. Каждый PE по дефолту равен 4mb. Так
    # vgdisplay cluster | grep "Total PE"
    Total PE 1023445
    # lvcreate -l 1023445 cluster -n hyperspace


    Посмотреть, что получилось можно vgdisplay,lvdisplay,pvdisplay.
    Расширять все можно с помощью vgextend,lvextend, resize_reiserfs.
    Подробнее здесь http://tldp.org/HOWTO/LVM-HOWTO/

    Имеем в итоге /dev/cluster/hyperspace и делаем ему mkreiserfs и mount. Все готово. Настройку фтп-сервера опустим. Та-да!



    Повторное использование


    На самом супервайзоре в случае его перезагрузки достаточно выполнять
    more runme.sh
    #!/bin/sh
    vgscan
    vgchange -a y
    mount /dev/cluster/hyperspace /mnt/ftp

    чтобы использовать заранее созданный массив.

    Недостатки


    • конкретно в нашем случае ошибка была с выбором самих жестких дисков. Почему-то выбор пал на Maxtor и почти вся партия в 30 дисков за год пошла бэдами;
    • не использовалась горячая замена, т.к. это был все еще IDE. В случае с hotplug SATA нужно было бы на уровне mdadm на самих нодах настроить уведомление о выходе дисков из строя;
    • proftpd нужно запускать только после того, как в файловую систему супервайзора примонтируется lvm из ataoe устройств. если proftpd запускался раньше, то он не понимал, что произошло вообще;
    • долго экспериментировали с ядерным и userspace'ным vblade на нодах, но тогда это была заря развития ataoe и все работало, как повезет. но работало;
    • в качестве файловой системы можно использовать или reiserfs или xfs — только они поддерживали на тот момент онлайн-ресайз если диск под ними увеличился;
    • тогда только-только стали появляться патчи, которые позволяли расширять в онлайне raid-5 массив md
    • существовало ограничение на ataoe по 64 слота на «полку». Полок можно было сделать штук 10, т.е., в принципе, какие-то ограничения были, типа 640 НОД :)
    • есть много нюансов с производительностью, но все они решаемы в той или иной степени. в кратце — не бойтесь, когда поначалу скорость будет не очень, нет предела совершенству;


    Выводы


    Решение, безусловно интересное, и хочется сделать его уже на терабайтных винтах, hotplug sata и с новыми свежими версиями софта. но кто пойдет на такой подвиг, неизвестно. Может быть, ты, %username%?

    Ссылки по теме


    http://tldp.org/HOWTO/LVM-HOWTO/
    http://sourceforge.net/search/?words=ataoe&type_of_search=soft&pmode=0&words=vblade&Search=Search
    http://www.gentoo.org/doc/en/diskless-howto.xml

    Оригинал статьи

    P.S. Special thx to 029ah за написание скриптов.

    Similar posts

    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 66

      +6
      спасибо, крайне интересная вещь.
        +3
        действительно, нужная штука.
        video1, video2, etc. черт побери, мы тогда еще были молоды и глупы… :)
        • UFO just landed and posted this here
          +2
          Что только русские не придумают, чтоы не строить нормальные дороги (зачернкнуто) не пользоваться стандартными проверенными решениями.
            +1
            Не было тогда денег на нормальные решения, хотя и был опыт работы с ibm'овским shark'ом (ess).
              –1
              «на нормальные решения» никогда денег нет :)

              Просто когда время и труд админа не стоит ничего (или стоит 200$ в месяц), то есть стимул порождать таких Големов.
                +3
                Именно такие «големы» заставляют производителей «нормальных» решений держать цены на них в каких-то рамках. Не будь их, сейчас дисковый массив стоил бы как частный самолет.
                  +1
                  Оптимист :)
                  Да ничего они не заставляют. Конкретно это скорее трюк, нежели работоспособное, повторяемое и надежное решение.

                  Вот я знаю человека, который умеет ухом пускать мыльные пузыри, и только то, что это не «IT-тематика» мешает мне об этом написать на хабре.
                  А тоже цирковой трюк :)

                  А _хороший_ дисковый массив и так стоит как частный самолет :)
                    0
                    Вот я знаю человека, который умеет ухом пускать мыльные пузыри, и только то, что это не «IT-тематика» мешает мне об этом написать на хабре.
                    Напишите в блоге «Странные вещи», лично я бы хотел посмотреть на такое
                      0
                      у него наверно порвана барабанная перепонка?
                      0
                      ну… хороший дисковый массив и так стоит несколько дороже какого нить самолётка типа «сесна»
                  +2
                  Стандартное решение — это что такое? Кто его стандартизировал? Или вы торгуете корпоративными приблудами и вам обидно, что кто-то может обходиться без вашего железа и делать все софтово и не сильно хуже? Предлагаете для частного FTP-сервера покупать ES за мульён баксов?

                  Судя по вашей фразе, все что не стадартно, то не нормально. А я вам скажу, что ненормально — это покупать RAID массивы за 10 тыс баксов, когда можно обойтись md. Нормальное решение оно потому и называется нормальным, потому что адекватно задаче, а не стандарту.
                    –1
                    > Или вы торгуете корпоративными приблудами

                    Угадали, но не совсем. Я не только торгую «приблудами», я еще и помогаю (за деньги, причем неплохие) восстанавливать данные разным самодельщикам, с подобных вот «хоронилищ данных».
                    Так что я не против, вовсе нет, как можно кусать кормильца, что вы :)

                    > Судя по вашей фразе, все что не стадартно, то не нормально.

                    Отож. Знаете, есть такая поговорка: «Люди делятся на тех кто делает бэкапы, и тех, кто их будет делать». Есть люди, которые пользуются типовыми, проверенными и надежными решениями, и те, кто пока еще этого не делает. :)

                    > А я вам скажу, что ненормально — это покупать RAID массивы за 10 тыс баксов

                    За 10 тысяч? Точно с такой дешевкой связываться не стоит, тут я с вами совершенно согласен.

                    > Нормальное решение оно потому и называется нормальным, потому что адекватно задаче, а не стандарту.

                    Опять согласен. Для того, чтобы хранить порнуху, накачанную из торрентов и локалки — стопудово. Но если честно, то мне бы лично времени было бы жаль все равно.

                    Нет, я выше уже написал, когда стоимость рабочего времени админа и цена хранимых данных стремится к нулю — отчего бы не поиграться с экспериментами… ;)
                      +3
                      Я не только торгую «приблудами», я еще и помогаю (за деньги, причем неплохие) восстанавливать данные разным самодельщикам, с подобных вот «хоронилищ данных».

                      Я не зря упомянул слово «адекватный» применительно к решению. Если в конторе нет спеца, который понимает как это работает, а все сделано тупо по HOWTO, то туда им и дорога. Не для них, как говорится, делалось.

                      Есть люди, которые пользуются типовыми, проверенными и надежными решениями, и те, кто пока еще этого не делает.

                      Не делайте из «проверенных» решений панацею, ломаются они ничуть не реже, чем софтовые поделки (см. выше, если правильно все настраивать). Разница лишь в том, что с софтовой поделкой я сам себе злобный буратино, но мне и карты в руки, и если они прямые, то я все быстро исправлю. В случае с корпоративными решениями мне остается только молиться, звоня в техподдержку, чтобы приехал вменяемый спец. Поверьте, я не адепт поделок, у меня и ваших «проверенных надежных» решений хватает и головной боли с ними (естественно, я их даже пальцем не трогал, железки + установка + настройка — все в комплекте закупалось), так что знаю о чем говорю.

                      За 10 тысяч? Точно с такой дешевкой связываться не стоит, тут я с вами совершенно согласен.

                      Очевидно, миллионное решение невозможно заменить на md, я указал то, которое можно. Как бы вы не старались, доказывая что стандартные проверенные решения лучше, Google вам не даст этого сделать, доказав обратное. Я достаточно наработался в корпоративном секторе в России и скажу вам, что здесь (в отличие от России) умеют ценить и деньги и тех, кто может подготовить адекватное решение, а не тупо «слить бабло на сторону».

                      Нет, я выше уже написал, когда стоимость рабочего времени админа и цена хранимых данных стремится к нулю — отчего бы не поиграться с экспериментами… ;)

                      Слава богу здесь не так :) Первое растетет пропорционально второму :)
                  0
                  Это все хорошо, у меня дома файлопомойка на LVM то-же. Но коллега, на что все это бекапить??? Лента в 100Гб стоит 100$ а у меня уже все в терабайтах!
                  • UFO just landed and posted this here
                      0
                      А пожар/молния/snatch?
                      • UFO just landed and posted this here
                          0
                          Да ладно, кассеты относятся к другу (в банковскую ячейку).
                          • UFO just landed and posted this here
                              0
                              Фотографии в RAW, фигню всякую. Это домашний сервер. Несколько сайтов (1,2,3). Ничего супер важного.
                              • UFO just landed and posted this here
                                  0
                                  Если честно, то нет. Приехали, а карту оставили сыну в Москве. Уже не актуально просто.
                                  0
                                  Для меня фото и видео семьи очень важно, так как второй раз снять уже явно не получится (например как ребенок научился ходить)
                                    0
                                    Вот именно поэтому я переживаю за бекапы. А «ничего важного» я написал потому, чтобы %гыук_тфьу% не подумал, что у меня мания величия :)
                                +1
                                а что мешает отнести винт?
                                  0
                                  Вот к этому и идет, по сути. Цена на 1,5Т винчестер сопоставима с ценую трех 100Г лент. Ленты, конечно, в силу своего устройства надежнее, но и медленнее. Кстати я подумаю над Вашей мыслью. Есть-же ведь внешние SATA и все такое.
                            0
                            не шибко экономично.
                              0
                              Raid-5
                                0
                                дык какбе это далеко не зеркало.
                            0
                            Разве что сделать кучу архивов с названиями как у порно-фильмов и постараться по-быстрому раздать на торрент-трекерах :) Так, глядишь, что-нибудь да сохранится. Это, конечно, из бюджетных решений, до 100$ :)
                              0
                              и кто это будет долго сидить? :)
                                0
                                Половина файла в AVI — порнуха, вторая половина — куски данных в тегах. А у себя софтина, собирающая их из кусков.
                                Ну и что, что файл стал не 300MB, а 600? В наше время скоростных каналов не пофиг ли. Мало кто полезет разбираться. А даже если и допетрит, что извлечешь из криптованного контейнера.
                                  0
                                  все равно ИМХО это не тянет на надежное архивное решение :)
                              +1
                              дело не в стоимости 100гб… а в стоимости данных которые эти 100гб занимают.

                              если это 100гб hd видео с торрентс.ру это одно…
                              а если это база системы документооборота, эт совсем другое
                              +1
                              А почему не iscsi?
                                0
                                Честно говоря, уже не помню. То ли не понравилась тогдашняя реализация в линуксе, то ли просто хотелось попробовать технологию с меньшей инкапсуляцией.
                              • UFO just landed and posted this here
                                  +2
                                  Это недавно так стало. Честное слово. Лет 10 наверное всего.
                                    0
                                    хм. я, конечно, не претендую на правильность, но: (цитата из мана)

                                    SYNOPSIS
                                    ps [-aCcefHhjlmrSTuvwXxZ] [-O fmt | -o fmt] [-G gid[,gid...]] [-M core]
                                    [-N system] [-p pid[,pid...]] [-t tty[,tty...]] [-U user[,user...]]
                                    ps [-L]
                                      +1
                                      Да там целая история.

                                      NAME
                                      ps — report a snapshot of the current processes.

                                      SYNOPSIS
                                      ps [options]

                                      DEscriptION
                                      ps displays information about a selection of the active processes. If you want a repetitive update of the selection and the displayed
                                      information, use top(1) instead.

                                      This version of ps accepts several kinds of options:
                                      1 UNIX options, which may be grouped and must be preceded by a dash.
                                      2 BSD options, which may be grouped and must not be used with a dash.
                                      3 GNU long options, which are preceded by two dashes.

                                      Чисто похоливарить :)
                                        0
                                        вот оно даже как. у всех по-разному. буду знать. спасибо! :)
                                    0
                                    Было бы неплохо написать о уже готовых решениях, например Samba может нормально масштабироватся, можно использовать различного рода ФС GFS например итд.
                                      +1
                                      а зачем это? если нужно дешевое хранилище, покупается мамка с 12ю сата портами и двумя гигабитными сетевыми на борту, забивается под завязку жесткими дисками, сейчас выгодно терабайт. Получаем 12 терабайт массив с 2мя гигабитами в сеть. Всяко дешевле чем несколько компов. Расширяемость тоже не вопрос: берем 16 портовый промайз супертрек, и втыкаем еще 16 винтов, по ходу дела можно заменять старые терабайты на двушки, и получить в итоге, в максимуме (4x16 супертрека, 12 на борту по два терабайта на каждую дырку: 172 тера :)
                                        0
                                        Мне даже кажется, что sata-порты лучше набрать PCE-X адаптерами. Дешевле выйдет, мне кажется, адаптор на 4 порта стоит 700 рублей ведь? Вот и двенадцать портов выйдет в 2100 рублей, и если сломается, то один можно заменить, а не всю мамку. Что-то я нудный сегодня, извините.
                                          +1
                                          проблема в расширяемости, рано или поздно порты кончатся, тогда придется вспомнить про 16портовые супертреки (ну или аналог), а старые сата контроллеры куда? правильно — в утиль, так зачем сразу их покупать?
                                            0
                                            На самом деле просто фонить будет(уже после второго-третьего контроллера).
                                            Если в мамке 5 слотов PCI-E, то это не значит что их все можно забить.
                                              0
                                              от дешевых PCI контроллеров — наверняка
                                              от 16портовых супертреков — ничего не фонит :)
                                                +1
                                                Почему же… PCI (и в том числе PCI-X) похож на шину, то PCI-E скорее похож на древовидную структуру. Там даже, когда идет речь об PCIe x16 — значит 16 отдельных линий (lane). А если 5 PCIe портов по скажем x4, значит всего 20 линий (независимых) к «хабу», т.е. к северному мосту.
                                                А вообще я против контроллеров, которые просто добавляют SATA порты. Почему бы не ставить если уж на то пошло старье, например Adaptec 2810 (2820) — 8 SATA портов и какой никакой RAID аппаратный. Хотя если строить концепцию описанную выше, почему бы и нет.
                                                0
                                                Логично. Но наверное, это не слишком бюджетно будет?
                                              +1
                                              У нас для таких устройств прижилось отличное слово «хоронилище» ;)
                                              0
                                              Три интересных ссылки:
                                              1. xgu.ru — немало информации об AoE
                                              2. coraid.com — фирма делает «корбки» которые экспортируют свои массивы по AoE
                                              3. pitstop — чуваки помешанные на компьютерных SAN, есть дисковые хранилища с SAS Экспандерами. Победоносная фирма. Отправить от них к нам 25 кг железа стоит 200$, + таможня может взять до 30% от цены. Как я их только не уламывал задекларировать цену хотя бы в пределах в 1000$, они на это не идут. Но всеравно их цены с учетом всего вышесказанного очень хороши.
                                                +1
                                                А насчет LVM поверх AoE, пускай даже каждый из них это RAID5 (программный или аппаратный) — мне все равно страшно.

                                                Не знаю я может дурак и параноик, но я LVM всегда побаивался. Старался обходится средствами рейд контроллера. Но правда и задачи построить что-то огромное (и самое главное масштабируемое) не было. Если задача сделать 4Tb значит надо купить N дисков по M гигабайт и сделать из них например RAID 5E. Причем многие контроллеры позволяют наращивать дисковый массив постепенно.

                                                Хотел бы услышать мнение людей споткнувшихся о разрушившийся LVM. Что будет, если в описанном в статье примере разрушиться RAID 5, который обозначен как node 2, как спасать остальное?

                                                Хотя если умирает аппаратный контроллер (такое тоже к сожалению бывает, и не редко) наверно туши свет. И не знаю как теперь жить дальше и во что верить.
                                                  0
                                                  да, был и в моей жизни печальный случай потери аппаратного контроллера. теперь смотрю в сторону www.coda.cs.cmu.edu/
                                                0
                                                А сейчас есть такая штука — mhddfs.uvw.ru/ — очень чудесатая для файловых серверов и кластеров из них.
                                                  +1
                                                  А если одна из нод упадет? Всё, в даун уходит весь LVM-storage?
                                                    0
                                                    Да, по хорошему, неплохо было бы собрать ещё raid5 поверх импортированных md'шек, но это, как я понимаю, будет кушать ресурсы Супервайзера. Можно конечно собрать raid10, но тут проблемы со слишком большой избыточностью(хотя… а бывает ли её много?)
                                                    0
                                                    Сейчас развиваем похожую темку с раздачей тяжелого контента. Но из-за уязвимости такого Супервайзера (суммарная пропускная способность небольшая), решили просто делать независимые ноды — на каждом 10к 300гб sata, 1gb eth, nginx — вебморда проекта дает ссылку на нужный сервер исходя из своих наблюдений.
                                                      0
                                                      супер, спасибо за интересное решение.
                                                        0
                                                        «папочки»… буэ

                                                        Извините, не сдержался.
                                                          0
                                                          Никогда не работали с FreeBSD и инфраструктурой GEOM?

                                                          Там тоже есть интересные вещи: GCONCAT(8), GVIRSTOR(8), GGATED(8). И всё это компонуется в доступные уровни RAID.
                                                            0
                                                            В предвестиях стабильного ZFS в 8-ке данный подходы выглядит очень заманчиво. Но тут интересен также оверхед TCP.
                                                            +1
                                                              0
                                                              Класс!
                                                              0
                                                              Господа, а что будет с данными если один из нодов вдруг станет недоступен на рабочей системе?
                                                              К примеру свич повиснет, питание отпадёт и т.д
                                                              У LVM же данные распределёно хранятся, получается некоторые данные станут недоступны.
                                                                0
                                                                Ой, просмотрел, этот вопрос уже задавали.
                                                                Я думаю что ситуация будет примерно такая:
                                                                sysadminonline.ru/pechalnaya-povest-ob-lvm/

                                                              Only users with full accounts can post comments. Log in, please.