пятница, 30 декабря 2016 г.

Установка Roundcube.

Почтовый сервер на базе Dovecot+Postfix+DKIM+MySQL+Postgrey устанавливал по инструкции с сайта. Автор разрешил опубликовать материал у себя (оформлю для публикации, как будет время), чтобы материал дублировался в моих записях на всякий случай.

В конфигах которые настраивал пришлось заменить localhost на 127.0.0.1 иначе кидало ошибку в syslog (увы не помню какую именно).


Все команды выполнялись от прав пользователя root.

1. В моем репозитории почему-то его не оказалось, потому скачиваю сырцы во временную папку:
cd /tmp/
wget https://sourceforge.net/projects/roundcubemail/files/roundcubemail/1.1.4/roundcubemail-1.1.4-complete.tar.gz

2. Распаковываю архив:
tar xfvz roundcubemail-1.1.4-complete.tar.gz

3. Удаляю архив и перемещаю распакованные данные:
rm roundcubemail-1.1.4-complete.tar.gz
mv roundcubemail-1.1.4-complete /var/www/roundcube

4. Перехожу в папку и задаю права на папки temp logs:
cd /var/www/roundcube
chmod 777 temp logs

5. Вхожу и создаю БД для Roundcube:
mysql -u root -p
CREATE DATABASE IF NOT EXISTS `roundcube`;
GRANT ALL PRIVILEGES ON `roundcube` . * TO 'root'@'localhost' IDENTIFIED BY 'mySecretPassword';
FLUSH PRIVILEGES;
quit

6. Наполняю созданную БД:
mysql -u root -p"mySecretPassword" roundcube < SQL/mysql.initial.sql

7. Настраиваю apache:
nano /etc/apache2/sites-enabled/mail.conf

Alias /mail /var/www/roundcube/

   RemoveHandler .php  .php3 .php4 .phtml
   AddType application/x-httpd-php .php  .php3 .php4 .phtml
   php_admin_value open_basedir /
   AddType text/x-component .htc
   
      php_flag display_errors Off
      php_flag log_errors On
      php_value error_log logs/errors
      php_value upload_max_filesize 5M
      php_value post_max_size 6M
      php_value memory_limit 64M
   

   
      php_flag display_errors Off
      php_flag log_errors On
      php_value error_log logs/errors
      php_value upload_max_filesize 5M
      php_value post_max_size 6M
      php_value memory_limit 64M
   

   
      Order allow,deny
      Deny from all
   

   Order deny,allow
   Allow from all

8. Перезапускаю apache:
/etc/init.d/apache2 restart

9. Создаю вручную конфиг roundcube:
nano /var/www/roundcube/config/config.inc.php


/* Local configuration for Roundcube Webmail */

// ----------------------------------
// SQL DATABASE
// ----------------------------------
$config['db_dsnw'] = 'mysql://root:mySecretPassword@localhost/roundcube';

// ----------------------------------
// IMAP
// ----------------------------------
$config['default_host'] = 'localhost';

// provide an URL where a user can get support for this Roundcube installation
// PLEASE DO NOT LINK TO THE ROUNDCUBE.NET WEBSITE HERE!
$config['support_url'] = '';

// this key is used to encrypt the users imap password which is stored
// in the session record (and the client cookie if remember password is enabled).
// please provide a string of exactly 24 chars.
$config['des_key'] = '2dcd0f65ff91d3b2bcabcdc5';

// ----------------------------------
// PLUGINS
// ----------------------------------
// List of active plugins (in plugins/ directory)
$config['plugins'] = array();

// the default locale setting (leave empty for auto-detection)
// RFC1766 formatted language name like en_US, de_DE, de_CH, fr_FR, pt_BR
$config['language'] = 'ru_RU';

$rcmail_config['smtp_server'] = 'localhost';
$rcmail_config['smtp_user'] = '%u';
$rcmail_config['smtp_pass'] = '%p';
$rcmail_config['quota_zero_as_unlimited'] = true;
$rcmail_config['preview_pane'] = true;
$rcmail_config['read_when_deleted'] = false;
$rcmail_config['check_all_folders'] = true;
$rcmail_config['imap_auth_type'] = 'CRAM-MD5';
$rcmail_config['smtp_auth_type'] = 'CRAM-MD5';

10. Удаляю установщик коонфигурации (собственно п. Можно делать через него):
rm -rf /var/www/roundcube/installer/

11. Включаю автоматическое создание стандартных папок, типа корзина-спам и т.д. Для это в конфиге nano /var/www/roundcube/config/defaults.inc.php меняю значение ключа:
$config['create_default_folders'] = true;

12. Проверяю введя в браузере:

в качестве учетных данных ввожу e-mail и пароль.

четверг, 28 апреля 2016 г.

Настройка NFS-сервера на ZFS с включённой дедубликацией и сжатием



Все команды выполнялись от прав пользователя root.

1. Ставлю Debian 8.0 Jessie (важно!!! чтобы версия была x64).
2. Устанавливаю ZFS:

