Мне нужно иметь возможность повторять, неслучайно, однозначно идентифицировать хост сервера, который может быть произвольно виртуализирован и над которым я не контролирую.Какая уникальная, постоянная альтернатива MAC-адресу?
- MAC-адрес не работает, поскольку в некоторых виртуализованных средах сетевые интерфейсы не имеют аппаратных адресов.
- Создание файла состояния и сохранение его на диск не работает, потому что виртуальная машина может быть клонирована, что дублирует файл.
- Ключи хоста сервера SSH могут быть кандидатами. Они могут быть клонированы как файл состояния, но на практике они обычно не потому, что это такая проблема безопасности, что это ошибка, которую часто не делают.
- Существует также/var/lib/dbus/machine-id, но это зависит от dbus. (Спасибо преэтам).
- Есть cpuid, но это, очевидно, устарело. (Спасибо Бруно Агирре в Twitter).
- Имя хоста стоит рассмотреть. Многие системы, такие как Chef, уже требуют уникальных имен хостов. (Спасибо Alfie John)
Я бы хотел, чтобы решение сохранялось долгое время, и, конечно же, перезагрузка сервера и перезагрузка программного обеспечения. В конечном счете, я также знаю, что пользователи моего программного обеспечения будут обесценивать хост и хотят заменить его другим, но сохраняют непрерывность связанных с ним данных, поэтому есть причины, по которым UUID может считаться изменчивым в долгосрочной перспективе, но я не Особенно хочу, чтобы хост начал считать себя неизвестным и перерегистрироваться без причины.
Есть ли альтернативные постоянные уникальные идентификаторы для хоста?
Довольно жесткая логика, чтобы решить эту задачу. Например, если вы закроете виртуальную машину, скопируйте все ее файлы (виртуальный HD и т. Д.) На две новые машины и запустите оба без изменений, какие из них будут помечены как исходный хост? –
Какова требуемая продолжительность настойчивости? –
Существует также '/ var/lib/dbus/machine-id', но это зависит от dbus. –