Gå til indholdet

Alerik klustret

  • CPU: 2 st AMD opteron™ 6220 8 kärnor @3.0 Giga hurtz
  • Primär Minne: 16 slots halv bestyckade ~ 32 GB du kan kombinera 2 noder för 64 GB RAM
  • MGNT: IPMI
  • Infiniband(IB): x4 dvs 40 Gbps mellan noder. Switch med 36 portar finns. Se [[postmord]].
  • Produktsida: https://www.supermicro.com/aplus/system/2u/2022/as-2022tg-hibqrf.cfm
  • Labbnoderna sitter i rad 2 skåp 5. Även känt som skåpet som är tungt att flytta.
  • Noder i drift: knocke och smocke

Noteringar

  • Alerik noderna borde köra egen HP switch, 12 noder x 2 RJ45:or (Mgnt och ETHERNET)
  • Labbnätet (192.168.12.XYZ): DHCP-rangen börjar på .32, så om du ska sätta fasta IP:n gör det mellan .8 och .31
  • sudo arp-scan -Q 12 192.168.12.0/24 på t.ex. thor ger listan över aktiva ipmi, noder och switch
    • mellanox och supermicro
  • Behöver labbnoden ett fast ip i dhcp servern peta på systemgruppen.

Diskar per nod

Bokstav är nod relaterad. Vänster till höger sett från framsidan.

      A       B     C     D
      A2      B2    C2    D2 
       .      .     .     .
       .      .     .     .
      A0      B0    C0    D0

Labb nod setup

  • Konfigurera switchen så porten ligger på vlan 12 d.v.s. att labbnätet har 'untagged' och resten 'no'
  • Använd en live USB med önskat OS eller installera ett med PXE miljön.

IPMI

  • apt install ipmitool
  • modprobe ipmi_devintf; modprobe ipmi_si
  • ipmitool user list 1
  • ipmitool user set password 2 # 2 är id för Admin
  • Man kan logga in genom att ange authtype none dvs säkerhetsrisk.
  • Använd ipmitool lan set 1 auth loginName MD5 PASSWORD (Finns MD2 MD5 PASSWORD, Du lär köra PASSWORD eller MD5)
  • Med ipmitool, confa statisk ip, gw, subnetmask
  • Testa med ipmitool -H IP -U ADMIN <kommando att skicka in>
  • ex: ipmitool -H 192.168.12.79 -U ADMIN power on

ipmi

Styr en nod i taget. Funkar även när noden är i standby. Det är som kvm fast över internet. Brukar fixa konsol över ethernet, mounta virtuella usb/dvd images. Kan hantera moderkortet på distans t.ex reboot, cold boot etc. ipmi tools can användas som client server (mgnt NIC:en).

Maskin med ipmi kopplat till mgnt nätverket

Exempel hur en konfad burk ser ut. Notera 192.168.11.33 är mgnt nät vlan 11 dvs untagged i switchen. Samt 194.47.250.33/24 är publika ip adressen, 33 är gemensamt.

Feel free to harden the setting even more.

rocketlo@knocke ~ % sudo ipmitool lan print 1

Set in Progress         : Set Complete
Auth Type Support       : NONE MD2 MD5 PASSWORD 
Auth Type Enable        : Callback : MD2 MD5 PASSWORD 
                        : User     : MD2 MD5 PASSWORD 
                        : Operator : MD2 MD5 PASSWORD 
                        : Admin    : MD2 MD5 PASSWORD 
                        : OEM      : MD2 MD5 PASSWORD 
IP Address Source       : Static Address
IP Address              : 192.168.11.33
Subnet Mask             : 255.255.255.0
MAC Address             : 00:25:90:53:0b:cc
SNMP Community String   : public
IP Header               : TTL=0x00 Flags=0x00 Precedence=0x00 TOS=0x00
BMC ARP Control         : ARP Responses Enabled, Gratuitous ARP Disabled
Default Gateway IP      : 192.168.11.1
Default Gateway MAC     : 00:00:00:00:00:00
Backup Gateway IP       : 0.0.0.0
Backup Gateway MAC      : 00:00:00:00:00:00
802.1q VLAN ID          : Disabled
802.1q VLAN Priority    : 0
RMCP+ Cipher Suites     : 0,1,2,3,6,7,8,11,12
Cipher Suite Priv Max   : aaaaXXaaaXXaaXX
                        :     X=Cipher Suite Unused
                        :     c=CALLBACK
                        :     u=USER
                        :     o=OPERATOR
                        :     a=ADMIN
                        :     O=OEM
Bad Password Threshold  : Not Available

rocketlo@knocke ~ % ip a

4: br0: <cut>
    inet 194.47.250.33/24 brd 194.47.250.255 scope global br0

ipmi setup lathund

Notera kernel modulerna finns kanske inte i alla linux distros eller kräver extra steg. Detta script utgår ifrån debian.

