• Новый сервер под роутер/почтовик/файлопомойку. Ufs или zfs?

    @kelevra
    если памяти 4г или больше, то однозначно zfs с архитектурой 64 бита.

    основная причина - гибкость. при замене диска, например, gmirror будет зеркалить блочное устройство полностью, а zfs только часть, занятую данными. второе, разумеется, происходит гораздо быстрей.

    но это не значит, что надо полностью отказаться от gmirror. своп на zfs размещать нельзя. т.е. технически сделать это получится, но когда система попытается им воспользоваться по причине нехватки памяти, то всё остановится, т.к. zfs будет пытаться кэшировать своп.

    у меня дома атом с 4г памяти и сделано вот так:
    [~@beat/08:35:26]
    kelevra$ zpool status
      pool: zroot
     state: ONLINE
      scan: scrub repaired 0 in 5h36m with 0 errors on Thu Feb 25 07:36:18 2016
    config:
    
            NAME           STATE     READ WRITE CKSUM
            zroot          ONLINE       0     0     0
              mirror-0     ONLINE       0     0     0
                gpt/root0  ONLINE       0     0     0
                gpt/root1  ONLINE       0     0     0
    
    errors: No known data errors
    [~@beat/08:35:29]
    kelevra$ gmirror status
           Name    Status  Components
    mirror/swap  COMPLETE  gpt/swap1 (ACTIVE)
                           gpt/swap0 (ACTIVE)
    [~@beat/08:35:34]
    kelevra$ gpart list ada0
    Geom name: ada0
    modified: false
    state: OK
    fwheads: 16
    fwsectors: 63
    last: 3907029134
    first: 34
    entries: 128
    scheme: GPT
    Providers:
    1. Name: ada0p1
       Mediasize: 65536 (64k)
       Sectorsize: 512
       Stripesize: 4096
       Stripeoffset: 0
       Mode: r0w0e0
       rawuuid: 59c58842-1685-11e4-a3a3-7071bcb164bb
       rawtype: 83bd6b9d-7f41-11dc-be0b-001560b84f0f
       label: boot0
       length: 65536
       offset: 20480
       type: freebsd-boot
       index: 1
       end: 167
       start: 40
    2. Name: ada0p2
       Mediasize: 11811160064 (11G)
       Sectorsize: 512
       Stripesize: 4096
       Stripeoffset: 0
       Mode: r1w1e2
       rawuuid: 5b8cb655-1685-11e4-a3a3-7071bcb164bb
       rawtype: 516e7cb5-6ecf-11d6-8ff8-00022d09712b
       label: swap0
       length: 11811160064
       offset: 86016
       type: freebsd-swap
       index: 2
       end: 23068839
       start: 168
    3. Name: ada0p3
       Mediasize: 1986422374400 (1.8T)
       Sectorsize: 512
       Stripesize: 4096
       Stripeoffset: 0
       Mode: r1w1e2
       rawuuid: 5e05979f-1685-11e4-a3a3-7071bcb164bb
       rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b
       label: root0
       length: 1986422374400
       offset: 11811246080
       type: freebsd-zfs
       index: 3
       end: 3902800039
       start: 23068840
    Consumers:
    1. Name: ada0
       Mediasize: 2000398934016 (1.8T)
       Sectorsize: 512
       Stripesize: 4096
       Stripeoffset: 0
       Mode: r2w2e6
    второй диск разбит так же. уже третий год идёт - полёт нормальный.
    Ответ написан
    Комментировать
  • Выбор OS для ISCSI хранилища?

    @kelevra
    если для хранилища будет использоваться appliance в виде freenas, nexenta или чего-либо другого, укутанного в красивую оболочку, то гибкости не получится. что я подразумеваю под гибкостью? например, у меня есть сервер, с кучей hdd и парой ssd. для максимальной производительности zfs нужно использовать ssd под zil и cache, разбив их на разделы. а ещё лучше оставить на них по 10-15% свободного места, для того, чтобы сборщик мусора не страдал. а на hdd помимо хранилища было бы клёво ещё и поставить саму операционную систему для управления хранилищем.

    так вот, nexenta такое сделать не сможет. freenas я не пробовал, но скорее всего тоже, т.к. работают они по строго заданным шаблонам, в которые почему-то не входят такие конфигурации. поэтому выбор настоящих сварщиков - это FreeBSD или Linux. в принципе и то и то может грузиться и одинаково успешно использовать zfs. я пробовал и оба, но на первом, мне показалось, что zfs работает на порядок быстрей и грузиться с zfs проще. для линукса zfs всё таки не совсем родное, но упоминания и даже статьи об успешной загрузке есть.

    если опыта в Linux/FreeBSD нет или без красивых кнопочек никак, тогда придётся пользоваться эплайнсами и страдать от их ограничений. с устройствами у FreeBSD всё хорошо, агрегация линков тоже есть. zfs не умеет radi6, но умеет лучше: raidz - аналог raid5. raidz1 и raidz2 - то же само что и raidz только уже соответственно с двумя или тремя дисками для чётности. т.е. raidz1 останется работоспособной при выходе из строя двух дисков в массиве, а raidz2 - трёх.

    с горячей заменой дисков у zfs гораздо лучше, чем у хардварных рейдов. zfs - это файловая система, а не дисковый массив и она знает где и что у неё лежит. поэтому при вылете и замене диска ребилд будет происходить не всего диска, а только занятой данными области. многосуточные ребилды рейда можно забыть как страшный сон. smart к zfs отношения не имеет: если дисковый контроллер его отдаёт, то будет. если нет, то нет.
    Ответ написан
    3 комментария
  • Какой почтовый сервер выбрать, что бы была анонимность и поддержка IMAP, SMTP?

    @kelevra
    нет ничего секретного в этом мире. анонимность - это фантастика, %username%.
    Ответ написан
    Комментировать
  • Как запретить pkg обновлять пакет?

    @kelevra
    в родном репозитории лежат прекомпилированные пакеты с опциями по умолчанию. эти опции для mod_php, в частности, указывают ему компилироваться для apache 2.4. поэтому, даже если вы поставите из родного репозитория mod_php, то он, скорее всего, не заработает с apache 2.2.

    для того, чтобы поставить из репозитория mod_php, который будет скомпилировать для apache 2.2 вам необходимо сделать свой репозиторий и прописать его в конфигурации pkg. если обновление нужно в единственном экземпляре, то проще поставить из портов.

    ps. mpm_itk это глючный и дырявый костыль. с разными владельцами лучше всего запускать несколько копий апача через профили в /etc/rc.conf:
    apache22limits_enable="YES"
    apache22_profiles="mnx torrent forum retracker"
    
    apache22_mnx_enable="YES"
    apache22_mnx_configfile="/usr/local/etc/apache22/profiles/mnx.conf"
    
    apache22_torrent_enable="YES"
    apache22_torrent_configfile="/usr/local/etc/apache22/profiles/torrent.conf"
    
    apache22_forum_enable="YES"
    apache22_forum_configfile="/usr/local/etc/apache22/profiles/forum.conf"
    
    apache22_retracker_enable="YES"
    apache22_retracker_configfile="/usr/local/etc/apache22/profiles/retracker.conf"

    при этом service apache22 start запустит 4 копии httpd с разными конфигами. разумеется, все они должны быть на разных портах.
    Ответ написан
    1 комментарий
  • Обновление freebsd или борьба с centos?

    @kelevra
    по вопросу 1: после portsnap fetch && portsnap update на 8.3 из портов вообще ничего не скомпилируется, т.к. в 9-й ветке было много изменений в связи с новым менеджером пакетов и системным компилятором. все версии старше с текущими портами несовместимы. единственный вариант - собирать нужное Вам из старой версии портов, которую можно получить командой "svn co svn://svn0.ru.freebsd.org/ports/branches/RELEASE_8_4_0". но учтите, что поставите весьма древний софт с незакрытыми дырами - на свой страх и риск.

    если хочется более свежего софта на такой старой системе, то это уже сложней. можно попробовать получить ту же версию из ветки head "svn co -r {20130420} svn://svn0.ru.freebsd.org/ports/head", переместить её в /usr/ports, пробовать собирать из неё то, что вам нужно, после успешной сборки через "svn update -r {20130520}" обновлять порты ещё на месяц или два вперёд, потом снова пробовать собирать и остановиться там, где собираться перестало.

    про сборку и установку из исходников забудьте как под линуксом, так и под FreeBSD. решение на первый взгляд выглядит просто, но в итоге получите ад и израиль.

    по вопросу 2: проблема с фаерволом, как я понимаю, решена, а что касается фонового запуска, то на эту тему стоит поизучать /etc/init.d - там много примеров. при запуске вида "python script &" у скрипта получаются не отвязаны stdout и stderr от Вашего шела. когда вы покидаете его, то stdout и stderr так же исчезают, скрипту становится некуда писать и ядро его убивает. чтобы этого не происходило, запускать надо так: "python script >/dev/null >/dev/null &".
    Ответ написан
    Комментировать
  • Зеркало из usb-флешек на FreeBSD 10

    @kelevra Автор вопроса
    сам спрашиваю сам отвечаю:
    1. флешки оказались очень плохие:
      [~@vmstor/15:13:33]
      raven$ sudo dd if=/dev/zero of=/dev/da7 bs=512
      ^C1248+0 records in
      1247+0 records out
      638464 bytes transferred in 31.285647 secs (20408 bytes/sec)
      [~@vmstor/15:14:33]
      raven$ sudo dd if=/dev/zero of=/dev/da7 bs=1024
      ^C1356+0 records in
      1355+0 records out
      1387520 bytes transferred in 31.484652 secs (44070 bytes/sec)
      [~@vmstor/15:15:48]
      raven$ sudo dd if=/dev/zero of=/dev/da7 bs=2048
      ^C1256+0 records in
      1255+0 records out
      2570240 bytes transferred in 23.480575 secs (109462 bytes/sec)
      поменял их на sandisk extreme по информации с сайта и всё завелось.
    2. появилась другая проблема - зависание при попытке погасить сервер. но решение тоже нашлось.
    Ответ написан
    Комментировать
  • Как реализовать мониторинг нагрузки через web - FreeBSD 9.2?

    @kelevra
    cacti.net - снимает данные по snmp, сохраняет, рисует и агрегирует через rrdtool. умеет авторизоваться в openldap. красиво, удобно, практично, но бывает дыряво, поэтому после установки не лишним будет закрыть её через basic http авторизацию на вебсервере.
    Ответ написан
    Комментировать