<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mémoire partagée</title>
	<atom:link href="http://www.memoire-partagee.fr/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.memoire-partagee.fr</link>
	<description>Mon segment de communication inter-professionnels</description>
	<lastBuildDate>Wed, 28 Sep 2011 06:32:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Accéder au contenu d&#8217;une image disque KVM depuis l&#8217;hyperviseur</title>
		<link>http://www.memoire-partagee.fr/2011/07/acceder-au-contenu-dune-image-disque-kvm-depuis-lhyperviseur/</link>
		<comments>http://www.memoire-partagee.fr/2011/07/acceder-au-contenu-dune-image-disque-kvm-depuis-lhyperviseur/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 08:00:36 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[kvm]]></category>
		<category><![CDATA[lvm]]></category>

		<guid isPermaLink="false">http://www.memoire-partagee.fr/?p=789</guid>
		<description><![CDATA[<img src="http://www.memoire-partagee.fr/wp-content/Linux.gif" width="65" height="40" alt="" title="linux" /><br/>Parfois, une VM ne démarre pas, et on a besoin d'accéder à ses filesystems pour corriger le problème. Parfois, on veut juste accéder au contenu de l'image sans démarrer la VM. Pour tout le reste, il y a mastercard, mais pour accéder à notre image disque, il y a un peu plus de travail. Dans [...]]]></description>
			<content:encoded><![CDATA[<img src="http://www.memoire-partagee.fr/wp-content/Linux.gif" width="65" height="40" alt="" title="linux" /><br/><p style="text-align: justify;">Parfois, une VM ne démarre pas, et on a besoin d'accéder à ses filesystems pour corriger le problème. Parfois, on veut juste accéder au contenu de l'image sans démarrer la VM. Pour tout le reste, il y a mastercard, mais pour accéder à notre image disque, il y a un peu plus de travail.</p>
<p style="text-align: justify;">Dans l'exemple suivant, nous allons accéder aux volumes logiques LVM contenus dans une image brute (type="raw"), sur un hyperviseur KVM.<span id="more-789"></span></p>

<h2>Montage des volumes</h2>
<p style="text-align: justify;"><em>Attention : ne pas réaliser cette opération alors que la VM est active (ou a minima en s'assurant que tout montage se fait en read-only, et soyez prudents avec cette tronçonneuse, ça coupe).</em></p>
<p style="text-align: justify;">Dans l'état initial, je n'ai qu'un seul vg visible sur l'hyperviseur :</p>

<pre><blockquote># vgs
VG           #PV #LV #SN Attr   VSize   VFree
hypervg        1   3   0 wz--n- 247.22G 146.19G</blockquote></pre>
<p style="text-align: justify;">Regardons maintenant quel est le premier device loopback disponible, et associons notre image disque à ce device :</p>

<pre><blockquote># losetup -f
/dev/loop0
# losetup /dev/loop0 virtual-vdisk</blockquote></pre>
<p style="text-align: justify;">Il faut maintenant détecter le partitionnement interne du fichier image pour le faire reconnaître par l'hyperviseur :</p>

<pre><blockquote># kpartx -av /dev/loop0
add map loop0p1 : 0 256977 linear /dev/loop0 63
add map loop0p2 : 0 33559785 linear /dev/loop0 257040
add map loop0p3 : 0 33559785 linear /dev/loop0 33816825
add map loop0p4 : 0 2216970 linear /dev/loop0 67376610</blockquote></pre>
<p style="text-align: justify;">La couche LVM de l'hyperviseur peut maintenant détecter le (ou les) VG contenu(s) dans l'image disque :</p>

<pre><blockquote># vgs
VG           #PV #LV #SN Attr   VSize   VFree
hypervg        1   3   0 wz--n- 247.22G 146.19G
virtualvg      1   7   0 wz--n-  16.00G   7.50G</blockquote></pre>
<p style="text-align: justify;">Si par hasard ce n'était pas visible directement, la commande "vgscan" force un rescan.</p>
<p style="text-align: justify;">Il ne reste qu'à activer le VG pour pouvoir accéder aux LV :</p>

<pre><blockquote># vgchange -ay virtualvg
7 logical volume(s) in volume group &quot;virtualvg&quot; now active
# mount /dev/virtualvg/rootfs /mnt</blockquote></pre>
<p style="text-align: justify;">On peut monter de la même manière tous les LV de tous les VG contenus dans la VM. On peut également accéder à des partitions physiques directes, par exemple pour accéder au /boot de la VM qui correspond à la première partition :</p>

<blockquote># mount /dev/mapper/loop0p1 /mnt</blockquote>
<h2>Démontage des volumes</h2>
<p style="text-align: justify;">Le démontage, c'est à peu près la même chose à l'envers.</p>

<pre><blockquote># umount /mnt
# vgchange -an virtualvg
# kpartx -dv /dev/loop0
del devmap : loop0p1
del devmap : loop0p2
del devmap : loop0p3
del devmap : loop0p4
# vgs
VG           #PV #LV #SN Attr   VSize   VFree
hypervg        1   3   0 wz--n- 247.22G 146.19G
# losetup -d /dev/loop0</blockquote></pre>
<h2>Autres types de fichiers images</h2>
<p style="text-align: justify;">Ce genre d'opération est également possible avec d'autres types de fichiers images, voir par exemple <a href="http://blog.loftninjas.org/2008/10/27/mounting-kvm-qcow2-qemu-disk-images/" target="_blank">cet article</a> pour le montage d'images au format <a href="http://en.wikipedia.org/wiki/Qcow" target="_blank">qcow2</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.memoire-partagee.fr/2011/07/acceder-au-contenu-dune-image-disque-kvm-depuis-lhyperviseur/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PowerPath + ZFS + Clariion = ???</title>
		<link>http://www.memoire-partagee.fr/2011/07/powerpath-zfs-clariion/</link>
		<comments>http://www.memoire-partagee.fr/2011/07/powerpath-zfs-clariion/#comments</comments>
		<pubDate>Mon, 18 Jul 2011 08:00:45 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[solaris]]></category>
		<category><![CDATA[powerpath]]></category>
		<category><![CDATA[zfs]]></category>

		<guid isPermaLink="false">http://www.memoire-partagee.fr/?p=782</guid>
		<description><![CDATA[<img src="http://www.memoire-partagee.fr/wp-content/Solaris.gif" width="65" height="40" alt="" title="solaris" /><br/>Il y a eu pas mal de problèmes documentés autour de la cohabitation ZFS/PowerPath, et j'en tiens un beau. Une LUN de ma connaissance est baladée occasionnellement entre plusieurs serveurs pour permettre des gros transferts de données avec un débit raisonnable. Pour des raisons de compatibilité entre les différents systèmes impliqués, j'ai créé un dataset [...]]]></description>
			<content:encoded><![CDATA[<img src="http://www.memoire-partagee.fr/wp-content/Solaris.gif" width="65" height="40" alt="" title="solaris" /><br/><p style="text-align: justify;">Il y a eu pas mal de problèmes documentés autour de la cohabitation ZFS/PowerPath, et j'en tiens un beau. Une LUN de ma connaissance est baladée occasionnellement entre plusieurs serveurs pour permettre des gros transferts de données avec un débit raisonnable. Pour des raisons de compatibilité entre les différents systèmes impliqués, j'ai créé un dataset ZFS sur une partition de cette LUN.</p>
<p style="text-align: justify;">Le volume s'est promené entre différentes machines sans soucis, puis, un beau matin, au moment de la ramener sur un serveur, j'ai eu droit au tristement célèbre "insufficient replicas" :</p>

<pre><blockquote>monpool                     UNAVAIL  insufficient replicas
c5t5006000000000000d0s6  UNAVAIL  cannot open</blockquote></pre>
<p style="text-align: justify;">Pourtant, ce même volume fonctionnait à merveille sur le serveur voisin (qui certes n'utilisait pas PowerPath, mais tout de même)!<span id="more-782"></span></p>
<p style="text-align: justify;">En regardant d'un peu plus près, il s'avère que le système n'arrive pas à lire tous les labels, ce qui en soit ne devrait pas poser de soucis, c'est pour ça qu'ils sont redondés, mais ça indique tout de même un problème de détection du device :</p>

<pre><blockquote># zdb -l /dev/dsk/c5t5006000000000000d0s6
--------------------------------------------
LABEL 0
--------------------------------------------
version=10
name=&#039;monpool&#039;
state=1
[...]
--------------------------------------------
LABEL 1
--------------------------------------------
version=10
name=&#039;monpool&#039;
state=1
[...]
--------------------------------------------
LABEL 2
--------------------------------------------
failed to read label 2
--------------------------------------------
LABEL 3
--------------------------------------------
failed to read label 3</blockquote></pre>
<p style="text-align: justify;">Là encore, l'autre serveur voit les 4 labels correctement. Plus amusant encore, si on se réfère au device PowerPath, là, les 4 labels sont corrects!</p>

<pre><blockquote># zdb -l /dev/dsk/emcpower123g
--------------------------------------------
LABEL 0
--------------------------------------------
version=10
name=&#039;monpool&#039;
state=1
[...]
--------------------------------------------
LABEL 1
--------------------------------------------
version=10
name=&#039;monpool&#039;
state=1
[...]
--------------------------------------------
LABEL 2
--------------------------------------------
version=10
name=&#039;monpool&#039;
state=1
[...]
--------------------------------------------
LABEL 3
--------------------------------------------
version=10
name=&#039;monpool&#039;
state=1
[...]</blockquote></pre>
<p style="text-align: justify;">Aha! Voilà une piste sérieuse. Il est donc probable que le zpool import scanne le répertoire /dev/dsk et s'arrête à la première occurrence de mon pool, trouvée en /dev/dsk/c5tXXX, et ignore donc celle trouvée en /dev/dsk/emcpowerXXX. Malheureusement, il n'y a pas de moyen direct de forcer l'import avec un device spécifique. J'ai envisagé un moment de créer un nouveau lien sur le /dev/dsk/emcpower123g dans un autre répertoire, pour utiliser l'option -d du zpool import, mais ce type de manipulation m'ayant déjà planté un serveur, je n'étais pas très motivé.</p>
<p style="text-align: justify;">Au final, un message obscur trouvé au fin fond des forums OpenSolaris m'a donné une idée, qui s'est avérée payante : un simple trespass de la LUN sur le Clariion a résolu le problème!</p>
<p style="text-align: justify;">Il y a donc visiblement au moins deux incompréhensions entre ZFS et la couche PowerPath:</p>

<ul>
	<li>d'une part, le fait que ZFS s'arrête aux devices cXtXdX en ignorant les emcpowerXXX (sans doute pour des raisons d'ordre alphabétique) est limitant</li>
	<li>d'autre part, dans le cas d'un chemin multipathé par PowerPath, il peut y avoir un problème d'I/O si on attaque un device cXtXdX sous-jacent plutôt que l'autre, selon le SP actuellement possesseur de la LUN. C'est d'ailleurs d'autant plus étrange que chaque fibre est reliée au deux SP, mais passons.</li>
</ul>
<p style="text-align: justify;">A noter, le serveur est configuré en actif/passif classique sur le Clariion (mode 1), il serait intéressant de voir ce que ça donne en ALUA (mode 4), mais il faut au moins du PowerPath 5.1 pour ça, et ma version installée est trop ancienne, c'est donc un test que je ne ferai pas.</p>]]></content:encoded>
			<wfw:commentRss>http://www.memoire-partagee.fr/2011/07/powerpath-zfs-clariion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Un client SSH gratuit pour iPad</title>
		<link>http://www.memoire-partagee.fr/2011/06/un-client-ssh-gratuit-pour-ipad/</link>
		<comments>http://www.memoire-partagee.fr/2011/06/un-client-ssh-gratuit-pour-ipad/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 16:48:15 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[ios]]></category>

		<guid isPermaLink="false">http://www.memoire-partagee.fr/?p=777</guid>
		<description><![CDATA[<img src="http://www.memoire-partagee.fr/wp-content/Apple.gif" width="65" height="40" alt="" title="ios" /><br/>Possesseur depuis peu d'un iPad, j'ai cherché un remplaçant au bon vieux TouchTerm que j'utilisais sur mon téléphone (téléchargé à l'époque où il était encore gratuit), ce dernier ne gérant pas la résolution native de l'iPad. Après un petit tour d'horizon, je n'ai trouvé qu'une seule application réellement gratuite, il s'agit de Rove Mobile Admin [...]]]></description>
			<content:encoded><![CDATA[<img src="http://www.memoire-partagee.fr/wp-content/Apple.gif" width="65" height="40" alt="" title="ios" /><br/><p style="text-align: justify;">Possesseur depuis peu d'un iPad, j'ai cherché un remplaçant au bon vieux <a href="http://itunes.apple.com/fr/app/touchterm-ssh/id286623227?mt=8" target="_blank">TouchTerm</a> que j'utilisais sur mon téléphone (téléchargé à l'époque où il était encore gratuit), ce dernier ne gérant pas la résolution native de l'iPad. Après un petit tour d'horizon, je n'ai trouvé qu'une seule application réellement gratuite, il s'agit de <a href="http://itunes.apple.com/fr/app/rove-mobile-admin-client/id339820302?mt=8" target="_blank">Rove Mobile Admin Client</a>. L'application est à la base développée pour administrer une solution propriétaire de la société, mais les fonctionnalités de type SSH incluses sont accessibles indépendamment de leur suite d'outils. Ca ne fonctionne bien qu'en mode paysage, mais l'interface est sobre et claire.</p>
<p style="text-align: justify;">A noter, une autre application du même type semble gratuite, mais limite en fait les sessions de la version d'essai à 150 touches pressées, il s'agit de <a href="http://itunes.apple.com/fr/app/zatelnet/id407082048?mt=8" target="_blank">zatelnet</a>, à éviter donc si vous cherchez une solution gratuite.</p>]]></content:encoded>
			<wfw:commentRss>http://www.memoire-partagee.fr/2011/06/un-client-ssh-gratuit-pour-ipad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Suppression et redécouverte d&#8217;une LUN avec PowerPath</title>
		<link>http://www.memoire-partagee.fr/2011/06/suppression-et-redecouverte-dune-lun-avec-powerpath/</link>
		<comments>http://www.memoire-partagee.fr/2011/06/suppression-et-redecouverte-dune-lun-avec-powerpath/#comments</comments>
		<pubDate>Mon, 06 Jun 2011 13:00:31 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[solaris]]></category>
		<category><![CDATA[powerpath]]></category>

		<guid isPermaLink="false">http://www.memoire-partagee.fr/?p=769</guid>
		<description><![CDATA[<img src="http://www.memoire-partagee.fr/wp-content/Solaris.gif" width="65" height="40" alt="" title="solaris" /><br/>J'ai récemment eu à supprimer et recréer une LUN sur un Clariion. Ladite LUN était présentée à la fois à un serveur Solaris 10 et à un serveur Linux, avec un filesystem ZFS créé sur la machine Linux et prévu pour servir d'espace de transfert. Seulement, pas de chance, au moment de faire redécouvrir la [...]]]></description>
			<content:encoded><![CDATA[<img src="http://www.memoire-partagee.fr/wp-content/Solaris.gif" width="65" height="40" alt="" title="solaris" /><br/><p style="text-align: justify;">J'ai récemment eu à supprimer et recréer une LUN sur un Clariion. Ladite LUN était présentée à la fois à un serveur Solaris 10 et à un serveur Linux, avec un filesystem ZFS créé sur la machine Linux et prévu pour servir d'espace de transfert.</p>
<p style="text-align: justify;">Seulement, pas de chance, au moment de faire redécouvrir la LUN sur le serveur Solaris 10, impossible de la voir.</p>
<p style="text-align: justify;">Les commandes que j'utilise habituellement pour cela sont les suivantes :</p>
<pre><blockquote># cfgadm -al -o show_FCP_dev
# devfsadm -Cv
# powermt config</blockquote></pre>
<p style="text-align: justify;">Sauf que, visiblement, ça ne suffisait pas :</p>
<pre><blockquote># zpool import
no pools available to import</blockquote></pre>
<p style="text-align: justify;">En creusant un peu, j'ai découvert qu'il restait des traces de la LUN supprimée, et qu'elle empêchait la prise en compte de la nouvelle sur le même numéro de device :</p>
<pre><blockquote># powermt display dev=all                                                     
Pseudo name=emcpower77a
CLARiiON ID=CKMXXXXXXXX
Logical device ID=600601606FXXXXXXXXXXXXXXXX [MA_LUN]
state=alive; policy=CLAROpt; priority=0; queued-IOs=0
Owner: default=SP B, current=SP B
==============================================================================
---------------- Host ---------------   - Stor -   -- I/O Path -  -- Stats ---
### HW Path                 I/O Paths    Interf.   Mode    State  Q-IOs Errors
==============================================================================
3077 pci@8/SUNW,qlc@1          c3t500601623B207225d0s0 SP A2     active  dead       0      1
3077 pci@8/SUNW,qlc@1          c3t500601683B207225d0s0 SP B0     active  dead       0      1
3078 pci@8/SUNW,qlc@2          c5t500601603B207225d0s0 SP A0     active  dead       0      1
3078 pci@8/SUNW,qlc@2          c5t5006016A3B207225d0s0 SP B2     active  dead       0      1</blockquote></pre>

<p style="text-align: justify;">Il fallait donc nettoyer tout ça et recréer le device proprement :</p>
<pre><blockquote># powermt check                                                                                  
Warning: CLARiiON device path c3t500601623B207225d0s0 is currently dead.
Do you want to remove it (y/n/a/q)? a
Warning: CLARiiON device path c3t500601683B207225d0s0 is currently dead.
Warning: CLARiiON device path c5t500601603B207225d0s0 is currently dead.
Warning: CLARiiON device path c5t5006016A3B207225d0s0 is currently dead.
# powercf -q                                                                                     
Could not validate the entry:
---------------------------------------
emcpower77: user ID = fd00000268
---------------------------------------
removing emcpower77
# powermt config
# powermt display dev=emcpower77c                                                                
Pseudo name=emcpower77a
CLARiiON ID=CKM00104900008 [cesena]
Logical device ID=6006016069F02A000C1FADD01186E011 [TRANSFERT_BI]
state=alive; policy=CLAROpt; priority=0; queued-IOs=0
Owner: default=SP B, current=SP B
==============================================================================
---------------- Host ---------------   - Stor -   -- I/O Path -  -- Stats ---
### HW Path                 I/O Paths    Interf.   Mode    State  Q-IOs Errors
==============================================================================
3077 pci@8/SUNW,qlc@1          c3t500601623B207225d0s0 SP A2     active  alive      0      0
3077 pci@8/SUNW,qlc@1          c3t500601683B207225d0s0 SP B0     active  alive      0      0
3078 pci@8/SUNW,qlc@2          c5t500601603B207225d0s0 SP A0     active  alive      0      0
3078 pci@8/SUNW,qlc@2          c5t5006016A3B207225d0s0 SP B2     active  alive      0      0</blockquote></pre>
<p style="text-align: justify;">Et voilà, notre nouvelle LUN est bien détectée.</p>]]></content:encoded>
			<wfw:commentRss>http://www.memoire-partagee.fr/2011/06/suppression-et-redecouverte-dune-lun-avec-powerpath/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Monter un filesystem ufs sur RHEL 5.5</title>
		<link>http://www.memoire-partagee.fr/2011/02/monter-un-filesystem-ufs-sur-rhel-5-5/</link>
		<comments>http://www.memoire-partagee.fr/2011/02/monter-un-filesystem-ufs-sur-rhel-5-5/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 13:00:12 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[rhel]]></category>
		<category><![CDATA[ufs]]></category>

		<guid isPermaLink="false">http://www.memoire-partagee.fr/?p=762</guid>
		<description><![CDATA[<img src="http://www.memoire-partagee.fr/wp-content/Linux.gif" width="65" height="40" alt="" title="linux" /><br/>Bien que le noyau Linux supporte nativement les filesystems ufs, la fonction n'est pas présente par défaut sur les RHEL. Voici comment l'activer sur une RHEL 5.5 - le principe sera le même sur d'autres versions, sachant que les versions plus récentes devraient pouvoir s'épargner la mise à jour du module-init-tools. A cause d'un petit [...]]]></description>
			<content:encoded><![CDATA[<img src="http://www.memoire-partagee.fr/wp-content/Linux.gif" width="65" height="40" alt="" title="linux" /><br/><p style="text-align: justify;">Bien que le noyau Linux supporte nativement les filesystems ufs, la fonction n'est pas présente par défaut sur les RHEL. Voici comment l'activer sur une RHEL 5.5 - le principe sera le même sur d'autres versions, sachant que les versions plus récentes devraient pouvoir s'épargner la mise à jour du module-init-tools.</p>
<p style="text-align: justify;">A cause d'un petit bug, une mise à jour mineure est nécessaire avant l'opération. On va donc télécharger le package <a href="https://rhn.redhat.com/rhn/software/packages/details/Overview.do?pid=591507" target="_blank">module-init-tools-3.3-0.pre3.1.60.el5_5.1.x86_64.rpm</a> chez RedHat  (souscription RHN nécessaire) et le mettre à jour.</p>

<pre><blockquote># mount -o remount,rw /boot
# rpm -Uvh ./module-init-tools-3.3-0.pre3.1.60.el5_5.1.x86_64.rpm
Preparing...                ########################################### [100%]
1:module-init-tools      ########################################### [100%]</blockquote></pre>
<p style="text-align: justify;">On télécharge ensuite le package <a href="http://pkgs.org/centos-5-rhel-5/elrepo-x86_64/kmod-ufs-0.0-1.el5.elrepo.x86_64.rpm.html " target="_blank">kmod-ufs</a> correspondant à notre version de RHEL, et on installe.</p>

<pre><blockquote># rpm -ivh ./kmod-ufs-0.0-1.el5.elrepo.x86_64.rpm
warning: ./kmod-ufs-0.0-1.el5.elrepo.x86_64.rpm: Header V3 DSA signature: NOKEY,
key ID baadae52
Preparing...                ########################################### [100%]
1:kmod-ufs               ########################################### [100%]
Working. This may take some time ...
Done.</blockquote></pre>
<p style="text-align: justify;">Et ça y est, on peut monter un filesystem ufs (dans l'exemple ci-dessous, le filesystem a été créé sur un serveur Sparc, directement dans un fichier) :</p>

<pre><blockquote># mount -t ufs -o ro,loop,ufstype=sun ./testufs /mnt
# cd /mnt
/mnt# ls
lost+found  victory
/mnt# cat victory
Ca marche.</blockquote></pre>]]></content:encoded>
			<wfw:commentRss>http://www.memoire-partagee.fr/2011/02/monter-un-filesystem-ufs-sur-rhel-5-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SMTP sortant : faire un trou noir avec Postfix</title>
		<link>http://www.memoire-partagee.fr/2011/01/smtp-sortant-faire-un-trou-noir-avec-postfix/</link>
		<comments>http://www.memoire-partagee.fr/2011/01/smtp-sortant-faire-un-trou-noir-avec-postfix/#comments</comments>
		<pubDate>Mon, 17 Jan 2011 08:00:58 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://www.memoire-partagee.fr/?p=754</guid>
		<description><![CDATA[<img src="http://www.memoire-partagee.fr/wp-content/unix.gif" width="65" height="40" alt="" title="unix" /><br/>Quand on gère un serveur SMTP sortant, il peut arriver que l'on souhaite filtrer totalement les messages émis à destination d'un domaine, tout en donnant l'impression à l'émetteur que le message est bien parti. C'est le cas par exemple quand une plate-forme de test souhaite émettre de nombreux messages pour tester ses capacités d'envoi. Après [...]]]></description>
			<content:encoded><![CDATA[<img src="http://www.memoire-partagee.fr/wp-content/unix.gif" width="65" height="40" alt="" title="unix" /><br/><p style="text-align: justify;">Quand on gère un serveur SMTP sortant, il peut arriver que l'on souhaite filtrer totalement les messages émis à destination d'un domaine, tout en donnant l'impression à l'émetteur que le message est bien parti. C'est le cas par exemple quand une plate-forme de test souhaite émettre de nombreux messages pour tester ses capacités d'envoi.</p>
<p style="text-align: justify;">Après avoir essayé différentes approches, la plus élégante à mes yeux est l'utilisation de <span style="color: #000080;">transport_maps</span>, qui permet de spécifier des relais particuliers en fonction de la destination.</p>
<p style="text-align: justify;">Déclarons tout d'abord un tel fichier dans le <span style="color: #000080;">main.cf</span> de Postfix :</p>
<blockquote>transport_maps = dbm:/etc/postfix/trounoir_map</blockquote>
<p style="text-align: justify;">Notez ici que l'utilisation de <span style="color: #000080;">dbm </span>est un choix de portabilité, j'ai déjà eu à faire ce type d'opération sur des versions de Postfix compilées sans <span style="color: #000080;">pcre</span>, par exemple.</p>
<p style="text-align: justify;">Le fichier en question peut contenir des lignes du type :</p>
<blockquote>exemple.fr     discard:silently</blockquote>
<p style="text-align: justify;">Puisque j'ai spécifié un type dbm, il faut générer les maps à partir du fichier texte :</p>
<blockquote># postmap -c /etc/postfix /etc/postfix/trounoir_map</blockquote>
<p style="text-align: justify;">Il ne reste plus qu'à redémarrer postfix, et les messages à destination du domaine exemple.fr génèreront des entrées de ce type (notez le discard au début de la ligne et le silently à la fin) :</p>
<pre><blockquote>postfix/discard[3923]: [ID 197553 mail.info] 8E816F5D: to=&lt;daniel@exemple.fr&gt;, relay=none, 
delay=13, delays=13/0/0/0, dsn=2.0.0, status=sent (silently)</blockquote></pre>]]></content:encoded>
			<wfw:commentRss>http://www.memoire-partagee.fr/2011/01/smtp-sortant-faire-un-trou-noir-avec-postfix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Afficher la version de NFS utilisée par un montage spécifique</title>
		<link>http://www.memoire-partagee.fr/2010/12/afficher-la-version-de-nfs-utilisee-par-un-montage-specifique/</link>
		<comments>http://www.memoire-partagee.fr/2010/12/afficher-la-version-de-nfs-utilisee-par-un-montage-specifique/#comments</comments>
		<pubDate>Mon, 27 Dec 2010 10:00:56 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[nfs]]></category>

		<guid isPermaLink="false">http://www.memoire-partagee.fr/?p=746</guid>
		<description><![CDATA[<img src="http://www.memoire-partagee.fr/wp-content/Linux.gif" width="65" height="40" alt="" title="linux" /><br/>Dans un environnement hétérogène, il est possible que tous les serveurs n'utilisent pas la même version de NFS, certains étant encore en v3, d'autres en v4. Pour afficher la version utilisée par un montage spécifique, on peut utiliser la commande nfsstat : # nfsstat -m /montage /montage from serveur_nfs:/montage Flags: vers=4,proto=tcp,sec=sys,hard,intr,link,symlink,rsize=32768,wsize=32768, retrans=5,timeo=600 Attr cache: acregmin=3,acregmax=60,acdirmin=30,acdirmax=60 [...]]]></description>
			<content:encoded><![CDATA[<img src="http://www.memoire-partagee.fr/wp-content/Linux.gif" width="65" height="40" alt="" title="linux" /><br/><p style="text-align: justify;">Dans un environnement hétérogène, il est possible que tous les serveurs n'utilisent pas la même version de NFS, certains étant encore en v3, d'autres en v4. Pour afficher la version utilisée par un montage spécifique, on peut utiliser la commande <span style="color: #800000;">nfsstat </span>:</p>

<pre><blockquote># nfsstat -m /montage
/montage from serveur_nfs:/montage
Flags:         vers=4,proto=tcp,sec=sys,hard,intr,link,symlink,rsize=32768,wsize=32768,
retrans=5,timeo=600
Attr cache:    acregmin=3,acregmax=60,acdirmin=30,acdirmax=60</blockquote></pre>
<p style="text-align: justify;">Selon les cas, on verra <span style="color: #3366ff;">vers=3</span> ou <span style="color: #3366ff;">vers=4</span>.</p>
Cette commande est disponibles sur divers *nix, incluant notamment Solaris et Linux.]]></content:encoded>
			<wfw:commentRss>http://www.memoire-partagee.fr/2010/12/afficher-la-version-de-nfs-utilisee-par-un-montage-specifique/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SPARC SuperCluster</title>
		<link>http://www.memoire-partagee.fr/2010/12/sparc-supercluster/</link>
		<comments>http://www.memoire-partagee.fr/2010/12/sparc-supercluster/#comments</comments>
		<pubDate>Mon, 06 Dec 2010 11:00:39 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[oracle]]></category>

		<guid isPermaLink="false">http://www.memoire-partagee.fr/?p=742</guid>
		<description><![CDATA[<img src="http://www.memoire-partagee.fr/wp-content/oracle.gif" width="65" height="40" alt="" title="oracle" /><br/>Oracle vient d'annoncer la sortie en 2011 du SPARC SuperCluster, une nouvelle gamme de serveurs complets pour faire tourner, bien entendu, de l'Oracle RAC. S'appuyant sur des processeurs T3, utilisant les extensions SSD Flashfire, et intégrant des boîtes de type ZFS Storage 7420, ces serveurs disposent également d'un switch InfiniBand interne. Oracle nous propose donc là [...]]]></description>
			<content:encoded><![CDATA[<img src="http://www.memoire-partagee.fr/wp-content/oracle.gif" width="65" height="40" alt="" title="oracle" /><br/><p style="text-align: justify;">Oracle vient d'annoncer la sortie en 2011 du <a href="http://www.oracle.com/us/corporate/press/192208" target="_blank">SPARC SuperCluster</a>, une nouvelle gamme de serveurs complets pour faire tourner, bien entendu, de l'Oracle RAC. S'appuyant sur des processeurs <a href="http://www.memoire-partagee.fr/2010/10/les-premiers-serveurs-t3-rainbow-falls/" target="_blank">T3</a>, utilisant les extensions SSD <a href="http://www.memoire-partagee.fr/2009/10/flashfire-la-gamme-ssd-de-sun/" target="_blank">Flashfire</a>, et intégrant des boîtes de type <a href="http://www.oracle.com/us/products/servers-storage/storage/unified-storage/ocom-sun-zfs-storage-7420-appliance-171635.html" target="_blank">ZFS Storage 7420</a>, ces serveurs disposent également d'un <a href="http://www.sun.com/products/networking/infiniband.jsp" target="_blank">switch InfiniBand</a> interne.</p>
<p style="text-align: justify;">Oracle nous propose donc là une bien belle solution rassemblant leurs évolutions techniques les plus intéressantes, et les performances sont au rendez-vous : d'après les benchmarks d'Oracle, le record de transactions par minute (TPM) serait pulvérisé, avec 30 millions de TPM, soit trois fois plus que le record actuellement détenu par une base DB2 sur une plate-forme IBM à base de Power 7. Les spécifications du serveur capable de ces performances ont elles aussi de quoi donner le tournis : 108 processeurs T3 (soit 1728 cores, ou 13 824 threads hardware!), 13 TB de mémoire, 246 TB de stockage SSD, et 1.7 PB de stockage total.</p>
<p style="text-align: justify;">On peut imaginer que le prix de la solution sera en rapport.</p>]]></content:encoded>
			<wfw:commentRss>http://www.memoire-partagee.fr/2010/12/sparc-supercluster/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Retrouver un fichier effacé mais toujours ouvert</title>
		<link>http://www.memoire-partagee.fr/2010/11/retrouver-un-fichier-efface-mais-toujours-ouvert/</link>
		<comments>http://www.memoire-partagee.fr/2010/11/retrouver-un-fichier-efface-mais-toujours-ouvert/#comments</comments>
		<pubDate>Mon, 29 Nov 2010 08:00:47 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.memoire-partagee.fr/?p=732</guid>
		<description><![CDATA[<img src="http://www.memoire-partagee.fr/wp-content/Linux.gif" width="65" height="40" alt="" title="linux" /><br/>Il arrive occasionnellement qu'un fichier soit effacé sur le filesystem malgré le fait qu'il soit toujours ouvert dans un processus. Ce problème, aussi connu sous le nom plus pragmatique de "mézouépassélespace", est dans l'immense majorité des cas un problème d'interface chaise-clavier, parfois également appelée erreur humaine. Le symptôme typique de ce problème est une incohérence [...]]]></description>
			<content:encoded><![CDATA[<img src="http://www.memoire-partagee.fr/wp-content/Linux.gif" width="65" height="40" alt="" title="linux" /><br/><p style="text-align: justify;">Il arrive occasionnellement qu'un fichier soit effacé sur le filesystem malgré le fait qu'il soit toujours ouvert dans un processus. Ce problème, aussi connu sous le nom plus pragmatique de "mézouépassélespace", est dans l'immense majorité des cas un problème d'interface chaise-clavier, parfois également appelée erreur humaine.</p>
<p style="text-align: justify;">Le symptôme typique de ce problème est une incohérence entre l'espace annoncé par <span style="color: #800000;">df </span>et celui annoncé par <span style="color: #800000;">du</span>, généralement détecté au moment où le filesystem est rempli.</p>
<p style="text-align: justify;">Par exemple :</p>

<pre><blockquote># df -h /xxx
Filesystem            Size  Used Avail    Use%    Mounted on
/dev/mapper/xxx
1G      1G     0    100%    /xxx

# du -sh /xxx
350M      /xxx</blockquote></pre>
Pour le retrouver, nous avons fort heureusement une solution simple, pour peu que l'on dispose d'une version pas trop ancienne de lsof :
<pre><blockquote># lsof | grep deleted
coupable       1664   user    1w      REG    253,3    4  197939 /xxx/fichier (deleted)</blockquote></pre>
Il ne reste plus à ce stade qu'à tuer le coupable, ce qui libèrera automatiquement l'espace alloué au fichier effacé, faisant ainsi rentrer les choses dans l'ordre pour notre filesystem victime.]]></content:encoded>
			<wfw:commentRss>http://www.memoire-partagee.fr/2010/11/retrouver-un-fichier-efface-mais-toujours-ouvert/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Solaris 11 Express</title>
		<link>http://www.memoire-partagee.fr/2010/11/solaris-11-express/</link>
		<comments>http://www.memoire-partagee.fr/2010/11/solaris-11-express/#comments</comments>
		<pubDate>Tue, 16 Nov 2010 09:39:33 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[solaris]]></category>

		<guid isPermaLink="false">http://www.memoire-partagee.fr/?p=738</guid>
		<description><![CDATA[<img src="http://www.memoire-partagee.fr/wp-content/Solaris.gif" width="65" height="40" alt="" title="solaris" /><br/>La version Express de Solaris 11 est disponible chez Oracle. On notera entre autres la présence d'un LiveCD et l'absence de code source. Si ce dernier point vous gêne, allez plutôt voir du côté d'Illumos, le fork d'OpenSolaris réalisé par la communauté. Parmi les éléments notables de Solaris 11 (par rapport à Solaris 10, bien [...]]]></description>
			<content:encoded><![CDATA[<img src="http://www.memoire-partagee.fr/wp-content/Solaris.gif" width="65" height="40" alt="" title="solaris" /><br/><p style="text-align: justify;">La version Express de Solaris 11 est <a href="http://www.oracle.com/technetwork/server-storage/solaris11/overview/index.html" target="_blank">disponible chez Oracle</a>. On notera entre autres la présence d'un LiveCD et l'absence de code source. Si ce dernier point vous gêne, allez plutôt voir du côté d'<a href="http://www.illumos.org/" target="_blank">Illumos</a>, le <a href="http://www.memoire-partagee.fr/2010/08/opensolaris-est-mort-vive-illumos/" target="_blank">fork d'OpenSolaris</a> réalisé par la communauté.</p>
<p style="text-align: justify;">Parmi les éléments notables de Solaris 11 (par rapport à Solaris 10, bien sûr, la plupart de ces éléments étant depuis un bon moment dans OpenSolaris), on retrouve :</p>

<ul>
	<li style="text-align: justify;">Image Packaging System (IPS) : le nouveau (enfin!) système de gestion de paquets via le réseau, basé sur des repositories, dans la lignée des APT et autres YUM. La gestion des patchs est également intégrée, ceux-ci devenant simplement des nouvelles versions de paquets.</li>
	<li style="text-align: justify;">Boot Environments (BE) : de multiples environnements de démarrage du système, basés sur les snapshots ZFS, que l'on peut mettre à jour indépendamment (notamment mettre à jour un BE inactif puis rebooter dessus).</li>
	<li style="text-align: justify;">Automated Install : le successeur du jumpstart, capable d'installer des machines à partir d'un profil et d'un repository IPS</li>
	<li style="text-align: justify;">Virtualisation réseau : le projet <a href="http://www.memoire-partagee.fr/2008/04/reseau-et-virtualisation-sous-solaris-10/" target="_blank">Crossbow</a> a complètement abouti, et Solaris 11 dispose maintenant d'une virtualisation complète au niveau réseau : VNIC (interfaces complètement virtuelles, pouvant être dédiées à une zone), switchs virtuels, et routeurs virtuels, ainsi que des outils de contrôle de bande passante sur les interfaces réelles comme virtuelles.</li>
	<li style="text-align: justify;">ZFS devient le fs par défaut pour le rootfs, et incorpore de nouvelles fonctionnalités : déduplication, dataset chiffrés, et diff entre des snapshots</li>
	<li style="text-align: justify;">root est maintenant uniquement un rôle, et plus un compte</li>
	<li style="text-align: justify;">Solaris 11 supporte les containers Solaris 10 (autrement dit, une zone qui se comporte comme une machine Solaris 10), et offre des fonctionnalités P2V/V2V pour migrer les serveurs ou zones Solaris 10 existants</li>
	<li style="text-align: justify;">Support des <a href="http://www.memoire-partagee.fr/2010/10/les-premiers-serveurs-t3-rainbow-falls/" target="_blank">processeurs T3</a></li>
	<li style="text-align: justify;">Support NUMA amélioré</li>
	<li style="text-align: justify;">Amélioration des performances DISM pour Oracle</li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.memoire-partagee.fr/2010/11/solaris-11-express/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

