How to convert RAID1 to RAID0

RAID1 md volume named /dev/md2 mounted as rootfs
and two partitions named /dev/nvme0n1p4 and /dev/nvme1n1p4

We will remove second partiotion (/dev/nvme1n1p4) from raid1 members and later add it to raid0

  1. Remove partition from the mirror (make it to fail state and then remove):
    # mdadm /dev/md2 -f /dev/nvme1n1p4
    # mdadm /dev/md2 -r /dev/nvme1n1p4

  2. Extend md2 to raid0:
    # mdadm /dev/md2 --grow --level=0

  3. Add the partition of second disk back to the array md2:
    # mdadm --grow /dev/md2 --level=0 --raid-devices=2 --add /dev/nvme1n1p4

    Note:
    this operation will temporary change type of md2 to RAID4.
    That’s okay, after reshaping md2 will back to RAID0

  4. Wait for reshape to finish.

  5. /dev/md2 will automatically become RAID0 after reshape is finished.

    # mdadm -D /dev/md2
    /dev/md2:
    Version : 1.2
    Creation Time : Wed Aug 3 21:48:34 2022
    Raid Level : raid0
    Array Size : 957333504 (912.98 GiB 980.31 GB)
    Raid Devices : 2
    Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Wed Aug 24 14:11:33 2022
    State : clean
    Active Devices : 2
    Working Devices : 2
    Failed Devices : 0
    Spare Devices : 0

    Layout : -unknown-
    Chunk Size : 64K

    Consistency Policy : none

    Name : N*****1-20:2
    UUID : 14cf83f2:7e9c99e3:1114a588:18e75caa
    Events : 3373

    Number Major Minor RaidDevice State
    1 259 9 0 active sync /dev/nvme1n1p4
    2 259 4 1 active sync /dev/nvme0n1p4


    # cat /proc/mdstat
    Personalities : [raid0] [raid1] [linear] [multipath] [raid6] [raid5] [raid4] [raid10]
    md2 : active raid0 nvme0n1p4[2] nvme1n1p4[1]
    957333504 blocks super 1.2 64k chunks


  6. Grow file system:
    # resize2fs /dev/md2
    # df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/md2   898G  97G  761G 12% /

All operation processed in realtime with zero downtime.

VestaCP – vesta-nginx failed with “libc.so.6: version `GLIBC_2.14′ not found”

После очередного автоматического обновления, панель перестала отзываться.
Причиной тому были ошибки:

/usr/local/vesta/nginx/sbin/vesta-nginx: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by /usr/local/vesta/nginx/sbin/vesta-nginx)

/usr/local/vesta/php/sbin/vesta-php: /usr/lib/x86_64-linux-gnu/libxml2.so.2: version `LIBXML2_2.9.0' not found (required by /usr/local/vesta/php/sbin/vesta-php)

/usr/local/vesta/php/sbin/vesta-php: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by /usr/local/vesta/php/sbin/vesta-php)

Фикс простой и написан на форуме Весты:

# apt-get update && apt-get –reinstall install vesta-nginx vesta-php

EnhanceIO + LVM on Debian Jessie

Пакет EnhanceIO в репе experimental
https://packages.debian.org/search?searchon=names&keywords=enhanceio

# cd /usr/local/src
# aptitude install python build-essential dkms
# wget http://ftp.de.debian.org/debian/pool/main/e/enhanceio/enhanceio-dkms_0+git20130620-5_all.deb
# wget http://ftp.de.debian.org/debian/pool/main/e/enhanceio/enhanceio_0+git20130620-5_all.deb
# dpkg -i enhanceio*

Create Cache
Read more EnhanceIO + LVM on Debian Jessie

SW RAID + LVM + Flashcache on Debian Jessie

Итак, поднимаем производительность дисковой системы за счет кеширования на SSD

Имеется тазик с Debian Jessie 8 и тремя дисками:
2х SATA 2 TB – SW RAID 1-го уровня (/dev/sdb, /dev/sdc)
1x SSD 240 Gb – не размеченный диск (/dev/sda)

Поверх рейда используется LVM2 для логических разделов. Read more SW RAID + LVM + Flashcache on Debian Jessie

mdraid + mdadm + GPT+clone partitions

Итак, уже давно используются диски большого обьема. И вместо обычного MBR сейчас уже в ходу GPT.

Как известно, sfdisk не умеет работать с GPT, и в случае замены диска скопировать разделы с помощью этой утилиты уже не получится:
# sfdisk -s /dev/sda
WARNING: GPT (GUID Partition Table) detected on ‘/dev/sda’! The util sfdisk doesn’t support GPT. Use GNU Parted.

Что же делать ? Read more mdraid + mdadm + GPT+clone partitions

proxmox: qm list – нулевой размер диска

После обновления версии Proxmox до v2.2 (pve-manager/2.2/e94e95e9)
qm list стал показывать нулевой размер диска виртуальных машин:

~# qm list
      VMID NAME                 STATUS     MEM(MB)    BOOTDISK(GB) PID
       101 vm1.linevps.net      running    1024               0.00 162695
       102 vm2.linevps.net      stopped    512                0.00 19795
       103 vm3.linevps.net      running    2048               0.00 55934
       ....
       116 vm14.linevps.net     running    2048               0.00 63224 

