Новый выделенный сервер: приемка и проверка

Новый сервер: приемка и проверка

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

В этой статье мы расскажем о том, как можно получить спецификацию Linux-сервера в командной строке.

Общая информация о системе

Получить информацию о системе можно с помощью команды uname, которая пишет в стандартный вывод имя используемой операционной системы. Если указать одну из описанных ниже опций, на консоль будет выведена более специализированная информация о характеристиках системы:

# uname -a
Linux srv1 3.8.0-35-generic #50-Ubuntu SMP Tue Dec 3 01:24:59 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Имя операционной системы, дата компиляции ядра, версия и битность: Tue Dec 3 01:24:59 UTC 2013, 3.8.0-35-generic, i386 — 32 бита, x86_84 — 64 бита.

  • -а выводить всю возможную информацию;
  • -i показать информацию об идентификаторе ядра;
  • -m показать тип текущей аппаратной платформы;
  • -n показать имя системы;
  • -p показать тип процессорной архитектуры сервера;
  • -r показать информацию о релизе операционной системы;
  • -s показать имя используемой операционной системы;
  • -v показать информацию о версии используемой операционной систем.

Информацию об используемом дистрибутиве операционной системы можно также вывести при помощи команды cat /etc/issue:

# cat /etc/issue
Ubuntu 13.04 \n \l

Есть и другой способ просмотра информации о дистрибутиве:

# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 13.04
Release: 13.04
Codename: raring

Информация об аппаратных компонентах

Утилита lshw

Утилита lshw выводит на консоль полный список аппаратных компонентов системы вместе с информацией об устройствах. lshw включена во многие современные дистрибутивы Linux по умолчанию; если она отсутствует, ее можно установить стандартным менеджером пакетов:

# apt-get install lshw

Чтобы вывести на консоль информацию о «железе», нужно ввести следующую команду:

# lshw

Вывести эту информацию в сокращенном виде можно при помощи опции -short:

# lshw -short

С помощью lshw можно также просматривать и информацию об отдельных аппаратных компонентах системы. Для этого используется ключ -С, после которого указывается устройство, информацию о котором нужно вывести на консоль:
— процессор:

# lshw -C сpu

— память:

# lshw -C memory

— дисковая подсистема:

# lshw -C disk

Утилита lspci

С помощью утилиты lspci можно просмотреть информацию обо всех шинах PCI и подключенных к ним устройствах. Она входит в пакет pciutils, включенный в большинство современных дистрибутивов Linux; если он по каким-либо причинам отсутствует, его можно установить при помощи стандартного менеджера пакетов.

По умолчанию lspci показывает краткий список устройств; более подробную информацию можно получить при помощи многочисленных опций.

Опция -t отображает информацию о шинах и подключенных устройствах в виде дерева. В выводе будут указаны только цифровые идентификаторы устройств:

# lspci -t

-[0000:00]-+-00.0
           +-01.0-[01]--+-00.0
           |            \-00.1
           +-03.0-[02]--+-00.0
           |            \-00.1
           +-07.0-[04]--
           +-09.0-[05]--
           +-14.0
           +-14.1
           +-1c.0-[03]----00.0
           +-1d.0
           +-1e.0-[06]----03.0
           +-1f.0

Просмотреть цифровые коды устройств можно с помощью опции -n:

# lspci -n
01:00.1 0200: 14e4:1639 (rev 20)
02:00.0 0200: 14e4:1639 (rev 20)
02:00.1 0200: 14e4:1639 (rev 20)
03:00.0 0104: 1000:0079 (rev 05)
06:03.0 0300: 102b:0532 (rev 0a)

В начале каждой строки в выводе указывается код устройства в формате «:.», а далее — код в формате «:».

Чтобы в список были включены не только коды, но и имена соответствующих им устройств, указывается опция -nn:

# lspci -nn
01:00.0 Ethernet controller [0200]: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet [14e4:1639] (rev 20)
03:00.0 RAID bus controller [0104]: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] [1000:0079] (rev 05)
06:03.0 VGA compatible controller [0300]: Matrox Electronics Systems Ltd. MGA G200eW WPCM450 [102b:0532] (rev 0a)

