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

среда, 7 сентября 2011 г.

Журналируемые дисковые квоты

При ремонте дисковых квот почти наверняка сталкивались со следующей подсказкой системы

"quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown."

Включаем журналируемые квоты

Добавляем или меняем опции монтируемого раздела в /etc/fstab

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
/dev/mapper/srv--01-root /               ext3    errors=remount-ro,usrquota,grpquota 0       1

на следующие

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
/dev/mapper/srv--01-root /               ext3    errors=remount-ro,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0       1

после чего или просто перезагружаем сервер, либо выполняем

выключаем квоты

quotaoff -avug

останавливаем все службы

перемонтируем корень

mount -o remount /

проверяем квоты

quotacheck -avugm

включаем квоты

quotaon -avug

проверяем текущее состояние квот

repquota -avug

Преимущество таких квот в том что их не требуется ремонтировать после некорректного выключения сервера.

воскресенье, 4 сентября 2011 г.

Настройка оповещений о состоянии RAID массива mdadm

Прописываем в конфиг mdadm /etc/mdadm/mdadm.conf

MAILADDR sysadmin@company.lan

MAILFROM alert@server.lan

Перезагружаем демон mdadm если он загружен или запускаем, если он выключен

invoke-rc.d mdadm restart
invoke-rc.d mdadm start

Добавляем в автозагрузку, если mdadm еще там нет

update-rc.d mdadm defaults

Проверяем как работает, например на массиве который используется под своп (если своп в данный момент не используется) имитируем вылет диска

swapoff -a

mdadm /dev/md0 -f /dev/sda1
mdadm /dev/md0 -r /dev/sda1

смотрим по логам SMTP сервера факт ухода письма с сервера

Проверяем целевой почтовый ящик, придет письмо такого вида

This is an automatically generated mail message from mdadm
running on server

A Fail event had been detected on md device /dev/md0.

It could be related to component device /dev/sda1.

Faithfully yours, etc.

P.S. The /proc/mdstat file currently contains the following:

Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 sda3[0] sdc3[1]
     153918656 blocks [2/2] [UU]

md1 : active raid1 sda2[0] sdc2[1]
     264960 blocks [2/2] [UU]

md0 : active raid1 sda1[0](F) sdc1[1]
     2102464 blocks [2/1] [_U]

unused devices: <none>

Возвращаем диск обратно в массив

mdadm /dev/md0 -a /dev/sda1
swapon -a

Настройка параметров файловой системы Ext-3

На примере настройки автоматической проверки ФС при каждой загрузке ОС/монтировании ФС.

Вывод содержимого суперблоков ФС /dev/mapper/srv--01-root

root@srv-01:~# tune2fs -l /dev/mapper/srv--01-root
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          009e6e5b-1c22-49b2-9d69-3e04bfa3bb61
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file
Filesystem flags:         signed_directory_hash
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              484800
Block count:              1937408
Reserved block count:     96870
Free blocks:              1516041
Free inodes:              419114
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      472
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8080
Inode blocks per group:   505
Filesystem created:       Thu Aug 18 00:45:22 2011
Last mount time:          Wed Aug 31 05:54:14 2011
Last write time:          Thu Aug 18 00:53:35 2011
Mount count:              8
Maximum mount count:      38
Last checked:             Thu Aug 18 00:45:22 2011
Check interval:           15552000 (6 months)
Next check after:         Mon Feb 13 23:45:22 2012
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
First orphan inode:       88888
Default directory hash:   half_md4
Directory Hash Seed:      c5b5d5cc-b79c-40ce-bfea-90778dcb6e33
Journal backup:           inode blocks

Включение автоматической проверки файловой система с помощью fsck при каждой загрузке ОС

tune2fs -c 1 /dev/mapper/srv--01-root
tune2fs 1.41.12 (17-May-2010)
Setting maximal mount count to 1

Смотрим еще раз параметры ФС

tune2fs -l /dev/mapper/srv--01-root | grep -i mount
Last mounted on:          <not available>
Default mount options:    (none)
Last mount time:          Wed Aug 31 06:03:18 2011
Mount count:              9
Maximum mount count:      1

Т.е. если Maximum mount count становится равным или меньшим, чем Mount count происходит проверка ФС

вторник, 16 августа 2011 г.

Лимитирование ресурсов системных пользователей

Ограничить ресурсы пользователям можно через /etc/security/limits.conf (оперативная память, процессорное время, кол-во процессов и т.д.). Пример записи устанавливающей максимальное кол-во процессов для пользователя user в десять

#        - rtprio - max realtime priority
#
#<domain>      <type>  <item>         <value>
#

#*               soft    core            0
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#@student        -       maxlogins       4

# End of file

user        hard    nproc           10

Без лимитирования пользователей по ресурсам (в данном случае на кол-во процессов) простейшая fork-бомба на python кладет сервер безвозвратно и приходится его перезагружать по питанию.

#!/usr/bin/python

import os

while(1):
      os.fork()

понедельник, 15 августа 2011 г.

Дисковые квоты

