ITjes en datjes

Dingen uit dagelijks IT werk

Posts Tagged ‘Debian

Flexible fileserver on Debian Stretch

Finally getting around to reinstall my fileserver, I wanted to make it flexible with data integrity.
ZFS wasn’t flexible enough for my tastes, and LVM has no integrity check, so I had to create something with btrfs.

Early tests with using btrfs on LVM for root and /boot made the virtual machine unbootable, but using btrfs directly was no problem.
This meant I still had to use separate partitions for /boot, root, and swap (on mdraid10), and then use the rest for LVM.

It seems the installation of Stretch has trouble when adding raid or lvm afterwards, so I partitioned the installation this way:

vda1, 512M, bootable, btrfs, /boot
vda2, 4096M, btrfs, /
vda3, 512M, device for raid (to be made swap after creating raid10 after installation)
vda4, LVM
LVM:
vg0: vda4, vdb4, vdc4
lv’s:
tmp_0, 512M, btrfs, /tmp
home_0, 1024M, btrfs, /home
var_0, 1024M, btrfs, /var

After installation I created the same partitions for vdb and vdc, then created the mdraid10 for swap:
mdadm –create –run /dev/md99 –level=10 –layout=n2 raid-devices=3 /dev/vda3 /dev/vdb3 /dev/vdc3
mkswap /dev/md99

With that done I exchanged all /dev/mapper devices for the UUID’s of the btrfs devices in /etc/fstab and did a reboot as test.

With everything running I created logical volumes tmp_1, tmp_2, home_1, home_2, etc. by specifying the different physical devices to be put on:
lvcreate -L 512M -n tmp_1 vg0 /dev/vdb4
lvcreate -L 512M -n tmp_2 vg0 /dev/vdc4

Adding the LV’s to btrfs:
btrfs device add -f /dev/mapper/vg0-tmp_1 /dev/mapper/vg0-tmp_2 /tmp
btrfs device add -f /dev/mapper/vg0-home_1 /dev/mapper/vg0-home_2 /home

btrfs balance start -dconvert=raid1 -mconvert=raid1 /tmp
btrfs balance start -dconvert=raid1 -mconvert=raid1 /home

