DCImanager: Структура базы данных

Материал из ISPWiki
Перейти к: навигация, поиск

Иерархия: DCImanager -> Разработчику
DCImanager Enterprise -> Разработчику

Содержание

Описание

В DCImanager для обеспечения целостности данных используются внешние ключи с разным типом связанности (удаление ссылающихся на объект записей при удалении объекта, запрет на удаление записей при наличии ссылок на них). Таблицы имеющие префикс v_* являются представлениями. Таблицы в DCImanager можно разделить на несколько типов:

  • базовые объекты;
  • серверы;
  • инвентаризация;
  • оборудование;
  • типы серверов;
  • сети;
  • статистика;
  • служебные записи.

Часть таблиц и полей таблиц не описывается в статье, так как используется только для внутренних нужд. Структура базы данных может меняться в соответствии с расширением функционала. Со временем могут добавляться дополнительные таблицы, поля. Возможно, что прямые ссылки на другие таблицы могут быть заменены на таблицы для хранения взаимосвязей "многие ко многим".

Структура базы данных

Базовые объекты

location

Локации

  • id — код записи
  • name — наименование
  • mainip — главный IP адрес
  • ip_block - тип IP адресов
  • ssh_port - номер ssh порта
  • admusr — имя супер пользователя
  • comment — комментарий
  • setup_problem — есть ли проблемы при установке
  • serversearch_enabled — включен ли поиск серверов
  • serversearch_ip — IP адрес DCImanager для поиска серверов
  • serversearch_mask — сетевая маска для поиска серверов
  • serversearch_iprange — диапазон IP-адресов для поиска серверов
  • serversearch_gateway — шлюз для поиска серверов
  • nameservers — отдельные сервера имён для локации

racks

Стойки

  • id — код записи
  • name - наименование
  • owner — код владельца. Ссылка на таблицу users
  • type - тип стойки
  • pos_left — координата по x
  • pos_top — координата по y
  • pos_angle — угол наклона
  • placed - размещено устройство на карте ЦОД или нет
  • location — код локации. Ссылка на таблицу location
  • temperature - температура
  • humidity - влажность
  • notes - примечание
  • srvsearch — разрешен ли поиск серверов
  • racksize - размер стойки
  • servicesize - размер служебного оборудования
  • height — высота стойки в юнитах

sellers

Продавцы

  • id — код записи
  • name - имя

users

Пользователи

  • id — код записи
  • name - имя
  • password - пароль
  • level — уровень доступа
    • 16 — пользователь
    • 17 — оператор
    • 29 - администратор
  • enabled — включен или нет

iso

ISO-образы

  • id — код записи
  • name - наименование
  • user — код владельца. Ссылка на таблицу users
  • filename - путь к директории с образов
  • size — размер образа
  • deletetime — время, когда образ будет удален
  • shared — является ли образ общедоступным
  • description - описание
  • status — статус
    • 0 - образ скачивается
    • 1 - образ готов к работе

Серверы

servers

