что то ищешь тут паря?

среда, 8 ноября 2017 г.

mdadm по русски,также про lvm и мой первый опыт

Статью пишу для себя поэтому кому не нравится.Ну вы поняли.

ЧТО ТАКОЕ dev/mapper/
Device mapper (dm) — подсистема (модуль) ядра Linux, позволяющая создавать виртуальные блочные устройства (ВБУ).
При обращении к таким устройствам выполняется ряд действий, в число которых обычно входит чтение/запись данных с других блочных устройств (БУ).
Подсистема используется для реализации менеджера логических томов LVM, программного RAID, системы шифрования дисков dm-crypt.
Одной из возможностей подсистемы является создание снимков файловой системы

ПО ИДЕЕ рейды и шифрование можно создавать с помощю dm-crypt и т д
но все на форумах орут что нужно все делать с помощю mdadm

Приложения (такие как lvm, EVMS, mdadm), работающие в пространстве пользователя, взаимодействуют с dm с помощью библиотеки libdevmapper.so.
 Библиотека использует системный вызов ioctl() для обращения к файлу устройства /dev/mapper/control

ри обращении к этому устройству ядро вызывает подсистему dm.
 Подсистема dm работает в пространстве ядра, создаёт, изменяет и удаляет виртуальные блочные устройства (ВБУ)
 по запросам приложений. Утилита dmsetup позволяет управлять dm вручную из терминала или сценариев shell[4][5].
 Библиотека libdevmapper.so и команда dmsetup поддерживаются силами проекта LVM[6].

у меня сразу же есть
  lsmod|grep dm
dm_mirror              22124  0
dm_region_hash         20813  1 dm_mirror
dm_log                 18411  2 dm_region_hash,dm_mirror
dm_mod                123303  8 dm_log,dm_mirror


если что у меня центос7 на виртуалке

Я ТАК ПОНИМАЮ ВСЕ ЭТИ УТИЛИТЫ ИСПОЛЬЗУЮТСЯ ТОЛЬКО С lvm
https://habrahabr.ru/post/240097/ вот тут статья показывает что сначала шифруем раздел потом подключаем с помощю LVM

кароче я так понимаю dm-crypt всухую никто не использует
также как и рейд
https://www.linux.org.ru/forum/admin/7783880 - вот тут тип попытался и ему пишут типа "используй md raid"

The device-mapper RAID (dm-raid) target provides a bridge from DM to MD.
It allows the MD RAID drivers to be accessed using a device-mapper
interface.


вот вопросы
Есть уже готовый /dev/mapper/home-home. Нужно узнать из чего он состоит? (какие и сколько дисков)
ответ
dev/mapper/home-home — это Logical Volume. Он не состоит из дисков, а выделен в Volume Group "home".
 А вот уже Volume Group "home" «состоит» из Physical Volume'ов. Посмотреть, к какой VG относятся PV, о которых знает LVM, можно командой pvdisplay (от root'а).


ну да.можно посмотреть.вывел команду
pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2 - Physical Volume name, a device path under /dev.
  VG Name               centos  - Tag  name.  See lvm(8) for information about tag names and using tags in place of a VG, LV or PV. - кароче нужно лезть в мануал lvm VG (Volume Group) - кароче
  это сражу же можно смотреть в lvm
  PV Size               <5,00 GiB / not usable 3,00 MiB - ну это понятно PV (Physical Volume)
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              1279
  Free PE               0
  Allocated PE          1279
  PV UUID               QIb9wM-Af1B-CiD8-m4wt-Q9oN-L3dk-DtBiSa

  АГА.в мануале написано что лучше давать pvs
  pvs(8) is a preferred alternative that shows the same information and more, using  a  more
       compact and configurable output format.
pvs
  PV         VG     Fmt  Attr PSize  PFree
  /dev/sda2  centos lvm2 a--  <5,00g    0

ну хуй его знает.меньше информативно



Кароче mdadm нет в базовой установке и когда даю поиск
 yum search mdadm
mdadm.x86_64 : The mdadm program controls Linux md devices (software RAID arrays)
mdadm (от англ. multiple devices, ранее — mdctl) — утилита для управления программными RAID-массивами в Linux.
С помощью mdadm можно выполнять следующие операции:
create — создание RAID-массива из нескольких дисков (с суперблоком на каждом устройстве).
assemble — сборка (ранее созданного) массива и его активация. Диски из которых собирается массив могут указываться явно или будет выполнен их автоматический поиск. mdadm проверяет,
 образуют ли компоненты корректный массив.

build — объединение дисков в массив (без суперблоков). Для таких массивов mdadm не различает создание и последующую сборку. Также невозможно проверить,
были ли указаны необходимые устройства в верном порядке. Не используйте этот режим, если вы не знаете зачем это нужно.

manage — управление массивом: добавление новых свободных дисков (spares) и удаление неработоспособных (faulty devices).

follow, monitor — следить за одним или несколькими md-устройствами и реагировать на изменение их состояния. Это имеет смысл только для массивов уровней 1, 4, 5, 6
 или multipath-массивов, так как только они могут иметь различные состояния. raid0 или linear не могут иметь недостающих, запасных или сбойных дисков, поэтому там не за чем следить.

grow — расширение или уменьшение размера (shrink) массива, либо иное его реформирование (reshape). На данный момент поддерживается изменение активного размера компонентов в RAID-массивах уровней 1/4/5/6, а также изменение количества активных устройств в RAID1.
Кроме того, доступны и некоторые другие виды операций, например, просмотр и модификация суперблоков массива и остановка активных массивов.



RAIDing with LVM vs MDRAID - pros and cons?
https://unix.stackexchange.com/questions/150644/raiding-with-lvm-vs-mdraid-pros-and-cons


вот тут вопросы.типа блять нахуй md если есть lvm (ответы 2015 года но все равно)
LVM-RAID is actually mdraid under the covers. - типа лвм рейд это мдрейд под прикрытием)
LVM-RAID на самом деле mdraid под обложками. Он в основном работает, создавая два логических тома на одно RAID-устройство
(одно для данных, называемое «rimage», одно для метаданных, называемое «rmeta»).
Затем он передает их существующим драйверам mdraid. Поэтому такие вещи, как обработка ошибок чтения диска, балансировка нагрузки ввода-вывода и т. Д.,
Должны быть достаточно зрелыми. Это хорошие новости.
Например, в Debian Wheezy, lvs не может сообщить вам статус синхронизации RAID5.
Текущие версии LVM-RAID не поддерживают сокращение (lvreduce) логического тома RAID.
Они также не поддерживают изменение количества дисков или уровня RAID (lvconvert дает сообщение об ошибке, которое пока не поддерживается).
Некоторые другие функции mdraid отсутствуют, и особенно вы не можете настроить все параметры, которые вы можете использовать с помощью mdadm.
ну типа 2 года назад mdraid рулил!
Some other mdraid features aren't present, and especially you can't customize all the options you can in with mdadm.
Играя с моим Jessie VM, я отключил (фактически) один диск. Это сработало, машина осталась бежать. lvs, однако, не указывал на то, что массивы деградировали.
кароче у lvs были проблемы постоянно
Осталось работать (это raid6).
 Повторно подключен, по-прежнему нет указаний от lvs.
 Я запустил lvconvert - исправил объем, он сказал, что все в порядке.
 Затем я вытащил третий диск ... и машина скончалась. Вновь вставлен, перезагружен, и теперь я не уверен, как это исправить.
 mdadm -force -assemble исправит это; ни у vgchange, ни у lvchange нет такой опции (lvchange acceptsforfor, но, похоже, ничего не делает).
 Даже пытающийся dmsetup напрямую связать таблицу сопоставления с ядром, я не мог понять, как его восстановить.


Also, mdadm is a dedicated tool just for managing RAID. LVM does a lot more, but it feels (and I admit this is pretty subjective) like the RAID functionality has sort of been shoved in there; it doesn't quite fit.

кароче мдадм - чисто для рейда так как на 15 год у лвм с этим все не ОК.не сообщает о дегрейде.не сообщаем о том что стал в рейд и т д
после установки посмотрю на lvm2 что там изменилось:

rpm -ql mdadm
/etc/cron.d/raid-check
/etc/libreport/events.d/mdadm_event.conf
/etc/sysconfig/raid-check
/usr/lib/systemd/system-shutdown/mdadm.shutdown
/usr/lib/systemd/system/mdadm-grow-continue@.service
/usr/lib/systemd/system/mdadm-last-resort@.service
/usr/lib/systemd/system/mdadm-last-resort@.timer
/usr/lib/systemd/system/mdmon@.service
/usr/lib/systemd/system/mdmonitor.service
/usr/lib/tmpfiles.d/mdadm.conf
/usr/lib/udev/rules.d/63-md-raid-arrays.rules
/usr/lib/udev/rules.d/65-md-incremental.rules
/usr/sbin/mdadm
/usr/sbin/mdmon
/usr/sbin/raid-check
/usr/share/doc/mdadm-4.0
/usr/share/doc/mdadm-4.0/COPYING
/usr/share/doc/mdadm-4.0/ChangeLog
/usr/share/doc/mdadm-4.0/TODO
/usr/share/doc/mdadm-4.0/mdadm.conf-example
/usr/share/doc/mdadm-4.0/mdcheck
/usr/share/doc/mdadm-4.0/syslog-events
/usr/share/man/man4/md.4.gz
/usr/share/man/man5/mdadm.conf.5.gz
/usr/share/man/man8/mdadm.8.gz
/usr/share/man/man8/mdmon.8.gz
/var/run/mdadm

вот что у нас проинсталилось
ага.есть службы монитор и т д
есть файл конфига
также устанавливается проверка в кроне
# Run system wide raid-check once a week on Sunday at 1am by default
0 1 * * Sun root /usr/sbin/raid-check

/etc/cron.d/raid-check (END)

утилита проверяем каждую ноч рейд.неплохо!

# Save /proc/mdstat in case of crash in mdadm/mdmon

EVENT=post-create component=mdadm
        cat /proc/mdstat >> mdstat_data
        echo "Saved output of /proc/mdstat"
/etc/libreport/events.d/mdadm_event.conf (END)

если будет креш то запишем в mdstat_data 

/usr/lib/systemd/system-shutdown/mdadm.shutdown
#!/bin/sh
# We need to ensure all md arrays with external metadata
# (e.g. IMSM, DDF) are clean before completing the shutdown.
/usr/sbin/mdadm --wait-clean --scan

когда делаем шатдаун вот так у нас все делается


#  This file is part of mdadm.
#
#  mdadm is free software; you can redistribute it and/or modify it
#  under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2 of the License, or
#  (at your option) any later version.

[Unit]
Description=Manage MD Reshape on /dev/%I
DefaultDependencies=no

[Service]
ExecStart=/usr/sbin/mdadm --grow --continue /dev/%I
StandardInput=null
StandardOutput=null
StandardError=null
KillMode=none
/usr/lib/systemd/system/mdadm-grow-continue@.service (END)
grow — расширение или уменьшение размера (shrink) массива, либо иное его реформирование (reshape). 

[Unit]
Description=Activate md array even though degraded
DefaultDependencies=no
Conflicts=sys-devices-virtual-block-%i.device

[Service]
Type=oneshot
ExecStart=/usr/sbin/mdadm --run /dev/%i
/usr/lib/systemd/system/mdadm-last-resort@.service (END)

запускает массив даже если он разомкнут(чтоб просто блять работал)



[Unit]
Description=Timer to wait for more drives before activating degraded array.
DefaultDependencies=no
Conflicts=sys-devices-virtual-block-%i.device

[Timer]
OnActiveSec=30
/usr/lib/systemd/system/mdadm-last-resort@.timer (END)
ждем других жестких дисков 




[Unit]
Description=MD Metadata Monitor on /dev/%I
DefaultDependencies=no
Before=initrd-switch-root.target

[Service]
# mdmon should never complain due to lack of a platform,
# that is mdadm's job if at all.
Environment=IMSM_NO_PLATFORM=1
# The mdmon starting in the initramfs (with dracut at least)
# cannot see sysfs after root is mounted, so we will have to
# 'takeover'.  As the '--offroot --takeover' don't hurt when
# not necessary, are are useful with root-on-md in dracut,
# have them always present.
ExecStart=/usr/sbin/mdmon --offroot --takeover %I
Type=forking
# Don't set the PIDFile.  It isn't necessary (systemd can work
# it out) and systemd will remove it when transitioning from
# initramfs to rootfs.
#PIDFile=/run/mdadm/%I.pid
KillMode=none
/usr/lib/systemd/system/mdmon@.service (END)
ну название говорит само за себя 
Description=MD Metadata Monitor on /dev/%I - мониторим метадату

[Unit]
Description=Software RAID monitoring and management
After=syslog.target
ConditionPathExists=/etc/mdadm.conf

[Service]
Type=forking
PIDFile=/var/run/mdadm/mdadm.pid
EnvironmentFile=-/etc/sysconfig/mdmonitor
ExecStart=/sbin/mdadm --monitor --scan -f --pid-file=/var/run/mdadm/mdadm.pid

[Install]
WantedBy=multi-user.target
/usr/lib/systemd/system/mdmonitor.service (END)

/etc/mdadm.conf - это файл для мдмонитора
а вот и как это сделать через КЛИ 
sbin/mdadm --monitor --scan -f --pid-file=/var/run/mdadm/mdadm.pid

/usr/lib/udev/rules.d/63-md-raid-arrays.rules
/usr/lib/udev/rules.d/65-md-incremental.rules
это для удева

НУ СОБСТВЕННО ТЕПЕРЬ ДАВАЙТЕ СОЗДАДИМ ЗЕРКАЛО!
systemctl enable mdmonitor
systemctl start mdmonitor
НО БЛЯТЬ ЕГО НЕТ В СЛУЖБАХ!
lvm2-lvmetad.service               loaded active running LVM2 metadata daemon
lvm2-monitor.service               loaded active exited  Monitoring of LVM2 mirrors, snapshots etc.
lvm2-pvscan@8:2.service            loaded active exited  LVM2 PV scan on device 8:2
network.service                    loaded active exited  LSB: Bring up/down networking
NetworkManager-wait-online.service loaded active exited  Network Manager Wait Online

systemctl status mdmonitor
● mdmonitor.service - Software RAID monitoring and management
   Loaded: loaded (/usr/lib/systemd/system/mdmonitor.service; enabled; vendor preset: enabled)
   Active: inactive (dead)
Condition: start condition failed at Срд 2017-11-08 19:27:28 MSK; 23s ago
           ConditionPathExists=/etc/mdadm.conf was not met
ага.нет конф файла!
cp /usr/share/doc/mdadm-4.0/mdadm.conf-example /etc/mdadm.conf

как создать массив:
https://www.digitalocean.com/community/tutorials/how-to-create-raid-arrays-with-mdadm-on-ubuntu-16-04

man lsblk
[root@localhost mapper]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0    6G  0 disk
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0    5G  0 part
  ├─centos-root 253:0    0  4,4G  0 lvm  /
  └─centos-swap 253:1    0  616M  0 lvm  [SWAP]
sdb               8:16   0    6G  0 disk
sr0              11:0    1  792M  0 rom

есть такая команда которая выводит список блочных устройств
НО Я Ж СОЗДАСЮ С СУЩЕСТВУЮЩЕГО:
https://www.centos.org/docs/5/html/Installation_Guide-en-US/s1-s390info-raid.html - 
кароче тут в статье все написано НО
у меня ЛВМ БЛЕАТЬ ПО УМОЛЧАНИЮ СОЗДАЛСЯ ПОЭТОМУ...
└─sda2            8:2    0    5G  0 part
  ├─centos-root 253:0    0  4,4G  0 lvm  /
  └─centos-swap 253:1    0  616M  0 lvm  [SWAP]