For unimportant data I made a logical volume striped across the three disks:
lvcreate -L xxG -n roraid -i 3 vg0
mkfs.ext4 /dev/mapper/vg0-noraid (could also be btrfs but the data integrity isn’t important here.
..and added its UUID to fstab with mountpoint /data/noraid

For the data protected with checksum integrity:
create three LV’s raid1_0, 1, 2 on the three PV’s like /tmp, /home, etc. above and make another btrfs raid of these.

Last, don’t forget to grub-install /dev/vdb and /dev/vdc.

The /data/raid1 mount point caused an error after first reboot, but later no more. Maybe a glitch in the matrix..

With this setup I can expand /tmp, /home, /var, /data/noraid and /data/raid1 as needed since I don’t know if I get more data for raid or not.
With two fileservers I can keep a backup of the raid1 data of one server on the noraid volume of the other. The btrfs volumes only protect from bit rot after all.

And if it really fills up I can start exchanging the disks for bigger ones.

 

Written by mnystrom

2016/04/04 at 22:20

Maak IT weer simpel

IT wordt weer te gecompliceerd gemaakt.
Sinds jaren is de focus in de IT steeds meer naar marketing voor nieuwe kleurtjes en ikoontjes gegaan in plaats van hetgene waar het werkelijk om gaat; een betrouwbaar en goed te onderhouden infrastructuur.

De UNIX filosofie van maak een programma wat 1 ding doet, maar goed doet lijkt tegenwoordig ver te zoeken in de commerciele wereld van IT. Daar is de open source wereld een stuk beter in en dat is ook te merken aan de software die meer waarde hecht aan stabiel draaien dan aan knoppen inbouwen die voldoen aan de laatste hype maar niks opleveren.

Eén van de dingen die me laatst opviel; dynamisch geheugen toewijzen aan een Windows 7 machine kan alleen met de dure Enterprise en Ultimate versies onder Hyper-V. Een installatie onder Proxmox VE met virtio drivers loopt als een trein met alle versies van Windows 7, en is nog snel ook, soms zelfs sneller dan onder Hyper-V lijkt het.

Met elke nieuwe versie van Windows sinds 2000 werd steeds meer ruimte op het scherm verspild met loze witte ruimte of onnodige links die met de rechter muisknop al beschikbaar waren (zie vooral de mmc consoles en zeker de IIS console waar het taak gedeelte niet uitgezet kan worden).
Informatie over een update is pas te krijgen na het doorlopen van enkele nietszeggende meldingen (Ik kijk naar jou, Windows Update! Neem een voorbeeld aan package managers van Linux distros!).

Het ergste zijn de interfaces van programmas en websites die de nieuwste waanideeën volgen als brave leden van de kudde.
Zoeken van functies in een “ribbon interface” is een hels karwei, en de oplossing is een zoekveld geworden (yay Office 2016!). Iedereen die met een computer kan werken, kan lezen. Tekst in een logische menustructuur werkt het snelste!
Technische websites die ineens met koeieletters en gigantische knoppen uitgerust worden hebben ook nooit naar de browserversies gekeken van hun bezoekers. Drivers worden niet gedownload op een tablet of mobiele telefoon, dat wordt op een PC gedaan met een browser die niet gelijk eruit hoeft te zien alsof die website gemaakt is voor slechtzienden! Het is al erg genoeg dat de standaard voor een Windows bureaublad eruitziet als een scherm voor peuters die niet kunnen lezen.

Een computer is ook een stuk gereedschap, geen reclame en entertainment centrum.
De normale gebruiker wil de computer starten en met die programmas werken die hij of zij nodig heeft, zonder allerhande afleiding door onnodige meldingen over geslaagde updates van anti-virus of nieuwe versies van programmas. Die dingen moeten pas tevoorschijn komen in de programmas zelf wanneer die draaien. En dan ook alleen als een simpele melding en niet als een enorme audiovisuele presentatie.
Afgezien van de rust die overstappen op FreeBSD en GNU/Linux (voornamelijk Debian) jaren geleden heeft opgeleverd, is het gebruik van een GUI zoals fluxbox waarbij ik na opstarten alleen een blanco scherm heb en met een toetsencombinatie ten alle tijden het menu kan oproepen.
Geen afleiding, alleen die dingen die op dat moment nodig heb, en zeker geen ballonnetjes met onzin van ADHD programmas als ik net een goede film of serie in volledig scherm aan het kijken ben.

Het toenemende gebruik van adblockers geeft ook aan dat de mensen steeds meer vechten tegen de overheersende cultuur van schreeuwende advertenties. Het is ook niet voor niks dat streaming media zoals Netflix en HBO steeds geliefder is dan de ouderwetse commercieele zenders.
Het zoeken en lezen op internet wordt een steeds meer vermoeiende aangelegenheid. Google werd groot omdat zij een simpele pagina met resultaten voorschotelden ten opzichte van de grote zoekmachines van die tijd. Nu zijn door onder andere het privacy vraagstuk en filter/search bubbles zoekmachines zoals Duckduckgo een stuk populairder geworden, en deze zien er weer uit zoals het vroeger was; simpel en overzichtelijk.
Dit alles draagt bij aan de huidige information overload en onoverzichtelijkheid van de infrastructuur achter inter- en intranetwerk. Het is geen wonder dat de huidige generatie die uit de IT opleiding gerold komt problemen heeft om een beeld te krijgen van het netwerk zogauw er ergens een storing is.

IT moet weer simpel opgezet worden, overzichtelijke programmas die 1 taak hebben en als nodig in een batch gecombineerd kunnen worden met logging die als normale tekst gelezen en verwerkt kan worden.
Interfaces die duidelijke en summiere tekst geven met een paar kleuren, waarbij meer informatie met 1 klik of commando opgehaald kan worden.
Zinnige informatie zonder dezelfde marketing bullshit die iedereen spuit. En zeker zonder een hoop grote slideshows of videos die alleen maar bandbreedte, geheugen, en CPU tijd kosten als daar niet om gevraagd wordt.

 

Written by mnystrom

2016/03/08 at 01:24

Geplaatst in Debian, linux, NL, Proxmox, software, Windows

Tagged with , , , , ,

Revive old home server

After replacing the failing home server with a decent Synology NAS I got my hands on a HP Storageworks Data Vault X510.

HP_X510_2
Being curious I wanted to see if I could get it to run with Debian so I could do some tests with mdadm.

Turns out it’s not too difficult.

-place the harddisk to install it on in a standard PC and use that to install the i386 version of Debian (in this case it was Jessie)
-add a fixed IP address for eth0 in /etc/networking/interfaces (the Realtek r8168 (seen as r8169) couldn’t get a DHCP address for some reason)
-place the disk in the X510 and boot
-login with SSH (you did install it, didn’t you?)
-have fun with it

 

Written by mnystrom

2015/06/03 at 20:41

Geplaatst in Debian, EN, hardware, installation, linux, server, storage

Tagged with , ,

Proxmox: upgrade PVE 1.9 to 2.0

Even though I haven’ t tried any beta version I decided to go ahead and upgrade one of my cluster nodes to version 2.0 of Proxmox virtual environment.

The tricky part would most likely be the customized PVE installation I build; two disks running partially software RAID 1 with the system split in several partitions. That might break the upgrade script provided by Proxmox.
Actually, thing went pretty well so far. The biggest error was that I had previously left open a couple of remove assignments through aptitude which removed the pve kernel, so the script halted on that when it couldn’t find it.
Nothing a reversal to lenny in the sources.list and the install of the missing kernel couldn’t fix.

One thing that didn’t match up was not being able to start cman which complained about missing the nodename in cluster.conf. It was present in /etc/pve/cluster.conf but unfortunately the init script pointed to /etc/cluster/cluster.conf.
Adding the name to the latter conf was enough to start cman and enable me to log into the web interface. That one kept looping and timed out while the cluster deamon wasn’t running.
One thing te remember is that the web interface was listening to the default port again so I had to modify the Listen entry in pve.conf under the /etc/apache/sites directories.

Next is copying the backups from the old master node to the new and import them to see if they’ll run. When they do, the old master will be upgraded after confirming that the new master works as planned.

 

*update* 20120524

Just started the upgrade of the second node, so far I only had to do an apt-get install console-tools after an error mentioning that package during the apt-get upgrade round, and an apt-get install vzctl during the second attempt.

 

Written by mnystrom

2012/04/24 at 22:15

Proxmox Virtual Environment 1.9 cluster (en)

NL versie

Because it was time to refresh the network at home I started looking at avirtual cluster solution.

Previously I used FreeBSD with jails to seperate the servers and I wanted to keep that functionality. What I wanted op top of that was failover, to be able to move the servers in case of maintenance or problems with the virtual host.

My first experiences with Proxmox VE 1.9 were good, except that I wanted a different partitioning of the host as the standard bare-metal installation uses up the whole disk. Luckily that’s no problem as Proxmox can be installed on top of an existing Debian Lenny 64 bit server.

During the installation of Debian I set up a partial RAID layout with the software RAID option in Linux. Only the virtual environment needs to run on RAID 1, the important part of my data will be secured with a backup. All other data can be downloaded or ripped again (software, my own DVD and CD collection for my media center, etc.) so there’s no real need to use RAID here.
This way I still have redundancy but I won’t lose all my disk space on RAID.

I use the following layout:
/dev/md0, 512 MB RAID 1, ext2, /boot
/dev/sda2 + sdb2, 1GB, swap
/dev/md1, 8GB RAID 1, LVM, /
/dev/md2, 100GB RAID 1, LVM, /var/lib/vz
/dev/sda5 + sdb5, *, ext3, /data/local/01 + 02

Sda5 and sdb5 contain regular data, backup of the virtual machines from the other cluster and the backup of important data from the other cluster. This will be available through NFS shares.
Swap is optional as the servers have plenty of memory installed.

Installation of Debian is done with as few options as possible, after this the sources.list will be modified to include the Proxmox repository and the installation will be finished according to the instructions on the Proxmox Wiki.

What’s left are tweaks to the vzmigrate script to speed up migration and extra network bridges to seperate host traffic from virtual server traffic.

There’s no real high availability yet for VZ containers on shared storage but I’m looking at keeping downtime as short as possible using a combination of Heartbeat, DRBD and rsync.

Written by mnystrom

2011/11/16 at 10:02

Proxmox Virtual Environment 1.9 cluster (nl)

EN/UK version

Omdat het tijd werd om het netwerk thuis eens op te frissen ben ik meteen gaan kijken naar een virtueel cluster.

Voorheen gebruikte ik FreeBSD met jails om de diverse servers gescheiden te houden en die functionaliteit wilde ik blijven houden. Wat er extra bij moest komen was failover om de diverse servers te kunnen verplaatsen in het geval van onderhoud of problemen met de host.

De eerste ervaring met Proxmox VE 1.9 was goed, echter wilde ik een andere indeling van de host omdat de standaard installatie de hele schijf in beslag neemt. Dat is gelukkig geen probleem aangezien Proxmox op een bestaande Debian Lenny 64 bit server gezet kan worden.

Tijdens de installatie van Debian heb ik een gedeeltelijke RAID indeling gemaakt via de software RAID optie van Linux. Alleen het gedeelte voor de virtuele omgeving hoeft op RAID 1 te draaien, het belangrijke gedeelte van data wordt via backup veilig gesteld. Overige data kan weer opnieuw gedownload of geript worden (DVD en CD collectie voor de media center, etc.) en hoeft dus niet persé op RAID of backup.
Hiermee heb ik toch een stuk redundantie maar ben niet alle schijfruimte kwijt aan RAID.

De volgende indeling is gemaakt:
/dev/md0, 512 MB RAID 1, /boot
/dev/md1, 8 GB RAID 1, /
/dev/md2, 100 GB RAID 1, /var/lib/vz
/dev/sda4, *, /data/local/disk01
/dev/sdb4, *, /data/local/disk02

Op sda4 en sdb4 komt de normale data, de backup van virtuele servers op de andere cluster node en de backup van de belangrijke data op de andere cluster node. Dit wordt dan via NFS beschikbaar gemaakt.
Er is geen swap partitie omdat er meer dan voldoende geheugen in de host servers zit, maar dat is nog altijd een optie.

De installatie van Debian wordt zo kaal mogelijk uitgevoerd, hierna wordt namelijk de sources.list aangepast voor de repository van Proxmox en de installatie van de benodigde onderdelen op aanwijzing van de Proxmox Wiki.

Wat rest zijn extra tweaks in het vzmigrate script om migratie te versnellen en extra netwerk bridges om host verkeer te scheiden van de virtuele servers.

High availability met losse VZ containers is er nog niet, dan moet de hele server om maar misschien kan de onderbreking toch beperkt blijven met een combinatie van Heartbeat, DRBD en rsync.

Written by mnystrom

2011/11/12 at 15:20

Portal voor gratis internet op Debian

Voor een klant een internet portal opgezet zodat de campinggasten hier gebruik van kunnen maken. Een aantal bekendere oplossingen voldeden niet en uiteindelijk de portal gebaseerd op deze van Andy Beverly.

Voor de server is een HP Proliant Microserver gebruikt met extra netwerkkaart en remote access kaart.
Software is Debian Linux Squeeze met de volgende packages;
-squid 3.x
-nagios 3.x
-apache 2.x
-bind 9.x
-PHP5-xsl
-PHP5-xmlrpc
-conntrack
-iptraf
-dhcp3-server
-sudo
-ipset
-ipset-source
-module-assistant

Installatie is uitgevoerd volgens de beschrijving van Andy met uitzondering van het ADSL, firewall en sudo gedeelte. Er wordt alleen gebruik gemaakt van ethernet en filtering werkt op IP adres i.p.v. MAC adres. Verbindingen van de clients lopen over een bridge waarbij gebruik wordt gemaakt van MAC NAT zodat de registratie gebeurt met het MAC adres van de bridge i.p.v. de client.

In index.php wordt het stuk van controle mac adres gedeeltelijk vervangen;

global $mac;
global $ipadd;
$mac = shell_exec(“$arp -a “.$_SERVER[‘REMOTE_ADDR’]);
$ipadd = $_SERVER[‘REMOTE_ADDR’];
preg_match(‘/..:..:..:..:..:../’,$mac);
preg_match(‘/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}/’,$ipadd,$matches);
@$mac = $matches[0];
@$ipadd = $matches[0];
//if (!isset($mac)) { exit; }
if (!isset($ipadd)) { exit; }