Серверы

  • id — код записи
  • name - наименование
  • ip — IP-адрес
  • hostname — доменное имя
  • mac — MAC-адрес
  • notes - примечание
  • dmi_mem - оперативная память
  • dmi_proc - процессор
  • chassis_templ - код типа платформы. Ссылка на таблицу chassis_templ
  • parent_chassis - родительское шасси. Ссылка на таблицу servers
  • gen_chassis_name — имя конфигурации
  • is_broken_srv — сломан ли сервер
  • sent_to_repair — отправлен ли сервер в ремонт
  • oper_fail_problem — есть ли проблемы при выполнении операций
  • start_operation - наименование начавшейся операции
  • cancel_operation — наименование отмененной операции
  • last_add_ip — последний добавленный IP-адрес
  • last_remove_ip - последний удаленный IP-адрес
  • last_power_action — последнее действие с питанием
  • localspeed — скорость локального соединения
  • user_notes - пользовательское примечание
  • rack — код стойки. Ссылка на таблицу racks
  • owner — код владельца. Ссылка на таблицу users
  • disabled — отключен ли сервер
  • manual_dis — отключен ли вручную
  • cpu - процессор
  • cpucnt — количество процессоров
  • corecnt — количество ядер
  • cpuperf — производительность процессора
  • type — код типа сервера. Ссылка на таблицу typelist
  • ram - оперативная память (по результатам диагностики)
  • chassis_ram — оперативная память (зависит от типа платформы)
  • ramperf - производительность оперативной памяти
  • raid - включен ли аппаратный RAID
  • is_new — новый сервер или нет
  • hwid - id сервера
  • motherboard — материнская плата
  • os — операционная система
  • search_state - состояние для поиска серверов
  • hwproblem — имеются ли проблемы с оборудованием
  • forcelock — защищен ли сервер
  • srvsize - размер
  • srvsize2 — размер (старые типы серверов)
  • seller - код продавца. Ссылка на таблицу sellers
  • purchasedate- дата закупки
  • warranty — гарантия (мес.)
  • price - цена
  • sellerserial — серийный номер
  • is_write_off - сломан ли сервер
  • wwn — код wwn сервера. Ссылка на таблицу wwn
  • temperature - температура
  • humidity - влажность
  • tempdate — дата измерения температуры
  • tempsource — источник температуры
  • vlan_net - код VLAN. Ссылка на таблицу vlans
  • unit — номер юнита
  • unit2 — номер юнита (старые типы серверов)
  • ip_block — тип IP-адресов
  • allow_netflow — разрешен ли netflow
  • hwerror - информация об ошибке
  • is_miltinode — является ли сервер шасси
  • parent - шасси
  • idelivery — код поставки. Ссылка на таблицу idelivery
  • placement - размещение
  • write_off_date — дата поломки сервера
  • recipe_running - запущен ли рецепт
  • start_recipe — дата запуска рецепта
  • recipe — наименование рецепта
  • raid_error — есть ли ошибки RAID

server2server

Таблица для связи двух серверов

  • src — код первого сервера. Ссылка на таблицу servers
  • dst — код второго сервера. Ссылка на таблицу servers

chassis_templ

Типы платформ

  • id — код записи
  • name - название
  • hdd_count — количество HDD слотов
  • pci_count — количество PCI слотов
  • cpu_socket_count — количество CPU сокетов
  • max_ram — максимальный размер RAM
  • chassis_type - тип
  • blade_count — количество слотов под серверы
  • srvsize - размер сервера

connections

Подключения сервера

  • id — код записи
  • server - код сервера. Ссылка на таблицу servers
  • port — занимаемый порт
  • service — закрытое или нет подключение

cpu_server_slot

Процессоры, установленные в серверы

  • id — код записи
  • server - код сервера. Ссылка на таблицу servers
  • cpu_type — код процессора. Ссылка на таблицу cpu_type
  • number — номер, занимаемого слота

cpu_to_types

Процессоры (Используется для типов серверов)

  • id — код записи
  • type — код типа сервера. Ссылка на таблицу typelist
  • cpu - наименование

cpu_type

Процессор (Используется для новых серверов)

  • id — код записи
  • name — полное наименование
  • corecnt — количество ядер
  • notes - примечание
  • alias_name — сокращенное наименование

cpulist

Список процессоров (Таблица заполняется после прохождения диагностики)

  • id — код записи
  • name — наименование
  • corecnt — количество ядер

hddlist

Список жестких дисков (Таблица заполняется после прохождения диагностики)

  • id — код записи
  • hdd - наименование
  • server - код сервера. Ссылка на таблицу servers
  • size - размер
  • perf - производительность
  • smart — SMART параметры

hdd_server_slot

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

  • id — код записи
  • server - код сервера. Ссылка на таблицу servers
  • hdd_type — код жесткого диска. Ссылка на таблицу hdd_type
  • number - номер занимаемого слота
  • isdiag — проведена ли диагностика

hdd_standart

Типы жестких дисков

  • id — код записи
  • name - наименование
  • perfomance — скорость чтения
  • smart - параметры SMART
  • isdiag - проведена ли диагностика