Фикс простой: Read more proxmox: qm list – нулевой размер диска

Аппаратный рейд и Smart мониторинг дисков

Ставим пакет smartmontools и настраиваем мониторинг дисков.

При использовании аппаратного рейд контроллера Adaptec 2405.

Физические диски в системе видны как /dev/sgX. Но это в том случае, если загружен модуль sg.
Если устройст /dev/sgX нет, пробуем подгрузить модуль sg:

modprobe sg

Проверяем:

ls -la /dev/sg*
crw------- 1 root root 21, 0 Jul  5 14:41 /dev/sg0
crw------- 1 root root 21, 1 Jul  5 14:41 /dev/sg1
crw------- 1 root root 21, 2 Jul  5 14:41 /dev/sg2
crw------- 1 root root 21, 3 Jul  5 14:41 /dev/sg3
crw------- 1 root root 21, 4 Jul  5 14:41 /dev/sg4

Все нормально, диски видны.
/dev/sg0 – это непосредственно сам контроллер, sg1-sg4 – наши диски.

Теперь настраиваем smartmontools. Read more Аппаратный рейд и Smart мониторинг дисков

CPU load 100%

Заметил, что с 1 июля 2012г на одной из виртуалок cpu стал загружен на все 100%.
strace на процесс, кушающий весь проц не дало результата особого

# strace -p 27653
Process 27653 attached - interrupt to quit
futex(0x7f022b74a9d0, FUTEX_WAIT, 27655, NULL

на этом все, но заставило погуглить подобное поведение у других. В процессе поиска выявилось, что виной всему баг в ядре linux [пруф], связанный с добавлением “60-й” секунды.
Шаманство в виде остановки/запуска демона NTP, установкой руками даты и т.д. не привели к успеху, к сожалению…
Пришлось ребутить клиенту виртуалку. После физического ребута нагрузка на процессор стала нормальной.

Couldn’t find PV pv1. Check your device.map

Виртуалка на базе KVM с lvm2 внутри.
В свое время для увеличения дискового пространства был добавлен второй диск.

И вот при очередном обновлении ядра вылезла ошибка:

Running update-initramfs.
update-initramfs: Generating /boot/initrd.img-2.6.32-5-amd64
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 2.6.32-5-amd64 /boot/vmlinuz-2.6.32-5-amd64
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 2.6.32-5-amd64 /boot/vmlinuz-2.6.32-5-amd64
Generating grub.cfg ...
/usr/sbin/grub-probe: error: Couldn't find PV pv1. Check your device.map.
run-parts: /etc/kernel/postinst.d/zz-update-grub exited with return code 1
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-2.6.32-5-amd64.postinst line 799.
dpkg: error processing linux-image-2.6.32-5-amd64 (--configure):
 subprocess installed post-installation script returned error exit status 2
Errors were encountered while processing:
 linux-image-2.6.32-5-amd64

При просмотре файла /boot/grub/device.map увидел, что там указан только один диск:

# cat /boot/grub/device.map 
(hd0)   /dev/vda
#

После добавления второго диска в /boot/grub/device.map:

# cat /boot/grub/device.map 
(hd0)   /dev/vda
(hd1)   /dev/vdb

обновление завершилось без ошибок:

# aptitude safe-upgrade
The following partially installed packages will be configured:
  linux-image-2.6.32-5-amd64 
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.
Setting up linux-image-2.6.32-5-amd64 (2.6.32-35) ...
Running depmod.
Running update-initramfs.
update-initramfs: Generating /boot/initrd.img-2.6.32-5-amd64
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 2.6.32-5-amd64 /boot/vmlinuz-2.6.32-5-amd64
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 2.6.32-5-amd64 /boot/vmlinuz-2.6.32-5-amd64
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-5-amd64
Found initrd image: /boot/initrd.img-2.6.32-5-amd64
done

 

Что и требовалось.

Домены *.ua и whois

с 15 мая сервер whois.net.ua, который использовался для whois-а украинских доменов, теперь выдает информацию только о доменах *.net.ua (что в принципе, как бы логично).
В этой связи, при попытке проверить информацию о любом украинском домене можно видеть такой текст:

# whois test.ks.ua

% This server contains information for .net.ua only.
% Please, refer to whois.ua for information on other .ua subdomains.

Отныне, официальным адресом whois-сервера по доменам .UA является WHOIS.UA

А пока пакет whois не обновился (whois-сервера прописаны непосредственно в коде), проверить домены можно так:
whois -h whois.ua имя_домена.ua

В результате получим ожидаемый ответ:

# whois -h whois.ua test.ks.ua
% This is the Ukrainian Whois query server #I.
% Rights restricted by copyright.
%

% % .UA whois
% Domain Record:
% =============
domain:     test.ks.ua
admin-c:    SP999-UANIC
tech-c:     SP999-UANIC
status:     OK-UNTIL 20120309140546
nserver:    ns1.linevps.net
nserver:    ns2.linevps.net
nserver:    ns3.linevps.net
created:    0-UANIC 20090309140547
changed:    UARR169-UANIC 20110514194558
source:     UANIC