Определить имя устройство по коду «:.» можно при помощи опции -s:

# lspci -s 03:00.0
03:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] (rev 05)

Чтобы определить устройство по коду «:,» нужно воспользоваться опцией -d:

# lspci -d 1000:0079
03:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] (rev 05)

После ключа -d можно указать только код поставщика или код устройства, например:

# lspci -d 8086:
# lspci -d :0532

В этом случае будет показан список всех устройств, соответствующих введенному коду.
Для просмотра информации о драйверах ядра, отвечающих за конкретные устройства, используется опция -k:

# lspci -k
00:1f.2 IDE interface: Intel Corporation 82801IB (ICH9) 2 port SATA Controller [IDE mode] (rev 02)
        Subsystem: Dell PowerEdge R610 SATA IDE Controller
        Kernel driver in use: ata_piix
        Kernel modules: ata_generic, pata_acpi, ata_piix
02:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)
        Subsystem: Dell PowerEdge R610 BCM5709 Gigabit Ethernet
        Kernel driver in use: bnx2
        Kernel modules: bnx2
03:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] (rev 05)
        Subsystem: Dell PERC H700 Integrated
        Kernel driver in use: megaraid_sas
        Kernel modules: megaraid_sas

Псевдофайловая система /proc

Информация об аппаратных компонентах в Linux-системах хранится в так называемой псевдофайловой системе /proc. Она называется псевдофайловой, так как является виртуальной и вообще не занимает места на накопителе. Большинство хранимых в /proc псевдофайлов представлены в понятной для человека форме. Дерево /proc используют многие программы, выводящие информацию о системе.

Процессор

Информация о процессоре хранится в псевдофайле /proc/cpuinfo. Чтобы просмотреть его содержимое, введем следующую команду:

# cat /proc/cpuinfo

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

Самый объемный и трудный для понимания раздел вывода — это, конечно же, flags (флаги). Они содержатся и в выводе команды lshw.

Рассмотрим значения наиболее важных флагов:

  • ht (HyperThreading) — поддержка технологий одновременной многопоточности; присутствует в сериях процессоров Intel Xeon, Pentium 4, Atom, Core i3, Core i5, Core i7;
  • lm (long mode) — указывается, если процессор выполнен по 64-битной технологии;
  • vmx (для Intel), svd (для AMD) — поддержка процессором технологий аппаратной виртуализации; означает наличие инструкций для предоставления прямого доступа к ресурсам процессора из гостевых систем;
  • aes — поддержка расширения системы команд AES;
  • hypervisor — указывается, если ОС запущена под гипервизором;
  • smx — поддержка технологий TXT (TPM).

Подробную информацию о значении всех флагов можно найти здесь и здесь.

Память

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

# free -m
            total   	used    free    shared  buffers  cached
Memory:     3627   	3216    410     0       107      1157
-/+ buffers/cached: 	1950   	1676
Swap:       3762        31      3731

Опция -m указывает, что объем свободной и используемой памяти нужно выводить в мегабайтах. Чтобы отображать объем в гигабайтах, нужно указать ключ -g; это удобно для серверов с большим (исчисляемым десятками, а то и сотнями гигабайт) объемом оперативной памяти.

Еще более подробная информация хранится в псевдофайле /proc/meminfo.
Вывод команды cat /proc/meminfo включает следующие основные параметры:

  • MemTotal — доступный объем оперативной памяти;
  • MemFree — показывает, какой объем памяти в данный момент не используется и доступен для выделения процессам;
  • Buffers — область памяти, в которой хранятся данные, ожидающие записи на диск;
  • Cached — объем, занятый под кэш чтения страниц с диска;
  • SwapCached — объем, который был перенесен в область подкачки, а затем перемещен обратно в оперативную память;
  • Active — объем памяти, занятый наиболее часто используемыми страницами;
  • Inactive — объем памяти, занятый страницами, которые в настоящий момент не используются;
  • Swap {total, free} — общий объем области подкачки;
  • Dirty — так называемые «грязные» страницы (т.е. находящиеся в оперативной памяти, но еще не сброшенные на диск);
  • Writeback — страницы, сбрасываемые на диск в настоящий момент;
  • AnonPages — анонимные страницы (данные, используемые программами, но не ассоциированные с каким-либо файлом);
  • Mapped — общий объем памяти, перенесенный в виртуальное адресное пространство процессов при помощи mmap;
  • Committed_AS — количество памяти, выделенное всем процессам (даже если они при этом не используют ее в полном объеме).

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

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