hdd_type

Жесткий диск

  • id — код записи
  • name - наименование
  • size - размер
  • type — код типа. Ссылка на таблицу hdd_standart
  • standart — код типа. Ссылка на таблицу hdd_standart

hddperfom

Производительность жестких дисков

  • id — код записи
  • server_slot — код слота. Ссылка на таблицу hdd_server_slot
  • perf - производительность
  • smart — параметры SMART
  • serial — серийный номер

pci_server_slot

PCI-устройства, установленные в серверы

  • id — код записи
  • server - код сервера. Ссылка на таблицу servers
  • pci_type — код типа pci-устройства. Ссылка на таблицу pci_type
  • number - номер занимаемого слота

pci_type

Типы PCI-устройств

  • id — код записи
  • name - наименование
  • type — наименование типа

wwn

Wwn

  • id — код записи
  • name - wwn

Инвентаризация

Данные заносятся в таблицы с префиксом i* при наличии в конфигурационным файле «Option InventoryModule». Если в конфигурационном файле есть «Option OldSpares», то данные по запчастям будут заноситься в таблицы spare_history, spares, spares_categories, spares_types. В данной статье описываются таблицы с префиксом i*, т.к. таблицы без префикса имеют подобный набор полей.

icategory

Категории запчастей

  • id — код записи
  • name — наименование

idelivery

Поставки

  • id — код записи
  • date - дата
  • iseller — код поставщика. Ссылка на таблицу iseller
  • photo_path — путь к файлу с накладной
  • name - наименование
  • overall_price — цена

ifile

Таблица хранит hash файлов, указанных в поставке

  • id — код записи
  • hash — hash записи
  • idelivery — код поставки. Ссылка на таблицу idelivery

inventory

Инвентаризация

  • id — код записи
  • name - наименование
  • date - дата

inventory_object

Объекты инвентаризации

  • id — код записи
  • name - наименование
  • type - тип объекта
    • 0 — стойка
    • 1 - запчасть
  • status - статус
  • inventory - код инвентаризации. Ссылка на таблицу inventory
  • inventorized — инвентаризован или нет

inventory_object_snapshot

Подробности инвентаризации объекта

  • id — код записи
  • serial - серийный номер
  • inventory_object — код объекта. Ссылка на таблицу inventory_object
  • fact - фактическое значение (найден ли объект)
  • dbvalue - значение с БД (найден ли объект)
  • notes — примечание

iseller

Поставщики

  • id — код записи
  • name - наименование

ispare

Запчасти

  • id — код записи
  • ispare_type — код типа. Ссылка на таблицу ispare_type
  • idelivery - код поставки. Ссылка на таблицу idelivery
  • purchasedate — дата закупки
  • serial — серийный номер
  • status - статус
    • 0 — новая запчасть
    • 1 — подтвержденная запчасть
  • placement — размещение
    • 0 — в инвентаризации
    • 1 — в сервере
    • 2 — в оборудовании
    • 3 — уничтожено
    • 4 — сломано
    • 5 — в ремонте
    • 6 - неизвестно
  • price - цена
  • servers - код сервера. Ссылка на таблицу servers
  • equipment — код оборудования. Ссылка на таблицу equipment
  • broken - сломана или нет
  • note - примечание

ispare_category

Категории запчастей (убраны)

  • id — ко записи
  • name - наименование

ispare_type

Типы запчастей

  • id — код записи
  • name - наименование
  • ispare_category — код категории. Ссылка на таблицу ispare_category

Оборудование

equipment

