 | Уровень сложности: средний Вейн Хуанг, ведущий инженер по внедрению решений, IBM Хуи-Суонг Буи, начальник проекта AIX, IBM Брэд Кобб, ведущий консультант по техническим вопросам, Центр сотрудничества AIX, IBM
04.10.2007
Генерирование уникальных идентификаторов систем очень важно в мультисистемных, многораздельных ИТ-средах, существующих на сегодняшний день. Менеджер лицензионных ключей - только один пример, в котором уникальный идентификатор системы используется для вычисления лицензионного ключа. С появлением серверов, основанных на процессорах IBM POWER4 и POWER5 от IBM, большое значение максимального количества логических разделов для частного и совместного использования является востребованной особенностью.
Однако возможность конфигурировать большое число совокупностей логических разделов на каждом физическом устройстве, связанная с необходимостью иметь уникальные идентификаторы для каждого раздела, наверняка вызовет коллизию в пространстве имен идентификаторов.
IBM AIX 5L™ версии 5.3 представляет новые алгоритмы для генерации уникальных идентификаторов системы. Эта статья начинается с обзора создания уникальных значений для идентификации на текущем AIX 5L версии 5.1 и версии 5.2 , а затем представляет новый AIX 5L версии 5.3, его команды и прикладные программные интерфейсы (APIs). Эта статья полезна для поставщиков решений, изготовителей аппаратного обеспечения и ИТ-специалистов.
Введение
Изнутри генерация новых системных идентификационных номеров включает в себя использование полей из дерева устройств AIX®. Затем применяются алгоритмы для вычисления идентификационных системных номеров и строк. В следующем списке представлены свойства корневого узла дерева устройств в качестве подготовки к рассмотрению алгоритмов
- TTTT
- TTTT является 4-значным числовым (0 - 9) машинным типом.
- CC
- CC является 2-значным алфвитно-цифровым (0 - 9, A - Z) кодом предприятия-изготовителя.
- SSSSS
- SSSSS является 5-значным алфавитно-цифровым (0 - 9, A - Z) порядковым номером. Также смотрите Таблицу 2.
- P
- P - это шестнадцатиричное числовое значение (0 - 9, A - F) количества логических разделов.
Заметим, что список, представленный выше, и алгоритмы применимы только к системам от IBM, для которых значение свойства определения модели начинается с IBM и свойства идентификации системы начинается с IBM,nn (где nn - два десятичных числа). Изготовители комплектного оборудования (OEM) могут использовать эту статью как справочную для своих собственных генераторов идентификационных значений.
Команды идентификации системы в AIX 5.2 и AIX 5.1
Вы можете собрать данные, идентифицирующие систему, несколькими способами. Для того, чтобы однозначно идентифицировать машину или логический раздел, необходимо иметь один или более следующих элементов:
- Аппаратный порядковый номер
- Код завода-изготовителя
- Тип аппаратуры
- Модель аппаратуры
- Номер раздела (для логического разбиения(LPAR), динамического логического разбиения (DLPAR),
или разбиения IBM Micro-Partitioning™)
Команды и прикладные программные интерфейсы (APIs) для получения системных идентификаторов для наиболее часто используемых AIX 5L версии 5.2 и версии 5.1 описаны в следующем разделе.
Примечание:Если вы еще не знакомы с командой AIX uname и с ее возвращаемыми значениями, мы рекомендуем вам выполнить примеры из этой статьи, чтобы увидеть фактический вывод.
-
uname -m выводит машинный порядковый номер (устаревшая методика). Мы не рекомендуем использовать данную команду потому, что она не всегда гарантирует уникальность системы.
-
uname -u выводит код предприятия и машинный идентификатор
-
uname -M выводит тип и имя модели.
-
uname -L показывает уникальный номер логического раздела LPAR и уникальное для всего сервера имя LPAR.
Команды, показанные в Таблице 1, были выполнены на компьютере RS/6000® Model 260 с физическим машинным идентификатором 7043-10CABFD.
Таблица 1. Существующие системные идентификационные команды и то, что они возвращают
|
Команда
|
Выводимое значение
|
uname -u
| IBM,01 10 CABFD (Пробелы вставлены для удобочитаемости.) |
uname -M
| IBM,7043-260 |
uname -L
| -1 Null (No LPAR) |
uname -Mu
| IBM,7043-260 IBM,01 10 CABFD |
uname -MuL
| IBM,7043-260 IBM,01 10 CABFD -1 NULL |
uname -m
| 00C CABFD 4C00 (Примечание. Мы не рекомендуем использовать эту команду.) |
На используемом компьютере значение nid равно cabfd 4c. Хотя команда uname -m доступна для применения, она не рекомендуется для использования, с тех пор как пятизначного порядкового номера не всегда достаточно для однозначной идентификации системы.
Как вы можете видеть в других примерах, команда uname -u выводит код предприятия и машинный порядковый номер для лучшей идентификации системы. Вы можете добавить другие элементы данных, такие как тип аппаратного обеспечения(машины)и номер модели, как это делается в командах uname -Mu и uname -MuL.
С помощью флага -L команда выводит информацию о логическом разделе. В экспериментах с AIX 5L версии 5.1 и версии 5.2 мы используем систему с двумя процессорами RS/6000 Model 260 без поддержки разбиения на разделы; таким образом, выводимыми значениями при использовании флага -L будут -1 и NULL.
Для выработки уникального системного идентификатора для систем на основе процессоров IBM System p5 без поддержки разбиения на разделы, рекомендована следующая команда для AIX 5L версии 5.1 и версии 5.2:
В предыдущем примере использование флага команды привело к следующим результатам:
IBM,7043-260 IBM,01 10 CABFD
|
Выходная строка содержит следующие элементы:
- Тип процессора (7043)
- Модель (260)
- OF префикс (IBM,01)
- Код изготовителя (10)
- Порядковый номер (CABFD)
Другие команды и системные интерфейсы для идентификации системы
Команда lsattr полезна при запросе идентификатора AIX-системы. Следующие два теста были сделаны на машинах RS/6000 Model 260 и IBM System p5 520:
lsattr -El sys0 -a systemid (RS/6000 Model 260)
systemid IBM,01 10 CABFD Hardware system identifier False
lsattr -El sys0 -a systemid (IBM System p5 520)
systemid IBM,02 10 F190F Hardware system identifier False
|
Также можно запросить системную идентификационную иформацию через набор системных прикладных программных интерфейсов:
uname() and unamex() xutsname.nid in
struct xutsname xutsname.lognid in
struct xutsname
|
Вы можете найти полное объяснение этих структур и функций доступа в разделе
Обновленные спецификации интерфейса программирования
.
Система идентификации в новом AIX
В процессе производства IBM изменяет правила генерирования серийных номеров и переходит на следующие стандарты:
- Порядковый номер, который не содержит шестнадцатиричных значений(0 - 9, A - F)
- Независимые порядковые номера для каждого кода предприятия
Компьютеры IBM Systems развивались от простых настольных компьютеров до больших серверов с распределенным логическим разбиением и поддержкой синхронной многопоточности (SMT). Соответсвенно, возрастали требования для генерации уникальных идентификационных значений системы. Ниже предствавлен список требований, которые должны выполняться для достаточного поддержания генерации системных идентификаторов:
- Системы POWER4 имеют максимум 32 логических раздела, пронумерованных от 1 до 32.
- Системы POWER5 имеют иметь максимум 254 логических раздела,пронумерованных от 1 до 254.
- Будущие системы, возможно будут нуждаться в поддержке 1023 логических разделов.
- Будущие системы должны будут поддерживать число логических разделов от 1 до примерно 1 миллиона.
Система идентифицируется строкой TTTTMMMCCSSSSS, где:
- TTTT является 4-значным числовым типом машины (0 - 9).
- MMM является 3-значным алфавитно-цифровым номером модели (0 - 9, A - Z).
- CC является 2-значным алфавитно-цифровой кодом производителя (0 - 9, A - Z).
- SSSSS является 5-значным алфавитно-цифровым порядковым номером.
Чтобы однозначно идентифицировать систему и создать идентификатор, может понадобиться один или более элементов из предшествующего списка.
Таблица 2 показывает последовательность шагов для генерации уникального идентификатора системы для некоторых систем
Таблица 2. Генерация уникальных идентификаторов для текущих систем
|
Описание
|
Уникальный идентификатор
|
Порядковый номер
| | Существующая IBM System p5 (прежде pSeries®) система | TTTTSSSSS | 0 - 9, A - F | | IBM System p5 система | SSSSS | 0 - 9, A - F | | IBM BladeCenter® JS20 | TTTTCCSSSSS | 0 - 9, A - F
(Например, E, I, J, O, Q, S, U)
09, AF |
Примечание. Колонка Уникальный идентификатор определяет подмножество TTTTMMMCCSSSSS, которое нужно для того, чтобы надлежащим образом сгенерировать уникальный идентификатор системы:
- Значение SSSSS говорит о том, что тип машины, номер модели и код предприятия-изготовителя не нужны для создания уникального идентификатора системы.
- Значение TTTTSSSSS говорит о том, что номер модели и предприятие изготовления не требуются для создания уникального идентификатора системы.
- Значение TTTTCCSSSSS говорит о том, что номер модели не требуется для создания уникального идентификатора системы.
Таблица 3 показывает как AIX 5L представляет информацию системы.
Таблица 3. Информация о системе от AIX 5L
|
Описание
|
Уникальный идентификатор
|
Порядковый номер
| Подпрограмма unamex
xutsname.nid | 32 битный уникальный идентификатор системы | "0x0123454C" | Подпрограмма uname
utsname.machine | 32 битный уникальный идентификатор системы, представленный как строка из шестнадцатиричных символов | "0123454C" | Команда uname -m
(Примечание. Не использовать эту команду.) | "00" || 32-битный уникальный идентификатор системы, представленный как строка из шестнадцатиричных символов || "00" | "000123454C00" | Команда uname -M
| "IBM," || "TTTT" || "-" || "MMM" | "IBM,7042-681" | Команда uname -L
| имя и номер логического раздела | "2 name" |
В Таблице 4 показана идентификация, доступная в AIX 5L версии 5.3. (Специальная программа authorized program analysis report (APAR) необходима для AIX 5L версии 5.1 и версии 5.2.)
Таблица 4. Идентификация системы при помощи AIX 5L версии 5.3 (также AIX 5L версии 5.1 и AIX версии 5.2)
|
Команда
|
Описание
| Команда uname -f
| 64 битное значение, раздел/системный уникальный идентификатор представлен шестнадцатиричной символьной строкой без "0X" префикса. | Команда uname -F
| 64-х битный уникальный идентификатор системы представлен как шестнадцатиричная символьная строка без "0X" префикса. |
AIX 5L версии 5.3 также реализует новые определения следущих команд и процедур::
- Поле
unamex subroutine xutsname.nid.
- Поле
uname subroutine utsname.machine.
- Флаг
uname command -m.
Нет изменений в выводимых значениях команды uname с флагами -M, -U, или -L.
Флаги uname в AIX 5L версии 5.3, совместимые с AIX 5L версии 5.2 и версии 5.1
В AIX 5L версии 5.3 команда uname остается той же самой для флагов, упомянутых в предыдущих разделах и для двух примеров ниже.
Заметим, что выводимое значение команды uname -L теперь указывает на сегментированную машину. Этот результат совместим с результатами AIX 5L версии 5.1 и AIX 5L версии 5.2:
# uname -u
IBM,02 10 F190F
# uname -M
IBM,9111-520
# uname -L
1 testsp
# uname -MuL
IBM,9111-520 IBM,02 10 F190F 1 testsp
|
Для этого компьютера nid равен cf190f 4c и longnid равен 80001815.
Новые флаги команды uname в AIX 5L версии 5.3
Два новых флага были добавлены к команде /usr/bin/uname, основанной на обновленном подходе к созданию надежных уникальных идентификаторов системы. Эти идентификаторы предназначены только для нового аппаратного обеспечения:
- Флаг
-F отображает идентификационный номер компьютера. Эта символьная строка состоит из шестнадцатиричных знаков, которые уникальны для всех систем .
- Флаг
-f отображает идентификационный номер логического раздела. Эта символьная строка состоит из шестнадцатиричных знаков, которые уникальны для всех систем .
Примеры
# uname -F
80001815 2DF00000
# uname -f
80001815 2DF00001
|
Для этого компьютера nid равен cf190f 4c и longnid равен 8000181552DF00001.
Спецификации обновленных программных интерфейсов
Заголовочный файл /usr/include/sys/utsname.h определяет структуру, которую вы можете использовать для запроса идентификации системы и других системных данных. На AIX 5L версии 5.1 и версии 5.2, эта структура определена следующим образом:
struct xutsname {
unsigned int nid; int reserved[3];
|
Для AIX 5L версии 5.3 в структуру добавлено новое поле longnid для хранения 64-битных идентификаторов систем:
struct xutsname {
unsigned int nid;
int reserved; // to preserve size and alignment
unsigned long long longnid;
|
Единственный программный интерфейс, изменяющийся при переходе с AIX 5L версии 5.1 и версии 5.2 на версию 5.3 - это структура xutsname, которая становится членом nid, но это изменение будет прозрачным. Ее тип и размер остаются теми же. Отметим, что на новом аппаратном обеспечении есть метод, который вычисляет изменившиеся значения, сам же принцип вычисления остался неизменным.
Программное обеспечение APAR, доступное для использования с AIX 5L версии 5.1 и версии 5.2
При работе с AIX 5L версии 5.1 и версии 5.2 их можно модернизировать для использования новых команд генерации системных идентификаторов и прикладных программных интерфейсов. Связанные с этим APAR-ы:
- AIX 5L Version 5.1: IY52116
- AIX 5L Version 5.2: IY52125
Изменения в AIX 5L версии 5.1 были сделаны для совместимости, но с тех пор как системам стала нужна 64-битная идентификация, не поддерживаемая AIX 5L версии 5.1, не все возможности изменения были реализованы в AIX 5L версии 5.1.
Будущая совместимость
Общее направление развития для AIX 5L - это переход от 32-битных системных идентификаторов к 64-битным системным идентификаторам. Чтобы подготовится к этому переходу, в приложениях необходимо сделать сдедующее:
- Перейти на команды, которые возвращают 64-битные системные идентфикаторы вместо 32-битных системных идентификаторов, например
uname –f или uname -F.
- Для приложений, которые программно запрашивают идентификаторы системы:
- Начанать создавать приложения на AIX 5L версии 5.3.
- Прекратить использование
uname() subroutine.
- Прекратить использование поля nid структуры xutsname когда используется
uname() subroutine.
- Начать использовать член longnid структуры xutsname когда используется
unamex() subroutine.
- Как только переход от 32-битных на 64-битные идентификаторы системы осуществлен, все команды и программы, которые генерируют 32-битные системные идентификаторы, будут возвращать либо 0, либо строку из нулей, в зависимости от используемого интерфейса.
Заключение
Для текущего AIX 5L версии 5.1 или версии 5.2, система идентифицируется завершенной строкой данных TTTTMMMCCSSSSS или некоторыми из ее компонентов, как объяснено в разделе
Другие команды и системные интерфейсы для проверки идентификации системы
. Чтобы получить уникальный идентифкатор системы, используйте команды uname с флагами -Mu или -MuL. Флаг -L преназначен для генерации номера логического раздела.
В AIX 5L версии 5.3 добавлено два новых флага: -F and -f. Вы можете использовать выводимое значение uname -F и uname -f для однозначной идентификации любого компьютера или логического раздела на основе POWER5.
Программные интерфейсы для идентификации системы изменились в AIX 5L версии 5.3. xutsname.nid и xutsname.longnid содержат исходную и новую иформацию для идентификации системы.
Вы можете использовать изменения AIX 5L версии 5.3 для AIX 5L версии 5.1 и версии 5.2, используя связанную программу APARs.
Благодарности
- Джон O'Куин (John O'Quin), выдающийся инженер, создатель AIX, является разработчиком плана идентификации системы и алгоритмов, которые при этом используются.
- Мэтью Кронк (Matthew Cronk), разработчик ядра AIX, собственник специфиации для идентифкации операционнной системы IBM AIX.
- Люк Броунинг (Luke Browning), создатель ядра AIX, который оказал большую поддержку при создании этоя статьи и других.
- Ларри Ланкастер (Larry Lancaster) предоставил необходимую информацию.
Ресурсы Научиться
-
AIX system identification: ознакомьтесь с оригиналом статьи.(EN)
-
IBM Solution Connection: посетите этот сайт для того, чтобы найти решения, которые объединяют программное обеспечение от ведущих партнеров IBM с программным обеспечением IBM systems и технологией TotalStorage.(EN)
-
Solutions development for IBM Systems: это первичный источник для всех разработок IBM System p5 AIX.(EN)
-
AIX И UNIX: хотите больше? Сообщество developerWorks AIX и UNIX предоставляет для ознакомления десятки информативных статей и учебных курсов различной степени сложности.
-
Podcasts: оставайтесь на связи с техническими экспертами IBM.(EN)
Получить продукты и технологии
-
IBM trial software: создайте ваш следующий проект с помощью программного обеспечения IBM, доступного для загрузки прямо со страницы сообщества developerWorks.(EN)
Обсудить
Об авторах  | |  | Вэйн Хуанг (Wayne Huang) является специалистом в области электронной комерции IBM eBusiness™ и серверных операционных систем. Он предоставляет решения IBM в области промежуточного программного обеспечения и профессиональные знания о IBM System p5 UNIX поставщикам решений и разработчикам в области проектирования приложений, анализа проблем, оптимизации производительности систем, аттестации программного обеспечения. Он имеет степень магистра компьютерных наук, которую получил в Университете Техаса, город Остин (University of Texas in Austin, TX). Вы можете связаться с ним по следующему адресу huangw@us.ibm.com. |
 | |  | Хуи-Суонг Буи (Huy-Suong Bui) имеет двухлетний опыт управления проектами и наслаждается работой на своей текущей должности в IBM - начальник проекта AIX. Она является сертифицированным профессионалом в области управлением проектами (project management professional (PMP)), сертификацию прошла в Project Management Institute (PMI) и в ближайшей перспективе готовится пройти сертификацию на PMP-специалиста в IBM. Она имеет степень магистра в области управления бизнесом, которую получила в Техасском Университете (University of Texas in Austin, TX). Вы можете связаться с ней по адресу huysuong@us.ibm.com. |
 | |  | Больше чем 10 лет Брэд Кобб (Brad Cobb) помогал поставщикам решений портировать, настраивать, отлаживать и улучшать их приложения в средах разработки IBM AIX. Кроме помощи поставщикам решений, Брэд регистрировал патенты, публиковал статьи и выступал на конференциях разработчиков. Вы можете написать ему на адрес bcobb@us.ibm.com. |
Выскажите мнение об этой странице
|  |