Дисковая подсистема Linux

Материал из Xgu.ru

Перейти к: навигация, поиск
stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.

Короткий URL: linux/disk

Содержание

[править] Жёсткие диски

[править] Добавление нового диска

Основная страница: SATA hotplug

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

Если речь идёт о SATA-дисках, то их можно попробовать подключить без выключения питания.

Подключение диска:

%# echo 0 0 0 > /sys/class/scsi_host/host2/scan
ata2: exception Emask 0x10 SAct 0x0 SErr 0x50000 action 0x3
ata2: hard resetting port
ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata2.00: ATA-7: HDS725050KLA360, K2AOAD1A, max UDMA/133
ata2.00: 976773168 sectors, multi 0: LBA48 NCQ (depth 0/32)
ata2.00: configured for UDMA/133
ata2: EH complete
scsi 2:0:0:0: Direct-Access ATA HDS725050KLA360 K2AO PQ: 0 ANSI: 5
SCSI device sdc: 976773168 512-byte hdwr sectors (500108 MB)
sdc: Write Protect is off
sdc: Mode Sense: 00 3a 00 00
SCSI device sdc: write cache: enabled, read cache: enabled, doesn't support DPO or FUA
SCSI device sdc: 976773168 512-byte hdwr sectors (500108 MB)
sdc: Write Protect is off
sdc: Mode Sense: 00 3a 00 00
SCSI device sdc: write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sdc: sdc1 sdc2 sdc3
sd 2:0:0:0: Attached scsi disk sdc

Или же командой:

rescan-scsi-bus -l

Отключение диска:

%# echo 1 > /sys/block/sdc/device/delete
ata2.00: disabled

[править] Настройка и оптимизация жёсткого диска

[править] Проблемы с размером диска

Диск большого размера может определяться как диск значительно меньшего размера (причём, как в операционной системе, так и в BIOS). Например, диск размером 1TB может быть виден как диск размером 33MB.

Note-icon.gif

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

Проблема, скорее всего, связана с механизмом HPA (Host Protected Area). Проверить это можно выполнив команду:

%$ hdparm -N /dev/sdc

где /dev/sdc — имя проблемного жёсткого диска.

Результатом выполнения команды должно быть нечто наподобие этого:

/dev/sdc:
max sectors = некое_небольшое_число/1953525168, HPA is enabled

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

%# hdparm -N 1953525168 /dev/sdc

Эти изменения сохранятся до перезагрузки.

Для того чтобы сделать изменения постоянными, необходимо дать команду:

%# hdparm -Np 1953525168 /dev/sdc

То есть, использовать дополнительный ключ p. В этом случае изменения становятся постоянными.

На старых ядрах (<2.6.28) команда может работать не всегда корректно.

Подробнее о проблеме и её решении: [1].

[править] Создание дисковых разделов

[править] Перечитать таблицу разделов

# partprobe

(из пакета parted).

Другие способы:

# hdparm -z /dev/DISK
# blockdev --rereadpt /dev/DISK
# echo 1 > /sys/block/DISK/device/rescan

Здесь везде вместо DISK название соответствующего устройства (sda, sdb, sdc).

[править] Дисковые разделы более 2TB

Используйте GPT и parted.

Подробнее: [2].

[править] Файловые системы

ОС Linux поддерживает огромное количество разнообразных файловых систем. В каталоге fs/ дерева исходных кодов ядра находится более 60 подкаталогов, каждый из которых соответствует одной файловой системе. Кроме этого, существует интерфейс FUSE, обеспечивающий поддержку ещё большего количества файловых систем, реализованных не в пространстве ядра (kernel level), а в пространстве пользователя (user level).

Традиционно файловые системы разделяют на четыре класса:

  • Локальные файловые системы;
  • Сетевые файловые системы;
  • Кластерные файловые системы;
  • Файловые системы специального назначения.

К основным локальным файловым системам Linux относят:

  • ext2, ext3 и теперь ext4, которая с декабря 2008 года (ядро 2.6.28) считается стабильной;
  • XFS,
  • JFS,
  • Reiserfs и Reiser4.

Ведётся работа над файловой системой btrfs, которая, возможно, войдёт в число основных файловых систем Linux, но пока до этого ещё далеко.

К основным сетевым файловым системам в Linux относят:

  • NFS, основная сетевая файловая система в UNIX (в Linux поддерживается как NFSv3, так и NFSv4);
  • CIFS

Также можно выделить файловую систему AFS, поддержка которой в ядре Linux существенно развилась за последнее время.

Файловые системы отличаются:

  • функциональностью;
  • производительностью;
  • надёжностью;
  • эффективностью хранения данных.

Для улучшения этих и других характеристик в файловых системах используются различные подходы, решения и техники, в том числе:

