SMTP sortant : faire un trou noir avec Postfix

Posted by on 17 jan 2011 | Tagged as: unix

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 avoir essayé différentes approches, la plus élégante à mes yeux est l'utilisation de transport_maps, qui permet de spécifier des relais particuliers en fonction de la destination.

Déclarons tout d'abord un tel fichier dans le main.cf de Postfix :

transport_maps = dbm:/etc/postfix/trounoir_map

Notez ici que l'utilisation de dbm est un choix de portabilité, j'ai déjà eu à faire ce type d'opération sur des versions de Postfix compilées sans pcre, par exemple.

Le fichier en question peut contenir des lignes du type :

exemple.fr     discard:silently

Puisque j'ai spécifié un type dbm, il faut générer les maps à partir du fichier texte :

# postmap -c /etc/postfix /etc/postfix/trounoir_map

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) :

postfix/discard[3923]: [ID 197553 mail.info] 8E816F5D: to=<daniel@exemple.fr>, relay=none, delay=13, delays=13/0/0/0, dsn=2.0.0, status=sent (silently)

Afficher la version de NFS utilisée par un montage spécifique

Posted by on 27 déc 2010 | Tagged as: linux

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

Selon les cas, on verra vers=3 ou vers=4.

Cette commande est disponibles sur divers *nix, incluant notamment Solaris et Linux.

SPARC SuperCluster

Posted by on 06 déc 2010 | Tagged as: oracle

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à 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.

On peut imaginer que le prix de la solution sera en rapport.

Retrouver un fichier effacé mais toujours ouvert

Posted by on 29 nov 2010 | Tagged as: linux

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 entre l'espace annoncé par df et celui annoncé par du, généralement détecté au moment où le filesystem est rempli.

Par exemple :

# df -h /xxx Filesystem Size Used Avail Use% Mounted on /dev/mapper/xxx 1G 1G 0 100% /xxx # du -sh /xxx 350M /xxx
Pour le retrouver, nous avons fort heureusement une solution simple, pour peu que l'on dispose d'une version pas trop ancienne de lsof :
# lsof | grep deleted coupable 1664 user 1w REG 253,3 4 197939 /xxx/fichier (deleted)
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.

Solaris 11 Express

Posted by on 16 nov 2010 | Tagged as: solaris

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 sûr, la plupart de ces éléments étant depuis un bon moment dans OpenSolaris), on retrouve :

  • 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.
  • 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).
  • Automated Install : le successeur du jumpstart, capable d'installer des machines à partir d'un profil et d'un repository IPS
  • Virtualisation réseau : le projet Crossbow 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.
  • 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
  • root est maintenant uniquement un rôle, et plus un compte
  • 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
  • Support des processeurs T3
  • Support NUMA amélioré
  • Amélioration des performances DISM pour Oracle

« Prev - Next»