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

от автора

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

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

В этой статье мы расскажем о том, как можно получить спецификацию 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 

Заключение

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

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

Читателей, которые по тем или иным причинам не могут комментировать посты на Хабре, приглашаем в наш блог.

ссылка на оригинал статьи http://habrahabr.ru/company/selectel/blog/221143/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *