-
Notifications
You must be signed in to change notification settings - Fork 0
RAID
matveynator edited this page Mar 7, 2024
·
20 revisions
edac-util -v
edac-utils -v
curl -L "https://github.com/matveynator/sysadminscripts/raw/main/debian/megacli_8.07.14-2_all.deb" > /tmp/megacli_8.07.14-2_all.deb; dpkg -i /tmp/megacli_8.07.14-2_all.deb;
curl -L "https://github.com/matveynator/sysadminscripts/raw/main/debian/arcconf_3.07-23972_amd64.deb" > /tmp/arcconf_3.07-23972_amd64.deb; dpkg -i /tmp/arcconf_3.07-23972_amd64.deb;
megacli -AdpPR -EnblMan -a0
megacli -AdpPR -Start -a0
megacli -AdpEventLog -GetSinceReboot -warning -fatal -a0
arcconf DELETE 1 LOGICALDRIVE ALL
arcconf TASK START 1 DEVICE ALL INITIALIZE
arcconf CREATE 1 LOGICALDRIVE MAX 1 0 0 0 1 noprompt
arcconf CREATE 1 LOGICALDRIVE MAX 1 0 2 0 3 noprompt
arcconf GETCONFIG 1 PD
arcconf getconfig 1 ld
если допустим надо инициализировать диски 0-2 и 0-3 адресации после замены дисков из состояния RAW и создать диск рейд 1
arcconf TASK START 1 DEVICE 0 2 INITIALIZE
arcconf TASK START 1 DEVICE 0 3 INITIALIZE
arcconf CREATE 1 LOGICALDRIVE MAX 1 0 2 0 3 noprompt
arcconf TASK START 1 DEVICE ALL INITIALIZE
создание RAID-6 (например, на SX292) (максимальный размер, диски на Channel 0, Slot 0 - 14, без подтверждения):
arcconf CREATE 1 LOGICALDRIVE MAX 6 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0 11 0 12 0 13 0 14 0 15 0 16 0 17 0 18 noprompt
megacli -LDSetProp EnDskCache -LAll -aAll
megacli -LDSetProp WB -LALL -aALL
megacli -LDSetProp RA -LALL -aALL
megacli -LDSetProp CachedBadBBU -LALL -aALL
megacli -LDSetProp Direct -LALL -aALL
megacli -LDInfo -LALL -aALL
apt-get update; apt-get -y install curl; curl http://zabiyaka.net/f/573e3ff54fc4349425a21aa231f89004.sh > /usr/local/bin/check_megaraid_config; chmod +x /usr/local/bin/check_megaraid_config; /usr/local/bin/check_megaraid_config;
#чистим конфиг:
megacli -CfgLdDel -Lall -aAll
megacli -CfgClr -aAll
megacli -CfgForeign -Clear -a0
#делаем рейд1 из сата:
megacli -CfgLdAdd -r1 [252:0,252:1] WB RA Direct CachedBadBBU -a0
megacli -CfgLdAdd -r1 [252:2,252:3] WB RA Direct CachedBadBBU -a0
#повторяем операцию из за глюка прошивки
megacli -CfgLdDel -Lall -aAll
megacli -CfgClr -aAll
megacli -CfgLdAdd -r1 [252:0,252:1] WB RA Direct CachedBadBBU -a0
megacli -CfgLdAdd -r1 [252:2,252:3] WB RA Direct CachedBadBBU -a0
#создаем 2 отдельных диска raid0 из 2х дисков ssd (напрямую мапить не получается):
megacli -cfgldadd -r0'[252:0]' WB NORA Direct -a0 -nolog
megacli -cfgldadd -r0'[252:1]' WB NORA Direct -a0 -nolog
#ставим в загрузку рейд1 из сата:
megacli -AdpBootDrive -set -L0 -a0
#смотрим что получилось
megacli -LDInfo -Lall -Aall
megacli -PDList -Aall
megacli -PDList -aAll | egrep "Adapter #|Enclosure Device ID:|Slot Number:|Firmware state:|Raw Size:|Inquiry Data:|^$"
выполняем три команды и пишем в техподдержку чтобы меняли диск онлайн (без выключения сервера)
megacli pdoffline physdrv[252:1] a0
megacli pdmarkmissing physdrv[252:1] a0
megacli pdprprmv physdrv[252:1] a0
echo idle > /sys/block/md3/md/sync_action
mkdir -p /mnt /mnt/boot /mnt/proc /mnt/dev /mnt/sys
mount /dev/md2 /mnt/
mount /dev/md1 /mnt/boot/
mount -t proc none /mnt/proc
mount -o bind /dev /mnt/dev
mount -t sysfs sys /mnt/sys
chroot /mnt/
update-initramfs -u
update-grub
grub-install /dev/sdb
mount /dev/sdb2 /mnt/
mkdir -p /mnt /mnt/boot /mnt/proc /mnt/dev /mnt/sys
mount /dev/sdb1 /mnt/boot
mount -t proc none /mnt/proc
debootstrap --arch=amd64 buster /mnt http://ftp.us.debian.org/debian
chroot /mnt;
apt-get update;
apt-get install ssh locales vim linux-image-amd64 tzdata aptitude grub2 xfsprogs
dpkg-reconfigure locales
dpkg-reconfigure tzdata
tasksel
tasksel install standard
exit
mount -o bind /dev /mnt/dev
mount -t sysfs sys /mnt/sys
chroot /mnt
update-initramfs -u
grub-install /dev/sdd
grub-install /dev/sda
grub-install /dev/sdb
grub-install /dev/sdc
vi /etc/network/interfaces
passwd root
Восстановаление потерянного megaraid на DELL после hot-swap
#сканируем потерянные конфигурации:
#Bring bad to good
megacli -CfgForeign -Scan -aALL
#megacli -CfgForeign -Clear -aALL <- незнаю зачем????! может быть опасно?
#восстанавливаем потерянную конфигурацию
megacli -CfgForeign -Import -a0
megacli -PDList -aAll | egrep "Adapter #|Enclosure Device ID:|Slot Number:|Firmware state:|Raw Size:|Inquiry Data:|^$"
megacli -LDInfo -Lall -Aall
megacli -PDList -Aall
megacli -PDMakeGood -PhysDrv[252:7] -a0
megacli -CfgForeign -Clear -a0
megacli -PdGetMissing -a0
megacli -PdReplaceMissing -PhysDrv[252:7] -array2 -row0 -a0
megacli -PDRbld -Start -PhysDrv[252:7] -a0
megacli -PDRbld -ShowProg -PhysDrv[252:7] -a0
sgdisk -R=/dev/sdc /dev/sdb
sgdisk -G /dev/sdc
systemctl disable mdcheck_start.timer;
systemctl disable mdcheck_continue.timer;
systemctl status mdcheck_start.timer;
systemctl status mdcheck_continue.timer;
mdadm --create /dev/md2 --level=raid1 --raid-devices=2 /dev/nvme0n1p1 /dev/nvme1n1p1
mdadm --create /dev/md4 --level=raid1 --raid-devices=2 /dev/sda1 /dev/sdb1
echo "DEVICE partitions" > /etc/mdadm/mdadm.conf
mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf
update-initramfs -u
mdadm --manage /dev/md0 --add /dev/sdb1
Копируем таблицу разделов (raid1) с рабочего диска (sdb) на новый (sda):
# sgdisk -R=/dev/sda /dev/sdb
The operation has completed successfully.
Назначаем новый уникальный GUID для нового диска (/dev/sda):
# sgdisk -G /dev/sda
The operation has completed successfully.
оба жесткие диски должны иметь одинаковые схемы разбиения (sgdisk -p /dev/sda sgdisk -p /dev/sdb)
После того как разделы на новом диске соответствют разделам на рабочем диске, можно добавить их в наш SWRAID, как обычно, используя mdadm:
# mdadm -a /dev/md0 /dev/sda1
mdadm: added /dev/sda1
mdadm --create /dev/md2 --chunk=64 --level=raid1 --raid-devices=2 /dev/sdc1 /dev/sdd1
воссоздание массива md3 без потери данных:
ns361256:~# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] [faulty]
md1 : active raid1 sdb1[1] sda1[0]
1023872 blocks [2/2] [UU]
md2 : active raid1 sdb2[1] sda2[0]
67906496 blocks [2/2] [UU]
unused devices: <none>
root@ns361256 ~ $ mdadm --assemble --scan
mdadm: /dev/md/3 has been started with 1 drive (out of 2).
root@ns361256 ~ $ cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] [faulty]
md3 : active raid1 sdd1[1]
698634624 blocks [2/1] [_U]
md1 : active raid1 sdb1[1] sda1[0]
1023872 blocks [2/2] [UU]
md2 : active raid1 sdb2[1] sda2[0]
67906496 blocks [2/2] [UU]
unused devices: <none>
#resync raid1 if readonly
mdadm --readwrite /dev/md3
mdadm --manage /dev/md2 --fail /dev/sda3
mdadm --manage /dev/md2 --remove /dev/sda3
parted /dev/sda set 2 bios_grub on