In users.php de wijziging voor iptables;

// validate any inputs
if (isset($_GET[‘ipadd’])) {
if (preg_match(‘/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}\*?$/’,$_GET[‘ipadd’])) {
$ipadd = $_GET[‘ipadd’];
} else {
echo “<font color=’red’>Invalid IP address</font><br><br>”;
}
}

$userfile = “/var/lib/users”;

if (isset($_GET[‘action’]) && $ipadd) {
$ipadd = trim($ipadd,’*’);
if ($_GET[‘action’]==”block”) {
$users = file_get_contents($userfile);
if (!strpos($users,”$ipadd*”)) {
$users = str_replace($ipadd,$ipadd.”*”,$users);
file_put_contents($userfile,$users,LOCK_EX);
}
exec(“sudo iptables -D internet -t nat -s $ipadd -j RETURN”);
} elseif ($_GET[‘action’]==”unblock”) {
$users = file_get_contents($userfile);
if (strpos($users,”$ipadd*”)) {
$users = str_replace($ipadd.”*”,$ipadd,$users);
file_put_contents($userfile,$users,LOCK_EX);
exec(“sudo iptables -I internet 1 -t nat -s $ipadd -j RETURN”);
}
} elseif ($_GET[‘action’]==”delete”) {
$users = file_get_contents($userfile);
$users = preg_replace(“/\n.+$ipadd.*\n/”,”\n”,$users);
file_put_contents($userfile,$users,LOCK_EX);
exec(“sudo iptables -D internet -t nat -s $ipadd -j RETURN”);
} else {
echo “<font color=’red’>Invalid action requested</font><br><br>”;
}
}