#/bin/bash
echo 'start'
echo 'modprobe 2 modules'
sudo modprobe ipmi_devintf; sudo modprobe ipmi_si
echo 'ip för nodens mgnt:'
read IPMGNT
IPGW='192.168.12.1'
echo 'ip för GW:' $IPGW
NETMASK='255.255.255.0'
echo 'netmask:' $NETMASK
echo 'install ipmitools'
sudo apt update
sudo apt install ipmitool -y
echo 'list users: '
sudo ipmitool user list 1
sudo ipmitool lan print 1
echo 'wanna overwrite ADMIN passwd and set new network settings[nN or yY]?'
read choice
case $choice in
        [nN]) exit;;
        *);;
esac
echo 'Set ADMIN password: '
sudo ipmitool user set password 2
echo 'static ip: set'
sudo ipmitool lan set 1 ipsrc static
sudo ipmitool lan set 1 ipaddr $IPMGNT
sudo ipmitool lan set 1 netmask $NETMASK
sudo ipmitool lan set 1 defgw ipaddr $IPGW
echo 'Resultat: '
sudo ipmitool lan print 1
echo 'Klart! kolla och kör sen sudo ipmitool power off | cycle | soft'

ipmi commands 101

(källa: https://community.pivotal.io/s/article/How-to-work-on-IPMI-and-IPMITOOL)
(tips: https://www.xkyle.com/7-underused-ipmitool-commands/)

Purpose

The Intelligent Platform Management Interface (IPMI) is a standardized computer system interface used by System Administrators for out-of-band management of computer systems and monitoring of their operation. Out-of-band is also referred to the LOM (Lights-Out Management) involves the use of a dedicated management channel for device maintenance.

A number of options are available to manage the device remotely. There are vendor-specific server management technologies available. HP's Integrated Lights-out or iLO, Dell's Dell Remote Access Controller or DRAC and IBM's Remote Supervisor Adapter (RSA) are a few to list. The above-listed modules are vendor specific and proprietary. IPMI whereas is vendor-neutral and cross-platform. It is available on Linux distros. The functionality of IPMI can be accessed via IPMItool. IPMItool is a command prompt, which is used to manage IPMI-enabled devices. IPMItool helps in managing the system hardware components, monitoring the system health independent of the operating system.

Procedure

You can install IPMI and IPMItool via yum using the following command:

[root@anm ~]# yum install OpenIPMI OpenIPMI-tools

or in debian based systems:

apt install ipmitool

Ensure that the server is set to start during startup and start the IPMI service:

[root@anm ~]# chkconfig ipmi on 
[root@anm ~]# service ipmi start

We have some IPMItool commands, which can be used in day-to-day operations.

If you don't know which channel is your ethernet interface, just page through them one at at time, like so:

# ipmitool -I open channel info 1
Channel 0x1 info:
   Channel Medium Type   : 802.3 LAN
   Channel Protocol Type : IPMB-1.0
   Session Support       : multi-session
   Active Session Count  : 0
   Protocol Vendor ID    : 7154
   Volatile(active) Settings
   Alerting            : disabled
   Per-message Auth    : disabled
   User Level Auth     : enabled
   Access Mode         : always available
   Non-Volatile Settings
   Alerting            : disabled
   Per-message Auth    : disabled
   User Level Auth     : enabled
   Access Mode         : always available

Note that the medium type is "802.3 LAN". That's the one you want.

Common Commands

  1. Man and help info for IPMItool bash ipmitool help man ipmitool

  2. Check the firmware version bash ipmitool mc info

  3. Reset the management controller bash ipmitool mc reset [ warm | cold ]

  4. Show field-replaceable-unit details bash ipmitool fru print

  5. Show sensor output bash ipmitool sdr list ipmitool sdr type list ipmitool sdr type Temperature ipmitool sdr type Fan ipmitool sdr type 'Power Supply'

  6. Chassis management bash ipmitool chassis status ipmitool chassis identify [X ] # where X is seconds. Turn on front panel identify light (default 15s) ipmitool [chassis] power soft # initiate a soft-shutdown via acpi ipmitool [chassis] power cycle # issue a hard power off, wait 1s, power on ipmitool [chassis] power off # issue a hard power off ipmitool [chassis] power on # issue a hard power on ipmitool [chassis] power reset # issue a hard reset

  7. Modify boot device for next reboot bash ipmitool chassis bootdev pxe ipmitool chassis bootdev cdrom ipmitool chassis bootdev bios

  8. Logging bash ipmitool sel info ipmitool sel list ipmitool sel elist # extended list (see manpage) ipmitool sel clear

  9. For remote access, you need to setup user and network settings, either at boot time on the iLO or on the DRAC card itself, or from the OS via IPMI tool:

Display/reset password for default root user (userid '2′) bash ipmitool user list 1 ipmitool user set password 2

  1. Display/configure lan settings bash ipmitool lan print 1 ipmitool lan set 1 ipsrc [ static | dhcp ] # static för labbnät är reckomenderat ipmitool lan set 1 ipaddr {192.168.12.XYZ} ipmitool lan set 1 netmask {YOUR NETMASK} #255.255.255.0 ipmitool lan set 1 defgw ipaddr 192.168.12.1

    After configuring the lan settings you should be able to connect remotely using the 'lan' interface of IPMItool.

    The following is an example: bash [root@anm ~]# ipmitool -I lan -U root -H {YOUR DESIRED IP} chassis status

  2. Hanging BMC bash ipmitool bmc reset cold

  3. Change system state bash ipmitool -H <ip> -U <user> chassis power <status|on|off|cycle|reset>

  4. Get debug info bash ipmitool lan print ipmitool -H <ip> -U <user> shell # get ipmitool shell, type 'help' ipmitool -H <ip> -U <user> sel list # Show system event log ipmitool -H <ip> -U <user> sdr # List sensor data

  5. Get SOL console bash modprobe lanplus # If not yet loaded ipmitool -H <IP> -U <user> -I lanplus sol activate

Infiniband

Följande går: ptp, token ring och switch. Det bästa vore att köra IB applicationer tex iSER, GlusterFS. Men man kan slå på IPoIB genom en kernel modul.

Notera: - apt install -t stretch-backports ibverbs-providers rdma-core # ger qperf m.m. - ipoib: när interfacet ib0 har fått IP addr så kan man använda den i IB nätverket. Dvs slipper GUID och LID tal.

RDMA infrastruktur

Installera:

sudo apt-get -t stretch-backports install rdma-core libibverbs1 librdmacm1 \
libibmad5 libibumad3 librdmacm1 ibverbs-providers rdmacm-utils infiniband-diags libfabric1 ibverbs-utils

Så har du som root ib* verktyg att använda.

Lathund IPoIB

Kernel moduler

  • Slå på med modprobe: mlx4_core, mlx4_ib, ib_ipoib, ib_umad
  • Lägg de i /etc/modules för att automagiskt ladda de vid start.
  • Kontrollera att de har laddats med lsmod.
  • Installera opensm. (Opensm krävs för att data ska kunna skickas. Man kan ha rendudant sm instance igång men bara en igång.)
  • Konfigurera opensm så att group-rate är satt till 40 Gbps eller vad som är aktuellt.
  • Kolla att interfacet ib0/ibp2s0/liknande har dykt upp med ifconfig/ip
  • Konfigurera ib interfacet med en statisk IP i /etc/network/interfaces (eller gör en fil för varje interface under interfaces.d/)
  • eth0 brukar ligga i en fil, kommentera ut den om den inte används.
  • Sätt mtu till 65540 som är max
auto ib0
iface ib0 inet static
    address 10.0.0.2
    netmask 255.255.255.0
    network 10.0.0.0
    broadcast 10.0.0.255
    pre-up echo connected > /sys/class/net/$IFACE/mode
    post-up /sbin/ifconfig $IFACE mtu 65520

Läs även vidare på archlinux länken nedan

  • Testa med iperf qperf mm

Exempel på labborations övningar

nfs över rdma

Källa: https://community.mellanox.com/docs/DOC-2132

Summerat

Server: - Lägg till och aktivera modulen svcrdma - Installera nfs server och rpcbind - Confa /etc/rpc för nfs - Confa /etc/exports med tex /path2ShareDir 10.0.0.0/255.255.255.0(rw,no_root_squash,subtree_check) - # exportfs -a - Dra upp nfs servern - echo 'rdma 20049' > /proc/fs/nfsd/portlist

Klient: - nfs-common behövs - Ladda modul xprtrdma - Kör mount -o rdma,port=20049 19.19.19.7:/root/my_directory /mnt/my_directory (ska gå på någon sekund annars är servern fel konfad) - Testa att det funkar med filer i nfs katalog - fio --rw=randread --bs=64k --numjobs=4 --iodepth=8 --runtime=30 --time_based --loops=1 --ioengine=libaio --direct=1 --invalidate=1 --fsync_on_close=1 --randrepeat=1 --norandommap --exitall --name task1 --filename=/<nfspath>/derp.txt --size=10000000

glusterfs

  1. Är noden förbered med IBoIP? (Tips: använd gärna interna namnuppslag för lättare konfigurering)
  2. Skapa en volym
  3. Skapa ett filsystem på volym
  4. Se till att disken monteras under ex /data/glusterfs/disk<x>, använd fstab filen.
  5. Installera gluster server
  6. Lägg till diskarna(bricks)
  7. Skapa gluster volym(er) se till att välja rdma för maximal hastighet.
  8. Skicka vänförfrågningar till andra gluster servrar (peers)
  9. Testa koppla en nfs client
  10. Möjlighet: träna access regler till volymer
  11. Skills++

För massor med info kolla: https://docs.gluster.org/en/latest/ samt videos. Eller fråga någon.

iSCSI med iSER

...

kluster

Minst två noder

  • Storage, se glusterfs m.m.
  • High Availability
  • Load Balancing
  • High Performance

URLs

  • https://wiki.archlinux.org/index.php/InfiniBand
  • https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-configuring_the_subnet_manager
  • https://www.servethehome.com/configure-ipoi