Оборудование

  • id - код записи
  • name - наименование
  • ip — ip адрес
  • hostname - url адрес
  • snmpuser — snmp пользователь
  • snmppass - snmp пароль
  • snmppriv — snmp уровень доступа
  • snmpversion - snmp версия
  • snmpcommunity — snmp community
  • snmpauthlevel — snmp уровень авторизации
  • telnetuser — telnet пользователь
  • telnetpass — telnet пароль
  • sshuser — ssh пользователь
  • sshpass — ssh пароль
  • rack — код стойки. Ссылка на таблицу racks
  • owner — код владельца. Ссылка на таблицу users
  • type — тип устройства
  • device - устройство
  • notes - примечания
  • statdate — дата сбора статистики
  • eqsize - размер в стойке
  • seller — код поставщика. Ссылка на таблицу sellers
  • purchasedate — дата покупки
  • warranty - гарантия (в месяцах)
  • price - цена
  • is_service — служебный или нет
  • log_path - файл журнала
  • pos_left — координата по x
  • pos_top — координата по y
  • pos_angle — угол наклона
  • width - ширина
  • depth - глубина
  • height — высота
  • placed - размещено устройство на карте ЦОД или нет
  • unit — номер занимаемого юнита
  • sellerserial — серийный номер
  • stat_poll_type - способ сбора статистики
  • status_poll_type — способ получения информации о текущем статусе
  • web_url — url веб-интерфейса
  • con_fail_problem — есть ли проблемы при установке связи
  • wsman_user - wsman пользователь
  • wsman_pass - wsman пароль
  • wsman_port - wsman порт
  • is_ip_alloc — занимает ip адрес или нет
  • pseudourl — имя файла, используемого для проксирования IPMI
  • depr_snmppass, depr_telnetpass, depr_sshpass, depr_wsman_pass - временные копии зашифрованных паролей

eq_params

Датчики оборудования

  • id — код записи
  • device — код оборудования. Ссылка на таблицу equipment
  • identity - наименование
  • strval — строчное значение
  • intval — целочисленное значение
  • floatval — значение с плавающей точкой
  • notes — примечание

eq_ports

Порты оборудования

  • id — код записи
  • device - код оборудования. Ссылка на таблицу equipment
  • identity - наименование
  • descr - описание
  • notes — примечание
  • adm_status — статус, выставленный в DCImanager
    • 0 — неизвестно
    • 1 — включен
    • 2 - выключен
  • oper_status — статус на устройстве
    • 0 — неизвестно
    • 1 — включен
    • 2 - выключен
  • isservice — Служебный порт или нет

equip2vlan

Таблица для связи таблиц оборудование и VLAN

  • equipment — код оборудования. Ссылка на таблицу equipment
  • vlans — код VLAN. Ссылка на таблицу VLAN
  • e_pvlan_type — типы VLAN
    • 0 — обычный VLAN
    • 1 - выставляется, если на разных коммутаторах этот VLAN принадлежит разным типам, хотя должен быть быть во всей сети одного типа
    • 2 — primary VLAN
    • 3 — isolated VLAN

pdu_ports

Порты pdu

  • id — код записи
  • port — номер порта
  • powercounter — счетчик питания
  • powerload — загрузка питания
  • statdate — дата последнего сбора статистики

port2port

Таблица для связи двух портов

  • link1 — код первого порта. Ссылка на таблицу switch_ports
  • link2 — код второго порта. Ссылка на таблицу switch_ports

port_agregate

Агрегация портов

  • id — код записи
  • switch_ports — код порта коммутатора. Ссылка на таблицу switch_ports
  • name - наименование
  • is_primary — первичная или нет

router_iface

Интерфейс маршрутизаторов

  • id — код записи
  • device — код оборудования. Ссылка на таблицу equipment
  • iface - интерфейс
  • net - сеть
  • notes - примечание

router_route

Таблица маршрутизации

  • id - код записи
  • device — код оборудования. Ссылка на таблицу equipment
  • ip — IP-адрес
  • dest — IP-адрес пункта назначения

router_vlan

Маршрутизация сетей

  • id — код записи
  • device — код оборудования. Ссылка на таблицу equipment
  • vid — код VLAN
  • vname — наименование VLAN

switch_ports

