Показаны сообщения с ярлыком linux. Показать все сообщения
Показаны сообщения с ярлыком linux. Показать все сообщения

понедельник, 12 января 2015 г.

Один из вариантов топологии NAS: Комбинация отказоустойчивых и неотказоустойчивых хранилищ

Думаю о постройке домашнего NAS. Хочется обеспечить отказоустойчивость в какой-то мере, так как терять некоторые данные достаточно болезненно.

Вряд ли у меня будет больше двух дисков, поэтому разные RAID5 или RAID10 не рассматриваются. А RAID1 использовать на весь массив - жаба душит, ведь получаю в 2 раза меньше пространства.

Поэтому рабочий вариант такой: два диска делятся на 2 раздела: отказоустойчивый, поменьше, и общий - побольше.

В отказоустойчивый раздел должна быть помещена сама система, и критичные к потере данные.
В общем разделе - собственно данные, которые потерять не жалко: фильмы, музыка, загрузки торрентов и т.д.

Пришел к такой топологии (два диска по 20 гиг на виртуалке просто для того чтоб потестить):

воскресенье, 11 января 2015 г.

Заметкопост: апгрейд до Apache 2.4 на Debian Wheezy

На Debian Wheezy (stable) по дефолту идет Apache 2.2. В моем случае мне понадобился mod_auth_form, который присутствует в 2.4+ версиях.

Эта версия есть в jessy (testing) репозитории, который, на самом деле, вполне стабильный.

1) Добавляем testing репозиторий в sources.list
# echo "deb http://ftp.debian.org/debian testing main" >> /etc/apt/sources.list
В моем случае, содержимое стало таким:
# cat /etc/apt/sources.list
deb http://ftp.debian.org/debian wheezy main contrib non-free
deb http://security.debian.org wheezy/updates main contrib non-free
deb http://ftp.debian.org/debian testing main

четверг, 22 мая 2014 г.

Национальная ОС в Украине

Сегодня состоится обсуждение национальной ОС в Украине

Прямая трансляция:
https://www.youtube.com/watch?v=bHfnGySJnGw

Краткая предыстория
https://www.linux.org.ru/news/conference/10504356

По моему мнению "национальная ОС" не нужна. Кастомная ОС нужна только для армии, там повышенные требования к секретности и безопасности, и действительно необходимо делать кастомную сборку в которой были бы заморожены версии софта. Также надо провести аудит безопасности/сертификацию в таких системах. И только после этого можно сказать что форк был сделан не зря.

Для гос.учереждений вполне можно использовать готовые проверенные сборки. Швейцария, насколько я знаю, использует SuSE и не выделывается :)

Своя сборка без проведенного аудита не только не добавляет плюшек, а еще и добавляет геморроя в виде поддержки, выпуска обновлений системы и пакетов, обновлений безопасности (и я сомневаюсь что все это будет организовано с достаточной скоростью).

Из позитивного:
  • Открытое обсуждение с прямой трансляцией
  • В КПИ, в моем корпусе ;)
  • Предварительно это будет форк линукса, а не велосипед

суббота, 4 января 2014 г.

Новогодние обновления

Всех с новым годом.

С праздником к нам весело прилетели обновления разных программ и пакетов, которые ломают скрипты. С чем столкнулся я:
vashperado (c)


virtualenv 1.11

Прилетел с поддержкой пакетов типа wheel (pep-0427), pip требует для этого типа пакетов setuptools >=0.8 . Системы с старыми версиями setuptools как CentOS 6 (там 0.6) пролетают.

Решение:
Передавать параметр pip install --no-use-wheel virtualenv


cliff 1.5.2

Пока что не понял что именно сломали (исправили), но python-neutronclient (клиент Neutron для OpenStack) падает с ошибкой 'ExtensionManager' object does not support item assignment

p.s. neutronclient уже исправили

Docker 0.7.3

2014-01-04
Недостаточно обновить пакет, если используете локальный реестр.
Надо еще перекачать образ docker-registry http://get.docker.io/images/openstack/docker-registry.tar.gz
И еще там сломан push в реестр - на некоторые слои выдает "archive/tar: invalid tar header" - https://github.com/dotcloud/docker/issues/3434

Возможно список будет пополняться

воскресенье, 15 декабря 2013 г.

Dia в одном окне

Оказывается, dia все таки умеет работать в одном окне:

$ dia --integrated


Столько времени мучился пока не нашел эту опцию, почему это не сделано по дефолту?

пятница, 15 ноября 2013 г.

Linked lists in Linux Kernel

В ядре linux уже реализованы связные списки, так что при написании модулей ядра не надо писать свои велосипеды. Но интерфейс работы с ними немного неочевиден и отличается от классических списков. См. все операции в /usr/src/linux-*/include/linux/list.h

Сначала необходимо объявить структуру на голову списка и проинициализировать:

struct hlist_head inodes;
INIT_HLIST_HEAD(&inodes);

Далее необходимо объявить структуру, которая будет элементами этого списка.

struct ffs_inode_info {
    struct inode vfs_inode;
    struct ffs_fd fd;
    struct hlist_node list_node;
    struct buffer_head *datablock;
};

Чтобы структура могла стать частью связного списка, она должна содержать элемент struct hlist_node. Лично меня это немного сбило с толку поначалу, ведь обычно элементы связного списка хранят ссылки на элементы своего же типа.

Для добавления элемента (finode) в голову списка (inodes):

struct ffs_inode_info *finode;
...
hlist_add_head(&finode->list_node, &inodes);

Удалить элемент из списка:

    hlist_del(&finode->list_node);

Обойти все элементы списка (inodes) последовательно:

    struct hlist_head *head = &inodes;
    struct ffs_inode_info *i;

    hlist_for_each_entry(i, head, list_node) {
        // some work with 'i' element
    }

четверг, 31 октября 2013 г.

Использование Docker-контейнеров как Jenkins-нод

Эта статья описывает использование контейнеров docker как отдельные ноды для системы непрерывной интеграции, в данном случае jenkins. Кому лень читать tl; dr Для сборки нашего проекта в RPM и DEB пакеты мы используем Jenkins, на что выделена специальная машина.

Сначала мы собирали наш проект только для CentOS 6. Далее добавилась поддержка CentOS 5, и оказалось что зависимости от конкретных версий библиотек не дают работать тем же бинарникам под разными версиями CentOS, понадобилась сборка разных RPM. Это было решено добавлением в jenkins ноды с CentOS 5, которой служила виртуалка на VirtualBox. Потом добавилась поддержка Suse, а потом и Debian.

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

четверг, 4 июля 2013 г.

C-style loops in Bash

Just found out it's possible to use C-style loops in bash, for example:

    for ((i=0; i<10; i++)); do
      echo $i;
    done

General form:

    for (( expr1 ; expr2 ; expr3 )) ; do list ; done

It's extremely useful, and this feature works on bash>=2.04, so it has to work on most environments.

more info: http://www.softpanorama.org/Scripting/Shellorama/Control_structures/loops.shtml#C_style_for_loop

This message on my coderwall:
https://coderwall.com/p/fomutw