Недавно я получил башню poweredge 2900 (неизвестного поколения) с контроллером perc 6i и построил и инициализировал массив raid 0 из 2 дисков sas емкостью 146 ГБ. Во время установки centos он видит и устанавливается на виртуальный диск, но после перезагрузки сервер жалуется, что не может найти загрузочное устройство.
Связано ли это с прошивкой Perc 6i (я думаю, 1.21.02) или centos не может загрузиться с виртуального диска?
ИЗОБРАЖЕНИЯ: Идентификатор распространителя: Ubuntu Описание: Ubuntu 16.10 Релиз: 16.10 Кодовое имя: yakkety, и я использую LXD из стабильного репо: lxc --...
На моем хосте у меня Ubuntu 16.10:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.10
Release: 16.10
Codename: yakkety
, и я использую LXD из стабильного репозитория:
lxc --version
2.12
В настоящее время у меня есть несколько контейнеры, созданные с помощью DIR в качестве серверной части хранилища:
root@Ubuntu-1610-yakkety-64-minimal ~ # lxc storage show default
config:
source: /var/lib/lxd/storage-pools/default
name: default
driver: dir
used_by:
- /1.0/containers/elasticsearch-internal
- /1.0/containers/yyy-dev
- /1.0/containers/yyy-pre-prod
- /1.0/containers/xxx-dev
- /1.0/containers/xxx-dev/snapshots/snap1
- /1.0/containers/mysql-dev
- /1.0/containers/mysql-dev/snapshots/snap01
- /1.0/containers/mysql-preprod
- /1.0/images/2cab90c0c342346ea154bc2e8cacdae752a70747a755ce1f2970c9a9ebb5fe8c
- /1.0/images/d51e7b34d5f470912bc45a6270278d7990b049d826e33dd8affe9b54aaf0d7ee
- /1.0/profiles/default
У меня также есть 2 жестких диска SATA III емкостью 2 ТБ, зеркалированные с помощью ZFS:
root@Ubuntu-1610-yakkety-64-minimal ~ # zpool list -v
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
lxdstorage 1.81T 361M 1.81T - 0% 0% 1.00x ONLINE -
mirror 1.81T 361M 1.81T - 0% 0%
sdc - - - - - -
sdd - - - - - -
Теперь, начиная с версии 2.12, LXD имеет новый API хранилища: lxd / storage-backend
Мне нужно переместить фактические контейнеры из DIR в хранилище ZFS. На данный момент я создал новое хранилище:
lxc storage create pool1 zfs source = lxdstorage / container
root@Ubuntu-1610-yakkety-64-minimal ~ # lxc storage list
+---------+--------+------------------------------------+---------+
| NAME | DRIVER | SOURCE | USED BY |
+---------+--------+------------------------------------+---------+
| default | dir | /var/lib/lxd/storage-pools/default | 11 |
+---------+--------+------------------------------------+---------+
| pool1 | zfs | lxdstorage/containers | 0 |
+---------+--------+------------------------------------+---------+
Как я могу переместить контейнеры из default
в pool1
?
Прямого способа сделать это до сих пор нет (сегодня версия 2.14).
Временным решением является остановка контейнера, публикация как изображения, удаление исходного контейнера и инициализация его в новом пуле хранения:
lcx stop c1
lxc lxc publish -f c1 --alias c1
lxc delete c1
lxc init c1 c1 -s <new pool>
lxc start c1
lxc image delete c1
LXC Ручная миграция с dir: на zfs: backend в Debian Stretch
Я не мог найти способ в SE, который работал у меня, похоже, у меня нет опции публикации в debian lxc.
dpkg -l lxc
# 1:3.1.0+really3.0.3-8
Мои контейнеры находятся в ext4 в / var / lib / lxc (установка по умолчанию), а мне они нужны в zfs в / tank / lxc / container
0) Остановите контейнер (ы):
lxc-stop mycontainer
1) Создайте файл /etc/lxc/lxc.conf - lxc подберет его и работает из zfs. Если вы забыли остановить контейнер (как я), переместите файл, затем остановите контейнер и снова верните этот файл
# /etc/lxc/lxc.conf
lxc.lxcpath = /tank/lxc/containers
lxc.bdev.zfs.root = tank/lxc/containers
2) Создайте наборы данных:
zfs create tank/lxc
zfs create tank/lxc/containers
3) Создайте новый контейнер с тем же именем (теперь это будет отображаться в zfs)
lxc-create mycontainer
Оказывается, mycontainer - это набор данных ZFS, который не смонтирован. Вы можете запустить его сначала, чтобы инициализировать его, или вы также можете скопировать старую конфигурацию (MAC-адрес, автозапуск и то, что вы еще установили).
4) Второй набор данных, который вы монтируете здесь, на самом деле является rootfs контейнер (!)
zfs mount tank/lxc/containers
zfs mount tank/lxc/containers/mycontainer
# this is attaching on /tank/lxc/containers/mycontainer/rootfs
5) синхронизируйте старый корень с новым
rsync -av --delete /var/lib/lxc/mycontainer/rootfs/ /tank/lxc/containers/mycontainer/rootfs/
6) скопируйте конфигурацию, если она вам нужна
cp /var/lib/lxc/mycontainer/config /tank/lxc/containers/mycontainer/config
7) размонтируйте наборы данных и запустите свой контейнер из ZFS
zfs umount tank/lxc/containers/mycontainer
zfs umount tank/lxc/containers
lxc-start mycontainer
Повторите для всех - Удачного сдерживания ZFS!