Порты коммутатора

  • id — код записи
  • port — номер порта
  • speed - скорость порта
  • duplex — режим порта
    • 0 - не установлен
    • 1 — полудуплекс
    • 2 — полный дуплекс
    • 3 — несогласованный
    • 4 - авто
  • if_index - индекс интерфейса
  • dot_1d_base_port — номер порта, содержащего информацию об организации моста
  • vlan — код VLAN. Ссылка на таблицу VLAN
  • mapped_vlan - код PVLAN. Ссылка на таблицу vlans
  • isuplink - uplink
  • istrunk — работает в режиме trunk
  • trunk_members — члены trunk. Ссылка на таблицу vlans

ipmi_sessions

Сессии проксирования IPMI

  • ipmi — ID IPMI, Ссылка на таблицу equipment
  • longtask — id фоновой задачи
  • user — имя пользователя на сервере проксирования, сгенерированное для этой сессии

Типы серверов

typelist

Типы серверов

  • id — код записи
  • name - наименование
  • corecnt — количество ядер
  • cpuperf — производительность процессора
  • hddcnt — количество жестких дисков
  • hddperf — производительность жестких дисков
  • hddsize — размер жестких дисков
  • ram — размер оперативной памяти
  • ramperf — производительность оперативной памяти
  • srvsize — размер в стойке
  • raid — используется ли аппаратный RAID
  • notes - примечание
  • allow_netflow — запрет netflow
  • disable_ipmi_autoadd — не добавлять IPMI автоматически
  • chassis_type - тип корпуса
  • blade_count — количество слотов под серверы
  • localspeed — скорость локального соединения
  • smart_params — параметры SMART

srvtype_check

Таблица соответствия серверов и типов серверов

  • id — код записи
  • server — код сервера. Ссылка на таблицу servers
  • startdate — дата проведения тестирования ОС для данного типа
  • type — код типа сервера. Ссылка на таблицу typelist

os_to_types

Шаблоны ОС для типов серверов

  • id — код записи
  • type - код типа сервера. Ссылка на таблицу typelist
  • os - наименование

Сети

ip

IP-адреса

  • id — код записи
  • ip - IP-адрес
  • owner — код владельца. Ссылка на таблицу users
  • domain — доменное имя
  • gateway — адрес шлюза
  • netmask — маска сети

ip2vlan

IP адреса в VLAN

  • ip — код IP-адреса. Ссылка на таблицу ip
  • vlans — код VLAN. Ссылка на таблицу vlans

vlans

VLAN

  • id — код записи
  • name - наименование
  • notes - примечание
  • is_service — защищенная сеть или нет
  • pvlan_type — тип VLAN
    • 0 — обычный VLAN
    • 1 - выставляется, если на разных коммутаторах этот VLAN принадлежит разным типам, хотя должен быть быть во всей сети одного типа
    • 2 — primary VLAN
    • 3 — isolated VLAN

net_vlans

Сети VLAN

  • id — код записи
  • vlan — код VLAN. Ссылка на таблицу vlans
  • net - сеть
  • type — тип IP-адресов
  • notes - примечание
  • was_used — использована ли сеть

lanlist

Таблица сетевых адаптеров

  • id — код записи
  • adapter — наименование адаптера
  • server — код сервера. Ссылка на таблицу servers
  • mac — MAC-адрес
  • ip — IP-адрес

mac_list

MAC-адреса

  • id — код записи
  • port - порт
  • mac - MAC-адрес

Статистика

Имеются общие поля:

  • begin — дата сбора статистики
  • processed — обработаны ли данные
  • count — количество

burstable_day

Трафик за день

  • id - код записи
  • server - код сервера. Ссылка на таблицу servers
  • date - дата, за которую собрана статистика
  • burst_in — величина входящего трафика
  • burst_out — величина исходящего трафика

bustable_stat

Трафик

  • server - код сервера. Ссылка на таблицу servers
  • date - дата, за которую собрана статистика
  • burst — величина трафика

Статистика для серверов

  • server — код сервера. Ссылка на таблицу servers

Потребление тока за день (srv_current_day) или за час (srv_current_hour)

  • current — потребление тока

Потребление питания за день (srv_power_day) или за час (srv_power_hour)

  • power — потребление питания