буду писать статью про ЛВМ ХОТЯ С ДРУГОЙ СТОРОНЫ у меня бут партиция не на лвм

When using LVM, if your / partition is on the LVM, it used to be necessary to have a separate /boot partition. In such a configuration, the /boot partition is not be a partition of the LVM, but rather a partition on the disk before the LVM starts. This is because boot loaders could not read files from an LVM. So you could never boot into your system on the LVM if it didn't have a separate /boot partition (see this and this for details).

MDADM призван собирать скоростные(raid 0) массивы, отказоустойчивые(raid 1), их помесь скорость+отказоустойчивость(raid 10)(есть еще несколько видов массивов).
LVM, как правильно сказал truegeek, это именно прослойка, обладающая определенным функционалом. Запихнуть LVM можно на раздел на жестком диске, на весь жесткий диск, на массив, на раздел на массиве, можно объединить(просто увеличив общий объем, но не надежность\производительность) разделы\массивы в одно пространство.

1) Другие номера MD RAID обеспечивают непрерывность работы в случае поломки физического диска.
кароче ЛВМ явно не будет рейдить /boot раздел)


КАРОЧЕ НУЖНО ВСЕ ТАКИ ДВМ

 mdadm --create --help
Usage:  mdadm --create device -chunk=X --level=Y --raid-devices=Z devices

 This usage will initialise a new md array, associate some
 devices with it, and activate the array.   In order to create an
 array with some devices missing, use the special word 'missing' in
 place of the relevant device name.

 Before devices are added, they are checked to see if they already contain
 raid superblocks or filesystems.  They are also checked to see if
 the variance in device size exceeds 1%.
 If any discrepancy is found, the user will be prompted for confirmation
 before the array is created.  The presence of a '--run' can override this
 caution.

 If the --size option is given then only that many kilobytes of each
 device is used, no matter how big each device is.
 If no --size is given, the apparent size of the smallest drive given
 is used for raid level 1 and greater, and the full device is used for
 other levels.

 Options that are valid with --create (-C) are:
  --bitmap=          -b : Create a bitmap for the array with the given filename
                        : or an internal bitmap if 'internal' is given
  --chunk=           -c : chunk size in kibibytes
  --rounding=           : rounding factor for linear array (==chunk size)
  --level=           -l : raid level: 0,1,4,5,6,10,linear,multipath and synonyms
  --parity=          -p : raid5/6 parity algorithm: {left,right}-{,a}symmetric
  --layout=             : same as --parity, for RAID10: [fno]NN
  --raid-devices=    -n : number of active devices in array
  --spare-devices=   -x : number of spare (eXtra) devices in initial array
  --size=            -z : Size (in K) of each drive in RAID1/4/5/6/10 - optional
  --data-offset=        : Space to leave between start of device and start
                        : of array data.
  --force            -f : Honour devices as listed on command line.  Don't
                        : insert a missing drive for RAID5.
  --run              -R : insist of running the array even if not all
                        : devices are present or some look odd.
  --readonly         -o : start the array readonly - not supported yet.
  --name=            -N : Textual name for array - max 32 characters
  --bitmap-chunk=       : bitmap chunksize in Kilobytes.
  --delay=           -d : bitmap update delay in seconds.
  --consistency-policy= : Specify the policy that determines how the array

                     -k : maintains consistency in case of unexpected shutdown.

Нам все таки нужно создать рейд с рабочего
сначала желательно скопировать струкруту разделов (у меня ж /dev/sda1 /dev/sda2(там где лвм))
пишут что можно сделать так если у нас МБР
If both disks are the same size and you want to mirror all the partitions, the easiest way to do so is to copy the partition table using sfdisk:
# sfdisk -d /dev/sda > partition_table
# sfdisk /dev/sdb < partition_table

