neue sysrescd version auf pxe server bereitstellen

login fai server

cd /srv/tftp/fai/iso
wget systemrescuecd-x86-[version].iso
mount -t iso9660 -o loop systemrescuecd-x86-[version].iso /mnt1
mkdir /srv/tftp/fai/images/sysresc[version]
cp /mnt1/sysrcd.dat /mnt1/sysrcd.md5 /mnt1/isolinux/initram.igz /mnt1/isolinux/rescue32 /mnt1/isolinux/rescue64 /srv/tftp/fai/images/[version]
cp -R ../sysresc44/lsi ../sysresc44/sbin /srv/tftp/fai/images/[version]
vim /srv/tftp/fai/pxelinux.cfg/default
LABEL sysresc453
MENU LABEL ^System Rescue CD 4.5.3 (network boot)
KERNEL images/sysresc453/rescue64
INITRD images/sysresc453/initram.igz
APPEND scandelay=1 netboot=nfs://10.8.1.133:/srv/tftp/fai/images/sysresc453 rootpass=XXX setkmap=de
vim /etc/exports
/srv/tftp/fai/images/sysresc[version] 10.8.0.0/13(ro,insecure,no_subtree_check) 10.27.0.0/16(ro,insecure,no_subtree_check)
exportfs -a
umount /mnt1

linux per chroot reparieren

  • VM über Controller/VNC neu starten und VNC öffnen
  • Sofort nach Neustart F12 drücken (Boot Menü)
  • iPXE auswählen
  • aus Boot Menü gewünschte Recovery auswählen, z. B. System Rescue CD und starten
  • IP Adresse des Systems merken, z. B. über ip a
  • per SSH zu IP verbinden (user: root, pass: je nach Recovery)
  • lsblk -o NAME,FSTYPE,SIZE,LABEL -> Device(s) mit den benötigten Partition auswählen, z.B.

NAME FSTYPE SIZE LABEL
vda 100G
├─vda1 1007K
├─vda2 swap 20G swap
├─vda3 ext4 10G var
└─vda4 ext4 70G system
-> vda3&4

  • Partitionen mounten

mkdir /mnt/linux
mount /dev/vda4 /mnt/linux
mount /dev/vda3 /mnt/linux/var
mount -o bind /proc /mnt/linux/proc
mount -o bind /dev /mnt/linux/dev
mount -o bind /sys /mnt/linux/sys

  • chroot ins system

chroot /mnt/linux /bin/bash

  • System kann nun repariert werden
  • chroot beenden & alle! Partitionen unmounten

exit
umount /mnt/linux/{dev,proc,sys}
umount /mnt/linux/var
umount /mnt/linux/

 

storage load tests

4k-rw-test-SSD-read-cache

#!/bin/bash
/usr/bin/fio –filename=/dev/bcache0 –direct=1 –rw=randrw –refill_buffers –norandommap –randrepeat=0 –ioengine=libaio –bs=4k –rwmixread=100 –iodepth=16 –numjobs=16 –runtime=60000 –group_reporting –name=4ktest

Verwendete Parameter:

  • filename: Verwendung einer einzelnen Datei oder eines ganzen Block Devices (Achtung: Beim Verwenden eines Block Devices wird das ganze Device überschrieben!)
  • direct: 1 = benutze non-buffered I/O, 0 = buffered
  • rw: I/O Muster, mögliche Optionen: read,write(Sequential reads/writes),randread,randwrite(Random reads/writes),readwrite(Sequential reads&writes),randrw(Random reads&writes)
  • refill_buffers: Puffer bei jedem IO-Submit neu befüllen (SSD Kompressions-Effekt umgehen)
  • norandommap: wähle neuen offset bei random I/O
  • randrepeat: 1=vorhersehbare Zufallszahlen (für konsistente Ergebnisse bei mehreren Durchläufen), 0=nicht vorhersehbare Zufallszahlen
  • ioengine: sync(read/write+fseek), psync (pread/pwrite), vsync (readv/writev), pvsync(preadv/pwritev), libaio(Linux native asynchronous), posixaio(aio_read/aio_write), u.a.
  • bs: blocksize
  • rwmixread: Anzahl Read Operationen (in Prozent)
  • rwmixwrite: Anzahl Write Operationen (in Prozent)
  • iodepth: Anzahl parallele I/O-Requests (bei libaio engine)
  • numjobs: Anzahl Prozesse die gestartet werden, um parallel Jobs auszuführen
  • runtime: Laufzeit des Tests (in Sekunden)
  • group_reporting: Ergebnisse pro Gruppe (bei Verwendung von –numjobs) anstatt pro Job
  • name: Name des Tests

4k-rw-test-HDD

#!/bin/bash
/usr/bin/fio –filename=/dev/sdd –direct=1 –rw=randrw –refill_buffers –norandommap –randrepeat=0 –ioengine=libaio –bs=4k –rwmixread=100 –iodepth=16 –numjobs=16 –runtime=60000 –group_reporting –name=4ktest

4k-rw-test-HDD-new

#!/bin/bash
/usr/bin/fio –filename=/media/data1 –direct=1 –rw=randrw –refill_buffers –norandommap –randrepeat=0 –ioengine=libaio –bs=4k –rwmixread=100 –iodepth=16 –numjobs=16 –runtime=60000 –group_reporting –name=4ktest

8k-70-30-test-SSD-read-cache

#!/bin/bash
fio –filename=/dev/bcache0 –direct=1 –rw=randrw –refill_buffers –norandommap –randrepeat=0 –ioengine=libaio –bs=8k –rwmixread=100 –iodepth=16 –numjobs=16 –runtime=60000 –group_reporting –name=8k7030test

iozone # hard core load test

#!/bin/bash
iozone -R -l 100 -u 256 -r 4k -s 1000m -F /mnt/test{1..256}

Verwendete Parameter:

  • R: generiere Excel Report
  • l: mindestzahl an zu startenden Prozessen
  • u: höchstzahl an zu startenden Prozessen
  • r: Record Size (k/m/g=Kbytes/Mbytes/Gbytes)
  • s: Größe Testdatei (k/m/g=Kbytes/Mbytes/Gbytes)
  • F: Dateinamen der Testdateien (Anzahl = Anzahl Prozesse)

weitere Informationen

Measure Ceph RBD performance in a quantitative way (part I)
NAS Server Testing, Part 2: IOZone
Gluster performance testing
Thomas Krenn Wiki: Fio
Thomas Krenn Wiki: Messen von I/O Performance
How to benchmark disk I/O
Linux Benchmarking Tools