Kolla ledig plats på hårddiskar

Oj vad det tog mig tid att komma på detta kommando! Tack Google… 😉

# df -h

Den visar vilka partitioner som systemet har, var dom är mountade samt hur stora dom är och hur mycket utrymme som används

# df -h -i

Visar hur inodes(?) nyttjas / finns lediga för varje partition

Mounta en partition

Först ska en disk partitioneras (duh!) sen ska partitionen formatteras, disken syncas och sen kan man montera partitionen där man vill / behöver.

Med kommandot fdisk /dev/mpath/mpath0 kan t.ex. en primär partition skapas i tomt utrymme på LUN:et som syns som /dev/mpath/mpath0. I mitt fall blev det den fjärde partitionen, den kommer att kallas för /dev/mpath/mpath0p4 av systemet.

# fdisk /dev/mpath/mpath0
# sync

När partitioneringen är klar måste servern bootas om för att partitionen ska kunna formatteras / synas, i detta fall använder jag ext3 som filsystem:

# mkfs.ext3 /dev/mpath/mpath0p4

Därefter är det bara att mounta den, i detta fall i en katalog som man skapar:

# mkdir /tmp/p4/
# mount -t ext3 /dev/mpath/multipath0p4 /tmp/p4

Sen kan man göra vad man vill / behöver med det extra utrymmet 🙂

NTP i Linux

Att hålla synkad tid mellan servrar i Linux var ingen smal sak, kommandot ntpdate används för att uppdatera mot en NTP server (kör den tre ggr på raken så ska tydligen den lokala klockan synka mot servern?):

# ntpdate -d -u 192.168.1.1

Parametern -d gör att kommandot visar mer information, och -u gör att den inte bryr sig om autentisering.  Om den återkommer med meddelandet ”no server suitable for synchronization found” och det i debugutskriften står ”server dropped: strata too high” så beror det på att servern som pekades ut inte själv är synkroniserad.

Det finns ett interaktivt skal, annars visar parametern -p vilka servrar som den NTP synkar mot:

# ntpq

Kommandona ”pe”, ”as” och ”rv” visar hur systemet jobbar. Ifall den svarar med ”ntpq: read: connection refused” på kommandona så innebär det att ntpd tjänsten inte är igång. Starta den:

# service ntpd start

Kommandot ”date” visar vad systemet anser att klockan / datumet är:

# date

För att sätta klockan på ett människoförståeligt sätt:

# date -d ”2010-06-02 15:08”

För att synka clockan till hårdvaruklockan:

# hwclock –systohc

Det fanns bra information på följande site: http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch24_:_The_NTP_Server

Hitta fil

Det finns ett litet nyttigt kommando som jälper en att hitta en fil:

# whereis ifconfig

Snyggt och prydligt återkommer den med sökvägen till efterfrågad fil 🙂

Hitta egna IP adressen

Kommandot föt att se den egna IP adressen är ”ifconfig” i Linux. Men detta funkar inte i OEL, nej där får man felmeddelande om att kommandot inte finns. Efter lite sökande så visade det sig att man måsta ange sökvägen till kommandot:

# /sbin/ifconfig

DÅ funkar det! För att slippa behöva ange sökvägen så kan man lägga till den i PATH miljövariabeln med följande kommando:

# export PATH=$PATH:/sbin

Fast nuförtiden finns följande kommando:

# ip address

Oracle’s publika yum server