Трафик за день (srv_traff_day) или за час (srv_traff_hour)

  • rx — входящий трафик
  • tx — исходящий трафик
  • ip — IP-адрес

Трафик за день (srv_traff_day) или за час (srv_traff_hour)

  • rx — входящий трафик
  • tx — исходящий трафик
  • ip — IP-адрес

switch_ports_stat

Статистика для портов коммутатора

  • id — код записи
  • switch_port — код порта. Ссылка на таблицу switch_ports
  • rxcounter — rx счетчик
  • txcounter — tx счетчик
  • rxpcounter — rxp счетчик
  • txpcounter — txp счетчик
  • bitload — нагрузка на сеть (бит/с)
  • packload — нагрузка на сеть (пакет/с)
  • statdate — дата сбора статистики

temp_average_hour

Статистика по средней температуре

  • thekey — код устройства (для привязки статистики к конкретному устройству)
  • temperature - температура

overall_power_hour

Общая статистика по потреблению питания за час

  • thekey - код устройства (для привязки статистики к конкретному устройству)
  • in_power - входящее
  • out_power - исходящее

overall_traff_stat

Общая статистика по трафику

  • id — код записи
  • date - дата
  • traffload — нагрузка на сеть
  • state - состояние

rack_temp_hour

Статистика по температуре стоек vrack — код стойки. Ссылка на таблицу racks

  • temperature - температура

oper_stat

Статистика по операциям vid — код записи

  • startdate — дата начала

vendate — дата окончания

  • status - статус
  • os — шаблон
  • type - код типа сервера. Ссылка на таблицу typelist

Служебные записи

История изменений

Таблицы для сохранения истории по объектам DCImanager. Имеют ряд общих полей + поля исходной таблицы в двух вариантах: без суффикса и с суффиксом _new. В первом сохраняется исходное значение поля, во втором - новое значение.

  • reference - ссылка на запись в исходной таблице
  • username - имя пользователя, от имени которого производились изменения
  • request_ip - IP-адрес, с которого производились изменения
  • request_action - функция, которой производились изменения
  • fromdate - дата, с которой действовали прежние значения
  • changedate - дата изменения данных
  • changedfields - список полей, в которых изменились данные
  • xxx - поле со старым значением данных
  • xxx_new - поле с новым значением данных

history_ispare

Истории изменений запчастей

  • idelivery — код поставки. Ссылка на таблицу idelivery
  • purchasedate - дата закупки
  • serial — серийный номер
  • status - статус
    • 0 — новая запчасть
    • 1 — подтвержденная запчасть
  • placement — размещение
    • 0 — в инвентаризации
    • 1 — в сервере
    • 2 — в оборудовании
    • 3 — уничтожено
    • 4 — сломано
    • 5 — в ремонте
    • 6 - неизвестно
  • price - цена
  • servers — код сервера. Ссылка на таблицу servers
  • equipment — код оборудования. Ссылка на таблицу equipment

history_servers

История изменений серверов

  • name - наименование
  • ip — IP адрес
  • hostname — доменное имя
  • mac — MAC-адрес
  • is_broken_srv - сломан ли сервер
  • sent_to_repair — отправлен ли в ремонт
  • start_operation - начало операции
  • cancel_operation — прерывание операции
  • last_add_ip — последний добавленный IP адрес
  • last_remove_ip - последний удаленный IP адрес
  • last_power_action - последнее действие с питанием
  • rack — код стойки. Ссылка на таблицу racks
  • owner — код владельца. Ссылка на таблицу users
  • disabled — выключен ли сервер
  • forcelock — заблокирован ли сервер
  • is_write_off - сломан ли сервер
  • placement — размещение

tasks

Задачи

  • id - код записи
  • date - дата
  • requester — код пользователя, сделавшего запрос. Ссылка на таблицу users
  • responsible — код пользователя, решившего запрос. Ссылка на таблицу users
  • type - тип
  • state - состояние
  • notes - примечание
  • data - данные

Таблицы с уведомлениями

events_admin (для администратора), events_owner (для владельца)

  • id — код записи
  • id_problem — код проблемы