# fdisk -l 

Размер свободного и занятого дискового пространства во всех смонтированных файловых системах можно узнать с помощью команды df. С командой используются следующие опции:

  • -a вывести информацию обо всех файловых системах;
  • -h вывести информацию в человекочитаемом формате;
  • -T показать тип файловой системы;
  • -t вывести информацию только об указанных типах файловых систем.

Рассмотрим пример вывода команды df -h более подробно:

# df -h
Filesystem                Size  Used  Avail Use% Mounted on
/dev/mapper/vg0-vg0root   50G   15G   32G   32%  /
tmpfs                     5.9G 	0     5.9G   0%  /dev/shm
/dev/sda1                 1008M 62M   895M   7%  /boot
/dev/mapper/vg0-var       2.7T  839G  1.7T  33%  /var

Информация о размере фактического свободного пространства отображается в разделе Available. Если сложить цифры, указанные в разделах Available и Used, то полученная сумма не будет равна цифре в разделе Size. Это связано с тем, что часть дискового пространства отводится под системные файлы и метаданные.

Просмотреть подробную информацию о состоянии жесткого диска можно при помощи утилиты smartctl, включенной в официальные репозитории большинства современных дистрибутивов Linux. Для просмотра полной информации нужно ввести команду:

# smartctl -a /dev/sda

Об интерпретации вывода команды можно прочитать в этой статье.

Для отображения информации о физических томах используются команды pvdisplay, pvs и pvscan.

Команда pvscan проверяет все блочные устройства в системе на наличие физических томов:

# pvscan
  PV /dev/md0   VG vg0   lvm2 [462.96 GiB / 205.22 GiB free]
  Total: 1 [462.96 GiB] / in use: 1 [462.96 GiB] / in no VG: 0 [0   ]

С помощью команды pvdisplay можно просмотреть подробный многострочный вывод для каждого физического тома:

# pvdisplay
  --- Physical volume ---
  PV Name               /dev/md0
  VG Name               vg0
  PV Size               462.96 GiB / not usable 1.87 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              118517
  Free PE               52536
  Allocated PE          65981
  PV UUID               Idm6eZ-5vS0-IJCo-RDQq-WZNk-nJ22-eb7aDd

С помощью команды pvs можно настроить формат отображения данных (для каждого тома — одна строка).Это бывает полезно, например, при написании скриптов.

Для просмотра информации о логических томах жесткого диска используются утилиты lvs, lvscan и lvdisplay, входящие в пакет lvm2. lvm2 устанавливается при помощи стандартного менеджера пакетов:

# apt-get install lvm2

Команда lvscan выводит на консоль список всех имеющихся в системе логических томов (листинг фрагмента вывода):

# lvscan
  ACTIVE            '/dev/vg0/root' [18.62 GiB] inherit
  ACTIVE            '/dev/vg0/www' [200.00 GiB] inherit

С помощью команды lvdisplay можно вывести на консоль список атрибутов логических томов (имя, размер, разметка). Просмотреть информацию об атрибутах конкретного логического тома можно, воспользовавшись опцией -v и указав его имя (листинг фрагмента вывода):

# lvdisplay
  --- Logical volume ---
  LV Name                /dev/vg0/root
  VG Name                vg0
  LV UUID                yPtVFt-BON5-agWC-jXSr-cU4x-Tcu9-NRiwMF
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                18.62 GiB
  Current LE             4768
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

  --- Logical volume ---
  LV Name                /dev/vg0/www
  VG Name                vg0
  LV UUID                reCzuE-5dgN-A4eB-LubM-VtUA-Lclq-MUt5v6
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                200.00 GiB
  Current LE             51200
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