Активация дисковых квот для разделов монтируемых автоматически происходит через /etc/fstab, опции usrquota и grpquota для пользователей и групп соответственно. После добавления опции можно просто перемонитровать раздел, например

mount -o remount /home

Создание служебных файлов для хранения информации о квотах и включение квотирования.

quotacheck - проверяет квотирование на всех ФС и создает служебные файлы aquota.user, aquota.group, если их не существует. Так же данная утилита пересчитывает квоты и восстанавливает поврежденные файлы квот. Пример запуска утилиты

quotacheck -augv
-a для всех ФС в /etc/fstab для которых разрешено автомонтирование
-u для пользовательских квот
-g для групповых квот
-v включение подробного вывода

quotaon -ugva - включение квот

edquota - утилита для установки квот для отдельного пользователя

Мягкие пределы (soft) - пределы при достижении которых пользователь получает предупреждение о превышении дисковой квоты.

Жесткие пределы (hard) - границы которые пользователь не может превысить

Ограничение на блоки (blocks) - это ограничение на объем сохраняемой информации

Ограничение по inodes - это ограничение на количество файлов и каталогов

Копирование квот - ключ -p утилиты edquota использует значение квот пользователя прототипа для установки квот другому пользователю. Пример

edquota -p ivanov petrova sidorov

квоты пользователя petrova и sidorov станут такими же как и у пользователя ivanov

Задание квот для группы

edquota -g <имя_группы>

Для создания служебных файлов aquota.user, aquota.group на новом разделе требуется указывать этот раздел как целевой

quotacheck -ugv /data

также возможно добавление ключа -f для принудительного сканирования нужного раздела

repquota - утилита для вывода информации о текущем состоянии дисковых квот

-a вывод отчета о всех ФС отмеченных в /etc/fstab
-g вывод отчета о квотах на группы
-u вывод отчета о квотах на пользователей

пример вывода по пользователям

server:~# repquota -uva
*** Report for user quotas on device /dev/simfs
Block grace time: 00:00; Inode grace time: 00:00
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --  803900       0       0          37354     0     0
man       --     840       0       0             65     0     0
news      --       4       0       0              1     0     0
www-data  --    1036       0       0             80     0     0
nobody    --       4       0       0              1     0     0
libuuid   --       4       0       0              1     0     0
bind      --      16       0       0              4     0     0
fetchmail --       4       0       0              1     0     0
stunnel4  --      12       0       0              3     0     0
smmta     --      12       0       0              3     0     0
postfix   --      84       0       0             48     0     0
ftp       --       4       0       0              1     0     0
mysql     --   21360       0       0             73     0     0
sysadmin  --     120       0       0             30     0     0
virtuser_501 --       4       0       0              2     0     0
virtuser_502 --       4       0       0              2     0     0
virtuser_503 --       4       0       0              2     0     0

Statistics:
Total blocks: 131594
Data blocks: 5
Entries: 17
Used average: 3.400000


пример вывода по группам

server:~# repquota -gva
*** Report for group quotas on device /dev/simfs
Block grace time: 00:00; Inode grace time: 00:00
                        Block limits                File limits
Group           used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --  791112       0       0          37248     0     0
adm       --   12672       0       0             67     0     0
tty       --      24       0       0             14     0     0
disk      --       0       0       0             25     0     0
mail      --     128       0       0              5     0     0
news      --       4       0       0              1     0     0
kmem      --       0       0       0              3     0     0
audio     --       0       0       0             33     0     0
www-data  --    1016       0       0             72     0     0
src       --      12       0       0              4     0     0
shadow    --     124       0       0              5     0     0
utmp      --     456       0       0              6     0     0
video     --       0       0       0              1     0     0
staff     --      60       0       0             16     0     0
nogroup   --       8       0       0              2     0     0
libuuid   --      16       0       0              4     0     0
crontab   --      40       0       0              3     0     0
ssh       --     104       0       0              1     0     0
bind      --      28       0       0              7     0     0
ssl-cert  --       8       0       0              2     0     0
stunnel4  --      12       0       0              3     0     0
smmsp     --      44       0       0              9     0     0
mgrsecure --       4       0       0              1     0     0
postfix   --      40       0       0             30     0     0
postdrop  --      40       0       0              9     0     0
dovecot   --      12       0       0              4     0     0
mysql     --   21324       0       0             62     0     0
sysadmin  --     124       0       0             34     0     0

Statistics:
Total blocks: 131594
Data blocks: 8
Entries: 28
Used average: 3.500000

Льготный период (block grace, inode grace) - пользователи могут превысить мягкие пределы (soft) в течение льготного периода, который по умолчанию составляет 7 дней. По истечению этого периода мягкие пределы становятся жесткими (hard).

edquota -t установить grace-period используемый по умолчанию для пользователей

edquota -tg установить grace-period используемый по умолчанию для групп

edquota -T <имя_пользователя> установить grace-period для конкретного пользователя

setquota - утилита для управления квотами

setquota -u <имя_пользователя> block-softlimit block-hardlimit inode-softlimit inode-hardlimit <файловая_система>

пример

setquota -u sidorova 0 50000 0 0 /home установит hard-limit на объем данных в домашнем каталоге в 50Мб.