[править] Создание файловых систем

[править] Монтирование файловых систем

...

Для того чтобы смонтировать файловую систему UFS2 (FreeBSD) в Linux в режиме read/write, необходимо разрешить это в ядре.

 CONFIG_UFS_FS_WRITE=y

Подробнее [3].

[править] Работа с файловыми системами

[править] Сброс и очистка кэша

Запись несохранённых изменений в кэше на диск:

%# sync

Очистить кэш страниц (pagecache):

%# sync && echo 1 > /proc/sys/vm/drop_caches

Очистить кэш каталогов и индексных дескрипторов:

%# sync && echo 2 > /proc/sys/vm/drop_caches

Очистить кэш страниц, кэш каталогов и индексных дескрипторов:

%# sync && echo 3 > /proc/sys/vm/drop_caches

Подробнее: linux/Documentation/filesystems/proc.txt

Эта возможность появилась начиная с ядра версии 2.6.16.

[править] Отключение диска

[править] Надёжное удаление данных

Очистка первого раздела на первом диске (PATA|SATA), с помощью:

dd:

Заполнение нулями:

  dd if=/dev/zero of=/dev/sda1 bs=1M

Заполнение псевдослучайными данными:

  dd if=/dev/urandom of=/dev/sda1 bs=1M

bcwipe:

  bcwipe -b -ms -v /dev/sda1

-b wipe special block device.

-ms use 7-pass Bruce Schneier's wiping scheme.

-v verbose output.

[править] Работа с файлами как с блочными устройствами

Для того, чтобы создать файловую систему в файле, как в блочном устройстве, достаточно задать его параметром в команде создания ФС.

Создание пустого файла:

  dd if=/dev/zero of=/tmp/file.img bs=1024k count=100

Создание в нём ФС:

  mkreiserfs /tmp/file.img

Монтирование файла с ФС, как блочного устройства:

  mount -o loop /tmp/file.img /mnt/file_img_mount_point

Аналогичным образом можно монтировать iso-образы дисков и т.д.

[править] Экспорт блочных устройств по сети

Подробнее:

[править] RAID-массивы

Основная страница: RAID

[править] Системы управления томами

Подробнее:

[править] Мониторинг и диагностика

[править] Мониторинг с помощью SMART

%# apt-get install smartmontools

%# smartctl -i /dev/hda

Device Model:     IC35L120AVV207-0
Serial Number:    VNVD02G4G3R72G
Firmware Version: V24OA63A
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   6
ATA Standard is:  ATA/ATAPI-6 T13 1410D revision 3a
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Аналогичным образом можно смотреть состояние SCSI-дисков или массивов:

%# smartctl -d cciss,0 -a /dev/cciss/c0d0

Здесь:

  • cciss,0 --- первый физический диск;
  • /dev/cciss/c0d0 -- контроллер.

Другие способы узнать о состоянии дисков и массивов Smart Array перечислены здесь [4].


Подробнее:

[править] Полезные программы

  • blockdev — вызов ioctl() для блочных устройств прямо из командной строки
  • blkid — определение атрибутов блочных устройств
  • hdparm — управление параметрами контроллера IDE-дисков
Xentaur
Дисковая подсистема
Linux | FreeBSD

Диски и разделы
Файлы устройств: Блочное устройство | Символьное устройство | Raw-устройство | loop-устройство
Диски: IDE | SATA (SATA hotplug) | SCSI | USB
RAID-массивы: Аппаратный RAID | Linux RAID | FreeBSD RAID
Дисковые разделы: Раздел | MBR | fdisk | parted | disklabel | GPT

Управление томами
Логический том | Физический том | Группа томов | Снимок | Клон
device-mapper | dm-ioband | dm-crypt | dm-userspace | multipath
Системы управления томами: LVM | CLVM | EVMS | Btrfs* | ZFS* | AdvFS* | Zumastor

Сетевые хранилища и репликация
Отказоустойчивость: DRBD | Xen + DRBD | ggate + gmirror | HAST
Сетевые хранилища: AoE | iSCSI | FCoE | GNBD

Файловые системы
Монтирование | Проверка целостности | Дефрагментация | Суперблок | inode | Журнал | Кэш | VFS | UUID | FUSE
Локальные: ext3 | ext3cow | ext4 | JFS | Reiser4 | XFS | ZFS | Btrfs | AdvFS | ISO | aufs
Сетевые: NFS | CIFS | AFS | POHMELFS
Кластерные: GFS | OCFS2 | CXFS | VMFS | GPFS
Распределенные: Lustre | PVFS | Ceph | Coda

* Btrfs, ZFS и AdvFS — это файловые системы с возможностями управления томами