Новый выделенный сервер: приемка и проверка
Начиная работу с новым сервером, нелишним будет проверить, соответствует ли он заявленной конфигурации. Многие начинающие пользователи испытывают затруднения в случаях, когда требуется просмотреть информацию о сервере с использованием команд, доступных только в консоли.
В этой статье мы расскажем о том, как можно получить спецификацию Linux-сервера в командной строке.
Общая информация о системе Получить информацию о системе можно с помощью команды uname, которая пишет в стандартный вывод имя используемой операционной системы. Если указать одну из описанных ниже опций, на консоль будет выведена более специализированная информация о характеристиках системы:
# uname -a Linux srv1 3.8.0–35-generic #50-Ubuntu SMP Tue Dec 3 01:24:59 UTC 2013×86_64×86_64×86_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 Заключение Эта статья является первой в цикле публикаций, посвященном проблематике настройки и администрирования веб-сервисов. В ближайшее время мы планируем опубликовать статьи об особенностях установки и оптимизации серверного ПО, диагностике неисправностей и т.п.
Мы будем рады, если в комментариях вы выскажете пожелания и предложения по тематике следующих публикаций цикла.
Читателей, которые по тем или иным причинам не могут комментировать посты на Хабре, приглашаем в наш блог.