wget http://zfsonlinux.org/4D5843EA.asc -O - | apt-key add -
wget http://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux/zfsonlinux_6_all.deb
dpkg -i zfsonlinux_6_all.deb
apt-get update

apt-get install lsb-release
apt-get install debian-zfs
reboot

3. Создаю пул:

Проверяю что установилось.
dpkg -l | grep zfs
ii  debian-zfs                     7~jessie                    amd64        Nati           ve ZFS filesystem metapackage for Debian.
ii  libzfs2                        0.6.5.6-7                   amd64        Nati           ve ZFS filesystem library for Linux
ii  zfs-dkms                       0.6.5.6-7                   all          Nati           ve ZFS filesystem kernel modules for Linux
ii  zfsonlinux                     6                           all          arch           ive.zfsonlinux.org trust package
ii  zfsutils                       0.6.5.6-7                   amd64        comm           and-line tools to manage ZFS filesystems

Проверяю какие диски есть
ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda5  /dev/sdb  /dev/sdc

Проверяю есть ли пул )))
zpool list
no pools available

Создаю RAID-1
zpool create -f pool mirror /dev/sdb /dev/sdc

Проверяю:
zpool list
NAME   SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
pool  9,94G   187K  9,94G         -     7%     0%  1.00x  ONLINE  -


Проверяю статуса пулов:
zpool status
  pool: pool
 state: ONLINE
  scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        pool        ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            sdb     ONLINE       0     0     0
            sdc     ONLINE       0     0     0

errors: No known data errors

Проверяю его наличии в системе
df -hT
Файловая система Тип      Размер Использовано  Дост Использовано% Cмонтировано в
/dev/root        ext4       1,9G         1,3G  424M           76% /
udev             devtmpfs    10M            0   10M            0% /dev
tmpfs            tmpfs      200M         4,6M  196M            3% /run
tmpfs            tmpfs      500M            0  500M            0% /dev/shm
tmpfs            tmpfs      5,0M            0  5,0M            0% /run/lock
tmpfs            tmpfs      500M            0  500M            0% /sys/fs/cgroup
pool             zfs        9,7G         128K  9,7G            1% /pool


4. Тюнингую ZFS:
Включаю сжатие данных
zfs set compression=on pool
zfs get compression pool
NAME  PROPERTY     VALUE     SOURCE
pool  compression  on        local
 

Включаю дедупликацию
zfs set dedup=on pool
zfs get dedup
NAME  PROPERTY  VALUE          SOURCE
pool  dedup     on             local

5. Устанавливаю NFS-сервер:
apt-get install nfs-kernel-server nfs-common

Назначаю права на ZFS-пул
chown nobody:nogroup /pool
chmod 777 /pool

Правлю конфиг сервера (добавив строчку)
nano /etc/exports
/pool   192.168.0.0/24 (rw,async,no_subtree_check)

Перезагружаю NFS-сервер
/etc/init.d/nfs-kernel-server restart

6. Проверка подключения на базе Linux клиента:
Устанавливаю сам клиент
apt-get install nfs-common

Создаю папку куда буду монтировать
mkdir -p /mnt/nfs

Собственно монтирую
mount 192.168.0.10:/pool /mnt/nfs

Проверяю
df -hT
Файловая система     Тип      Размер Использовано  Дост Использовано% Cмонтировано в
/dev/root            ext4       176G         985M  166G            1% /
udev                 devtmpfs    10M            0   10M            0% /dev
tmpfs                tmpfs      200M         4,5M  196M            3% /run
tmpfs                tmpfs      500M            0  500M            0% /dev/shm
tmpfs                tmpfs      5,0M            0  5,0M            0% /run/lock
tmpfs                tmpfs      500M            0  500M            0% /sys/fs/cgroup
192.168.0.10:/pool       nfs4       9,7G         128K  9,7G            1% /mnt/nfs

Размонтирование делается обычно
umount /pool

7. Проверка подключения на базе Windows:
Проверять буду программой NekoDrive.


Таким образом создается диск Е куда все и монтируется. Unicode нужно для корректного отображения кириллицы.

Пример работы сжатия ZFS пула:
Залил на NFS виртуальную машину изначальный размер согласно свойствам Windows - 6,72 ГБ (7 219 906 743 байт).
Проверяю пул (показывает 4,2 Гб)
 df -hT
Файловая система Тип      Размер Использовано  Дост Использовано% Cмонтировано в
/dev/root        ext4       1,9G         1,3G  423M           76% /
udev             devtmpfs    10M            0   10M            0% /dev
tmpfs            tmpfs      200M         4,6M  196M            3% /run
tmpfs            tmpfs      500M            0  500M            0% /dev/shm
tmpfs            tmpfs      5,0M            0  5,0M            0% /run/lock
tmpfs            tmpfs      500M            0  500M            0% /sys/fs/cgroup
pool             zfs             9,7G         4,2G  5,5G           43% /pool