как это проверить?
АГА чтоб это узнать
parted -l
Модель: ATA VBOX HARDDISK (scsi)
Диск /dev/sda: 6442MB
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: msdos
Disk Flags:

Номер  Начало  Конец   Размер  Тип      Файловая система  Флаги
 1     1049kB  1075MB  1074MB  primary  xfs               загрузочный
 2     1075MB  6442MB  5368MB  primary                    lvm


Ошибка: /dev/sdb: метка диска не определена
Модель: ATA VBOX HARDDISK (scsi)
Диск /dev/sdb: 6442MB
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: unknown
Disk Flags:

Модель: Linux device-mapper (linear) (dm)
Диск /dev/mapper/centos-swap: 646MB
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: loop
Disk Flags:

Номер  Начало  Конец  Размер  Файловая система  Флаги
 1     0,00B   646MB  646MB   linux-swap(v1)


Модель: Linux device-mapper (linear) (dm)
Диск /dev/mapper/centos-root: 4719MB
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: loop
Disk Flags:

Номер  Начало  Конец   Размер  Файловая система  Флаги
 1     0,00B   4719MB  4719MB  xfs

From the man page parted can create (and thus hopefully identify) the following types of partition table (or more broadly `disk label'):
bsd
dvh
gpt    - this is a GPT partition table
loop   - this is raw disk access without a partition table
mac
msdos  - this is a standard MBR partition table
pc98
sun
sfdisk - partition table manipulator for Linux
утилита для того чтоб мы перенесли структуру разделов:
(потом попробую просто втупую на весь винт если можно)

вообщем мы сделаем так
# sfdisk -d /dev/sda > partition_table
# sfdisk /dev/sdb < partition_table
НЕТ.НЕПОДХОДИТ.У МЕНЯ ТАМ КАКАЯ ТО ДРУГАЯ СТРУКТУРА РАЗДЕЛОВ

в базовой интерпретации рейд создается так



https://serverfault.com/questions/250839/deleting-all-partitions-from-the-command-line
Сдесь как удалять таблицу разделов

dd if=/dev/zero of=/dev/sdb bs=1 count=64 seek=446 conv=notrunc - вот так я убил таблицу разделов


To create a RAID device, edit the /etc/mdadm.conf file to define appropriate DEVICE and ARRAY values:
DEVICE /dev/sd[abcd]1
ARRAY /dev/md0 devices=/dev/sda1,/dev/sdb1,/dev/sdc1,/dev/sdd1

АГА! РЕЙДУ НАС ЭТО /dev/md0!!!

потом делаем в конф файле
DEVICE /dev/sd[ab]1 /dev/sd[ab]2
ARRAY /dev/md0 devices=/dev/sda1,/dev/sdb1,/dev/sda2,/dev/sdb2
те просто перечисляем девайсы и кто будет в аррее

mdadm -C /dev/md0 --level=raid1 --raid-devices=1 /dev/sda1
mdadm: '1' is an unusual number of drives for an array, so it is probably
     a mistake.  If you really mean it you will need to specify --force before
     setting the number of drives.

хочу поставить пока один девайс в рейде а потом добавить миссинг но так не получается

если делать так
mdadm -C /dev/md0 --level=raid1 --raid-devices=2 /dev/sda1 missing /dev/sdb1
mdadm: You have listed more devices (3) than are in the array(2)!

то тоже не получается
если делать так то
mdadm -C /dev/md0 --level=raid1 --raid-devices=2 /dev/sda1 /dev/sdb1        mdadm: cannot open /dev/sda1: Device or resource busy

Try to Read this 

http://en.wikipedia.org/wiki/Mdadm

Known problems

A common error when creating RAID devices is that the dmraid-driver has taken control of all the devices that are to be used in the new RAID device. Error-messages like this will occur:

mdadm: Cannot open /dev/sdb1: Device or resource busy

типа dm-driver захватил устройство

http://xgu.ru/wiki/mdadm - тут норма мануал

https://kamaok.org.ua/?p=182 - ВОТ ЭТО КРУТАЯ СТАТЬЯ.ПО НЕЙ БУДУ ДЕЛАТЬ.
все таки в этой статье говорится что
sfdisk -d /dev/sda | sfdisk --force /dev/sdb - что нужно делать форс


смотрим есть ли модули
Подгрузка необходимыx модулей ядра
modprobe raid1
[root@localhost sasha]# modprobe raid5
[root@localhost sasha]# modprobe raid6
[root@localhost sasha]# modprobe raid7
modprobe: FATAL: Module raid7 not found.
 те если модуль есть он ниче не выдает.если нет выдает еррор
после sfdisk смотрим чтоб диски были одинаковые

fdisk -l

Disk /dev/sda: 6442 MB, 6442450944 bytes, 12582912 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000b7d7e

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    12582911     5241856   8e  Linux LVM

Disk /dev/sdb: 6442 MB, 6442450944 bytes, 12582912 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00000000


у меня тут все ОК

ИТАК:
у нас есть работающий диск и второй
сначала sfdisk ом копируем структуру разделов
потом проверяем модули modprobe
потом проверяем чтоб диски были похожи fdisk -l
ПОТОМ - 
Изменение типа разделов на втором жестком диске /dev/sdb на Linux raid autodetect
fdisk /dev/sdb
Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Команда (m для справки): t Номер раздела (1,2, default 2): 1 Hex code (type L to list all codes): L 0 Пустой 24 NEC DOS 81 Minix / старый bf Solaris 1 FAT12 27 Hidden NTFS Win 82 Linux своп / So c1 DRDOS/sec (FAT- 2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT- 3 XENIX usr 3c PartitionMagic 84 OS/2 скрытый ди c6 DRDOS/sec (FAT- 4 FAT16 <32M 40 Venix 80286 85 Linux расширен c7 Syrinx 5 Расширенный 41 PPC PReP Boot 86 NTFS набор томо da Данные не ФС 6 FAT16 42 SFS 87 NTFS набор томо db CP/M / CTOS / . 7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility 8 AIX 4e QNX4.x 2-я част 8e Linux LVM df BootIt 9 AIX загрузочный 4f QNX4.x 3-я част 93 Amoeba e1 DOS access a OS/2 Boot-менед 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi eb BeOS фс e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT f W95 расшир. (LB 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/ 10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC з 11 Скрытый FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor 12 Compaq диагност 5c Priam Edisk a9 NetBSD f4 SpeedStor 14 Скрытый FAT16 < 61 SpeedStor ab Darwin загрузоч f2 DOS вторичный 16 Скрытый FAT16 63 GNU HURD или Sy af HFS / HFS+ fb VMware VMFS 17 Скрытый HPFS/NT 64 Novell Netware b7 BSDI фс fc VMware VMKCORE 18 AST SmartSleep 65 Novell Netware b8 BSDI своп fd Автоопределение 1b Скрытый W95 FAT 70 DiskSecure Mult bb Boot Wizard скр fe LANstep 1c Скрытый W95 FAT 75 PC/IX be Solaris загр. ff BBT 1e Скрытый W95 FAT 80 Old Minix Hex code (type L to list all codes): fs Hex code (type L to list all codes): fd Changed type of partition 'Linux' to 'Linux raid autodetect' Команда (m для справки): t Номер раздела (1,2, default 2): 2 Hex code (type L to list all codes): fd Changed type of partition 'Linux LVM' to 'Linux raid autodetect' Команда (m для справки): w Таблица разделов была изменена! Вызывается ioctl() для перечитывания таблицы разделов. Синхронизируются диски.


ага.теперь понятно.
так.я поменял разделы на автодетект
fdisk -l

Disk /dev/sda: 6442 MB, 6442450944 bytes, 12582912 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000b7d7e

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    12582911     5241856   8e  Linux LVM

Disk /dev/sdb: 6442 MB, 6442450944 bytes, 12582912 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00000000

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sdb1   *        2048     2099199     1048576   fd  Linux raid autodetect
/dev/sdb2         2099200    12582911     5241856   fd  Linux raid autodetect

ПОТОМ НАКОНЕЦ ТО СОЗДАЮ РЕЙД МАССИВ(на пустом устройстве /dev/sdb)
 mdadm --create /dev/md0 --metadata=0.90 --level=1 --raid-disks=2 missing /dev/sdb1
mdadm: array /dev/md0 started.
[root@localhost sasha]# mdadm --create /dev/md1 --metadata=0.90 --level=1 --raid-disks=2 missing /dev/sdb2
mdadm: array /dev/md1 started.

у меня 2 раздела так что у меня будет 2 рейд массива

Проверка состояния нашего массива должна показать, что у нас есть три поврежденных RAID-массива ([_U] или [U_] означает, что массив поврежден, а [UU] означает, что все в порядке):
cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid6] [raid5] [raid4]
md1 : active raid1 sdb2[1]
      5241792 blocks [2/1] [_U]

md0 : active raid1 sdb1[1]
      1048512 blocks [2/1] [_U]

сканируем
 mdadm --detail --scan
ARRAY /dev/md0 metadata=0.90 UUID=ef0e2dac:6eeccfb5:bfe78010:bc810f04
ARRAY /dev/md1 metadata=0.90 UUID=4b3a5652:c0d1b1df:bfe78010:bc810f04

и добавляем это в /etc/mdadm.conf

потом
Используем dracut чтобы перестроить наш initramfs с новым mdadm.conf

Initrd (сокращение от англ. Initial RAM Diskдиск в оперативной памяти для начальной инициализации) — временная файловая система, используемая ядром Linux при начальной загрузке. Initrd обычно используется для начальной инициализации перед монтированием «настоящих» файловых систем.

ага.те мы конфим темпфс 
dracut - low-level tool for generating an initramfs image

когда делаем dracut НУЖНО ПОДОЖДАТЬ НЕНМНОГО

потом делаем фс на разделах
Создание файловые системы на созданных RAID-устройствах
ТАК КАК СВОП У МЕНЯ ВНУТРИ ВТОРОГО РАЗДЕЛА ТО Я ЕГО НЕ ДЕЛАЮ

потом копируем файлы
Копирование информации с существующих(и все еще запущенных) разделов на созданные RAID-разделы.
/boot-раздел
# mkdir /raid
# mount /dev/md0 /raid/
cd /boot/
find . -depth | cpio -pmd /raid/
sync
'sync': Synchronize data on disk with memory ================================================= 'sync' writes any data buffered in memory out to disk. This can include (but is not limited to) modified superblocks, modified inodes, and delayed reads and writes. This must be implemented by the kernel; The 'sync' program does nothing but exercise the 'sync' system call.
ага.сбрасывает все недописанное что лежить в буферах в фс на ДИКС
НО У МЕНЯ ВОПРОС нахуя блять это делать перед копированием???
а если копирование произведено то нахуя это делать после перед размонтировкой?
umount /raid/

ну это понятно

теперь тоже самое мне нужно сделать с рутом НО

lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 6G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 5G 0 part ├─centos-root 253:0 0 4,4G 0 lvm / └─centos-swap 253:1 0 616M 0 lvm [SWAP] sdb 8:16 0 6G 0 disk sr0 11:0 1 792M 0 rom

у меня своп в ЛВМЕ и рут тоже.и просто рут скопировать неполучится.нужно переносить LVM
по идее можно сделать dd
ну или нужно учить лвм

я счас наверное быстренько выучу ЛВМ и продолжу опыты.
но там дальше все легко.копируем файлы
потом прописываем фстаб
потом прописываем граб
потом перегружаемся
потом добавляем уже /dev/sda1
и там тоже меняем граб

https://www.thegeekdiary.com/redhat-centos-managing-software-raid-with-mdadm/
вот это тоже неплохая статья

ну что ж учим lvm



Комментариев нет:

Отправить комментарий