Efter installation av Oracle Enterprise Linux (OEL) eller Oracle VM Server (OVM) så vill man kunna lägga till program / paket. Varken OEL eller OVM har Oracle’s publika yum repository (http://public-yum.oracle.com/) konfigurerad, så det måste göras manuellt via följande kommandon:

OEL 5:

# cd /etc/yum.repos.d
# wget http://public-yum.oracle.com/public-yum-el5.repo

OVM 2:

# cd /etc/yum.repos.d
# wget http://public-yum.oracle.com/public-yum-ovm2.repo

Redigera den hämtade filen (public-yum-el5.repo eller public-yum-ovm2.repo) och sätt enabled=1 för de repositories (t.ex. [el5_u5_base]) som man vill kunna komma åt.

Testa att yum funkar som det ska:

# yum list

Klart!

Mounta en Windows share

För att ansluta sig till en Windows share som är utdelad på nätet:

# mount -t cifs -o username=user,password=pass //server/share/dir /mnt/winshare

Nu finns alla filer på Windows servern share synliga under /mnt/winshare

Mounta en .iso fil i Linux

Det var ju enkelt, nästan så man kunde gissa sig till det (not!):

# mount -t iso9660 -o loop minisofil.iso /mnt/minisofil

I OEL fick jag lov att skapa /mnt/minisofil katalogen först med kommandot:

# mkdir /mnt/minisofil

Huvudsaken är att det är görligt 🙂

Multipath boot för XenServer

Det var inte en enkel eller självklar operation visade det sig. I alla fall inte om man som jag utgår från Citrix XenServer och försöker sätta sig in i hur det är uppbyggt. Eftersom jag kan noll om Linux så började jag där jag stod: med XenServer.

Citrix har visserligen lagt till stöd för dm-multipath för åtkomst till Storage Repository (SR), men det gäller inte för själva bootningen av XenServer. Vad ska man med ett redundant SAN till om måste ha kvar lokala hårddiskar? Nej, jag gav mig fasen på att detta *måste* gå att få att fungera annars är Linux inte moget för affärskritiska installationer.

Det tog inte lång stund innan jag hittade att i alla fall RedHat kan och har alldeles föredömligt enkel installation av sin Linux (RHEL) för bootning via SAN. Det är ypperligt i och med att Citrix bygger XenServer på CentOS, vilket i sin tur är en klon av RHEL.  Tyvärr så måste Citrix ha missat att denna funktionalitet är i allra hägsta grad väsentlig, för det är lögn i h-e att få igång boot via SAN om man samtidigt vill att bootdisken ska vara multipathkapabel.

Visserligen går det alltså bra att installera XenServer på ett LUN som presenteras av BIOS på HBA, men bara för att LUN-et presenteras som en lokal hårddisk så är den inte alls skyddad av multipath. Citrix Xenserver går fetbort med andra ord, oavsett om det är DELL’s paketerade och för-licensierade eller Citrix egen variant.

Så jag vidgade mina vyer och funderade ett tag på att installera XenServer från CentOS, alltså skapa en helt egen installation.  Eller att återigen uppta mina försök med Opensolaris. Inget av alternativen var särskilt lockande, egen komposition skulle innebära att jag mister Citrix nästan ypperliga administrationsverktyg XenCenter och Opensolaris är lite i limbo nu sen Oracle köpte SUN.

Oracle ja. Då kom jag på att dom hade upprört Linuxvärlden för något år sen när dom klonade RHEL (CentOS?) och skapade en egen Linuxvariant: Unbreakable Linux. För övrigt är det den enda Linuxplattform som Oracle stödjer för installation av sin välrenommerade databasserver. Och att dom dessutom efter mycket om och men numera stödjer installation av databasservern på sin egen hypervisor, byggd på Xen.

Oracle sitter alltså numera på en egen välsupportad Linuxdistribution, en egen välsupportad hypervisor samt ett av de bästa (om inte det bästa!) Unixoperativsystemet: Solaris. Dessutom köpte dom upp och lade ner VirtualIron, även den byggd på Xen, till förmån för sin egen distribution av XenServer. Och som om det inte vore nog så äger Oracle numera både MySQL, målet för min utflykt i virtualiserings-djungeln, samt VirtualBox, den enligt mig bästa klientvirtualiseringsmiljön.

Så jag tänkte att om OVM duger för Oracle så kan det knappast vara fy skam. I och med att Oracle tidigare inte tillhandahöll egen hårdvara så måste deras Linux / XenServer distribution fungera på de flesta stora HW leverantärernas servrar. Att Oracle främst förknippas med stora installationer borde innebära att det här med fibrechannel, SAN, multipath, etc. är kända och väldokumenterade företeelser.

Efter lite säkning fick jag napp! EMC har alldeles nyligen skapat ett dokument som steg-för-steg visar hur man sätter upp Oracle VM (OVM, Oracles XenServerdistribution) med multipath och bootning från deras Clariion CX SAN: http://www.emc.com/collateral/hardware/white-papers/h6904-deploying-oracle-vm-clariion-wp.pdf 

Bingo! Det var exakt detta jag behövde. En stabil och välpolerad paketering av XenServer som är gjord med tanke på hög tillgänglighet, dessutom väldokumenterad och det bästa av allt: graaatis! 🙂

Jag laddade hem OVM och började genast plocka isär installations CD-n för att se om den kunde bootas via PXE istället. Även detta visade sig vara väldokumenterat: http://itnewscast.com/chapter-4-oracle-vm-server-sizing-installation-and-updates#Oracle_VM_Server_PXE_Kickstart_Installation

I princip så packade jag upp installations CD skivan till en mapp (http://minserver/boot/ovm) på min webserver och lade till ett nytt menyalternativ i bootmenyn för pxelinux så var det hela klart för testning.

Även om dokumentationen inte alls stämde med vad jag tillslut lyckades snickra ihop så var den en mycket god hjälp på vägen. Det tog faktiskt mindre än två timmar från det att jag ”upptäckte” OVM tills det att installationen bootade via PXE.

Tyvärr tog min tur slut där. Även om själva bootningen via PXE var en smal sak att få igång så hamnade jag i trubbel i och med att installationen inte fattade ett jota av mina LUN-er och misslyckades hela tiden med att rensa / skapa partitioner.

Trots detta bakslag så gav jag mig inte. Själva bootningen och loggningen under uppstart var det den snyggaste (och då menar jag inte snygg såssom estetisk med flashiga färger) och mest polerade som jag har sett hittills. OVM verkade helt enkelt vara för bra för att jag skulle ge upp redan. Så jag lusläste EMC’s dokumentation och på sidan 10 stod det klart och tydligt:

”…you will need the linux mpath option during the initial installation, because Oracle VM Server supports enabling DMMP during installation.”

Äntligen! Nu gällde det bara att para ihop detta magiska kommando med PXE bootning så skulle alltså installationen kunna flyta på såsom jag ville från början.  Nästa steg var alltså att återgå till dokumentet om PXE installation och sy ihop allt. När jag läste dokumentationen så upptäckte jag nästa grej som befäste min tro på OVM: möjlighet till prekonfigurerad och därmed automatiserad installation med hjälp av Anaconda/Kickstart.

Detta var verkligen, verkligen ett stort steg framåt i jämförelse med den futtiga och begränsade ”answerfile.xml” som Citrix Xenserver har att erbjuda. En titt i dokumetationen för Kickstart samt exemplen på sidan för OVM / PXE visade att möjligheterna är om inte helt så nästan oändliga: http://fedoraproject.org/wiki/Anaconda/Kickstart.

Dokumentationen för Anaconda visade sig även den innehålla guldkorn: http://fedoraproject.org/wiki/Anaconda_Boot_Options

Under mina försök med att automatisera installationen av Citrix XenServer mha answerfile.txt blev jag bara frustrerad över att det resulterade i att eth0 pga PXE bootning(?) inte blev konfigurerad trots inställningar i answerfile-en. I jämförelse med OVM lyser det verkligen igenom att Citrix XenServer inte riktigt är redo för enterpriseinstallationer såsom Citrix vill hävda.

Det intressantaste i mitt tycke var möjligheten att kunna peka ut vilket av nätverkskorten som skulle användas för installation efter PXE bootning, nämligen parametern ”ks=bootif”. Denna inställning talar om för Anaconda att den ska använda nätverkskortet med MAC-adressen som pekas ut av parametern BOOTIF, som i sin tur tydligen sätts av pxelinux om man i dess konfigurationsfil sätter parametern ”IPAPPEND 2”.

Det hela resulterade alltså i att följande rader lades till i filen ”pxelinux.cfg/default” i TFTP servern:

LABEL OVM
MENU LABEL ^O Oracle VM Server Install
KERNEL http://minserver/boot/ovm/images/pxeboot/vmlinuz mpath
IPAPPEND 2
INITRD http://minserver/boot/ovm/images/pxeboot/initrd.img ksdevice=bootif ks=http://minserver/boot/ovm/kickstart.cfg

Själva filen ”kickstart.cfg” innehåller följande:

# Kickstartfil för Oracle VM Server

install
url –url http://minserver/boot/ovm

lang en_US.UTF-8
keyboard sv-latin1
timezone –utc Europe/Stockholm

network –device eth0 –noipv6 –bootproto dhcp
network –device eth1 –noipv6 –bootproto static –ip=192.168.99.99 –netmask=255.255.255.0

firewall –enabled –port=21:tcp –port=22:tcp –port=53:udp –port=53:tcp –port=80:tcp –port=2049:tcp –port=5900-5950:tcp –port=8002:tcp –port=8003:tcp –port=8899:tcp –port=7777:tcp –port=6389:tcp
selinux –disabled

authconfig –enableshadow –enablemd5
rootpw –iscrypted XXXXXXXXXX

ovsagent –iscrypted XXXXXXXXXX
ovsmgmntif eth0

# Partitionera hårddisken utan lokal SR (bortkommenterad)
clearpart –all –initlabel –drives=mapper/mpath0
part /boot –asprimary –fstype ext3 –size=100 –ondisk=mapper/mpath0
part / –fstype ext3 –size=3072 –ondisk=mapper/mpath0
#part /OVS –fstype ocfs2 –size=1024 –grow –ondisk=mapper/mpath0
part swap –recommended –ondisk=mapper/mpath0
bootloader –location=mbr –dom0_mem=543 –driveorder=mapper/mpath0

%packages –excludedocs
 @office
 @admin-tools
 @editors
 @text-internet
 @gnome-desktop
 @dialup
 @core
 @base
 @games
 @java
 @base-x
 @graphics
 @printing
 @sound-and-video
 @ovs-virtualization
 @graphical-internet
 tftp
 bridge-utils
 squashfs-tools

%post
 # Sätt på SNMP
 chkconfig snmpd on

# Skapa parameter för serverns IP adress (S_IP)
eval `ifconfig eth0 | awk -F ”[: ]+” ‘NR==2 {print ”export S_IP=” $4}’`

# Hämta konfigurationsfil och skapa parametrar
cd /tmp
wget http://minserver/boot/ovm/hostnames.txt

eval `grep ”DOMAIN=” hostnames.txt | awk -F ”[= \r]” ‘{print ”export S_DOMAIN=” $2}’`
eval `grep ”CONTACT=” hostnames.txt | awk -F ”[= \r]” ‘{print ”export S_CONTACT=” $2}’`
eval `grep ”SPA=” hostnames.txt | awk -F ”[= \r]” ‘{print ”export S_SPA=” $2}’`
eval `grep ”SPB=” hostnames.txt | awk -F ”[= \r]” ‘{print ”export S_SPB=” $2}’`
eval `grep ”$S_IP=” hostnames.txt | awk -F ”[= \r]” ‘{print ”export S_HOSTNAME=” $2}’`
# Sätt serverns namn
sed -i -e ”s/HOSTNAME=.*$/HOSTNAME=$S_HOSTNAME.$S_DOMAIN/” /etc/sysconfig/network
rm -f /var/log/HostIdFile.txt
# Hämta och installera EMC Navisphere Agent
cd /tmp
wget http://minserver/boot/ovm/emc/NaviHostAgent-Linux-32-x86-en_US-6.29.5.0.66-1.i386.rpm
rpm -Uvh NaviHostAgent-Linux-32-x86-en_US-6.29.5.0.66-1.i386.rpm

# Skapa en agentID.txt som talar om hur Navisphere ska kommunicera med Clariion
echo $S_HOSTNAME.$S_DOMAIN > /agentID.txt
echo $S_IP >> /agentID.txt

# Ändra konfigurationsfil för Navisphere Agent så den visar rätt i Navisphere Manager
sed -i -e ”s/Navisphere Agent$/$S_HOSTNAME.$S_DOMAIN/” /etc/Navisphere/agent.config
sed -i -e ”s/John.*$/$S_CONTACT/” /etc/Navisphere/agent.config
# Hämta och installera EMC admsnap kommandot
cd /tmp
wget http://minserver/boot/ovm/emc/admsnap-2.9.0.0.8-0.i386.rpm
rpm -Uvh admsnap-2.9.0.0.8-0.i386.rpm

# Ändra hosts filen
echo $S_IP $S_HOSTNAME.$S_DOMAIN $S_HOSTNAME >> /etc/hosts
# Starta Navisphere Agent
/etc/rc.d/init.d/naviagent start

Det som skiljer denna fil från en ”standardinstallation” är att jag lagt till TCP port 6389 för att EMC’s Navisphere Manager ska kunna ha kontakt med min Clariion samt att jag inte låter den skapa en lokal SR i och med att denna ska ligga på SAN-et och att jag vill att SNMP ska startas i samband med serverstart.

Avslutningsvis så hämtar den EMC Navisphere Agent och snapadm verktyget, installerar dessa och låser upp kommunikationsvägen till EMC Clariion SP-erna samt skapar en agentID.txt fil med information om hur Navisphere ska kommunicera med Clariion.

Ersätt XXXXXXXXXX i filen ovan med en MD5 krypterad sträng för de lösenord som du vill ha. MD5 strängen skapas enklast med följande kommando:

# grub-md5-crypt

Den frågar dig efter lösneordet två gånger och återkommer med den MD5 krypterade strängen.

Ersätt Y.Y.Y.Y och Z.Z.Z.Z med IP adressen för SPA respektive SPB i EMC SAN-et.

Citrix Xenserver med EMC Navisphere Host Agent

Detta var inte simpelt men det går att installera EMC Navisphere Host Agent på en Citrix Xenserver 5.5 installation. DELL’s XenServer är det knepigare med i och med att dom gjort den read-only för att den bättre ska fungera installerad på en lokal SSD disk.

Ladda ner naviagent-6.28.20.1.40-1.noarch.rpm till /tmp på XenServern, gör den körbar och installera tjänsten:

# rpm -i naviagent-6.28.20.1.40-1.noarch.rpm

Skapa en agentID.txt fil, den ska innehålla den IP adress Navisphere Host Agent ska använda för att ansluta till Clariion och det hostnamn som ska presenteras. Till exempel:

minserver.domain.se
192.168.0.11

Filen ska kopieras till roten på XenServern. 

Radera filen /var/log/HostIdFile.txt, det ska skapas en ny efter omstart av XenServer datorn.

Ändra filen /etc/Navisphere/agent.config, den är rätt självförklarande men ”clarDesc” samt ”clarContact” är det som jag tycker man kan sätta till något deskriptivt.

Nu ska IPTABLES uppdateras så att Clariion får rättighet att ansluta sig till XenServern, ersätt SPA-IP och SPB-IP med IP adresserna för SPA resp. SPB på Clariion:

# iptables -D RH-Firewall-1-INPUT -j REJECT -–reject-with icmp-host-prohibited
# iptables -A RH-Firewall-1-INPUT -m state -–state NEW -p tcp -–dport 6389 -j ACCEPT –s SPA-IP
# iptables -A RH-Firewall-1-INPUT -m state -–state NEW -p tcp -–dport 6389 -j ACCEPT –s SPB-IP
# iptables -A RH-Firewall-1-INPUT -j REJECT -–reject-with icmp-host-prohibited
# iptables-save > /etc/sysconfig/iptables

Starta om XenServern. Är allt OK så ska tjänsten startas utan problem och i Navisphere på Clariion ska servern vara registrerad, synlig och hanterbar 🙂

Följande kommandon startar om NaviSphere Host Agent istället för att starta om servern:

# /etc/init.d/naviagent stop
# /etc/init.d/naviagent start

eller:

# service naviagent restart

« Older entries