In dit bestand moeten de verwijzingen naar $field[3] voor registratie in bestand /var/lib/users ook vervangen worden naar $field[2].

De wijziging voor sudo;

www-data ALL = NOPASSWD: /sbin/iptables -I internet 1 -t nat -s [0-9]*.[0-9]*.[0-9]*.[0-9]* -j RETURN
www-data ALL = NOPASSWD: /sbin/iptables -D internet -t nat -s [0-9]*.[0-9]*.[0-9]*.[0-9]* -j RETURN
www-data ALL = NOPASSWD: /usr/bin/rmtrack [0-9]*.[0-9]*.[0-9]*.[0-9]*

In het firewallscript wordt voor elk wireless netwerk apparaat de toegang opengezet;

$IPTABLES -t filter -A INPUT -i eth0 -s xxx.xxx.xxx.xxx -j ACCEPT

En het vullen van de internet chain gebeurt nu via de volgende regel;

awk ‘BEGIN { FS=”\t”; } { if ($3 !~ /\*/) { system(“‘$IPTABLES’ -t nat -A internet -s “$3″ -j RETURN”); } }’ /var/lib/users

Met deze portal kan op een simpele manier (draadloze) internet toegang worden gegeven aan gasten van o.a. campings, hotels, supermarkten met grotere parkeerplaatsen, festival terrreinen, etc..
(iPad is eventueel een uitzondering aangezien deze geen DHCP adres over een MAC bridge kan opvragen ten tijde van schrijven van deze post)

Meer info over onze modulaire opzet van draadloze netwerken zodat deze makkelijker uit te breiden zijn is te vinden op http://www.mbitz.nl/aanleg_wifi.html.

MBitZ modulaire wifi mast

MBitZ modulaire wifi mast

Written by mnystrom

2011/06/22 at 14:59