Команда lvs аналогична рассмотренной выше команде pvs: позволяет настроить формат отображения данных и выводит по одному тому каждой строке.

# lvs
  LV    VG   Attr   LSize   Origin Snap%  Move Log Copy%  Convert
  root  vg0  -wi-ao  18.62g
  www   vg0  -wi-ao 200.00g

Информация о состоянии активных программных RAID-массивов хранится в псевдофайле /proc/mdstat. Просмотреть его содержимое можно с помощью команды cat /proc/mdstat:

# cat /proc/mdstat

Personalities : [raid1] 
read_ahead 1024 sectors
md1 : active raid1 hda3[0] hdc3[1]
      522048 blocks [2/2] [UU]
md0 : active raid1 hda2[0] hdc2[1]
      4192896 blocks [2/2] [UU]
md2 : active raid1 hda1[0] hdc1[1]
      128384 blocks [2/2] [UU]

В рассматриваемом нами примере в системе содержится три массива. Для каждого из них в псевдофайле /proc/mdstat имеется отдельный раздел, содержащий следующую информацию:

  • имя RAID-массива;
  • состояние RAID-массива;
  • уровень массива;
  • имена физических разделов, входящих в состав массива;
  • число настроенных устройств и число работающих устройств в массиве;
  • состояние каждого работающего устройства (U означает, что устройство работает, а _ — что устройство отказало, sync — идет синхронизация).

Проверить, используется ли на сервере аппаратный RAID, можно с помощью уже знакомой нам команды lspci:

# lspci -nn | grep RAID

Если RAID используется, то на консоль будет выведен ответ типа:

02:00.0 RAID bus controller [0104]: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] [1000:0079] (rev 04)

Информацию о состоянии аппаратного RAID при помощи штатных средств операционной системы получить невозможно. Для этого существуют специальные утилиты: MegaCLI для LSI-контроллеров и Adaptec Storage Manager (asm) для adaptec. В официальные репозитории Linux-систем они не включены. Скачать megacli можно отсюда, a ASM — c сайта компании Adaptec.

Сетевые интерфейсы

Информация обо всех сетевых интерфейсах, подключенных к системе, содержится в псевдофайле /proc/net/dev. При вводе команды cat /proc/net/dev на консоль будет выведен список всех активных и неактивных сетевых интерфейсов.

Статус всех текущих интерфейсов можно просмотреть с помощью команды ip link show up.
Команда ip address выводит информацию обо всех сетевых интерфейсах:

# ip address
1: lo:  mtu 16436 qdisc noqueue state UNKNOWN
	link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
	inet 127.0.0.1/8 scope host lo
	inet6 ::1/128 scope host
  valid_lft forever preferred_lft forever
2: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
	link/ether 00:30:48:f2:7a:a0 brd ff:ff:ff:ff:ff:ff
	inet 5.178.83.252/29 brd 5.178.83.255 scope global eth0
	inet6 fe80::230:48ff:fef2:7aa0/64 scope link
  valid_lft forever preferred_lft forever
3: eth1:  mtu 1500 qdisc noop state DOWN qlen 1000
	link/ether 00:30:48:f2:7a:a1 brd ff:ff:ff:ff:ff:ff

UP означает, что интерфейс работает; NO CARRIER означает отсутствие кабеля или трансивера в порту сетевой карты. Команда ip route (сокращенный вариант — ip r) выводит на консоль таблицы маршрутизации.

# ip r
default via 88.93.16.185 dev br0
50.178.87.0/24 via 192.16.122.1 dev br0
10.0.0.0/8 via 192.16.122.1 dev br0
1.131.251.0/24 via 192.16.122.1 dev br0
192.16.122.0/24 dev br0  proto kernel  scope link  src 192.16.122.2
88.93.16.184/29 dev br0  proto kernel  scope link  src 88.93.16.186

Заключение

Эта статья является первой в цикле публикаций, посвященном проблематике настройки и администрирования веб-сервисов. В ближайшее время мы планируем опубликовать статьи об особенностях установки и оптимизации серверного ПО, диагностике неисправностей и т.п.

Мы будем рады, если в комментариях вы выскажете пожелания и предложения по тематике следующих публикаций цикла.