Vous avez libéré de l’espace disque sur votre machine virtuelle hyper-v puis compacté le disque vhd mais rien à faire, il ne se réduit pas autant qu’il le devrait.
Voici différentes choses que j’ai pu tenter: – Défragmenter – Réduire le volume depuis le gestionnaire de disques de la VM – Défragmenter en ajoutant le vhd sur une autre VM comme disque secondaire pour pouvoir traiter les fichiers système – Générer un nouveau vhd à partir de l’original Rien ne semble fonctionner!
Le problème est que NTFS efface les fichiers de la structure des répertoires, mais ne libère pas l’espace libéré par les fichiers supprimés. Et le compactage ne libère pas non plus cet espace. C’est pour cette raison qu’il existe de nombreux outils qui permettent de récupérer des fichiers supprimés accidentellement, tant que l’espace n’a pas été repris pour écrire d’autres fichiers.
Pour que le compactage récupère cet espace libéré, vous pouvez utiliser sdelete des excellents outils sysinternals de Microsoft. sdelete permet de supprimer de façon sécurisée toute donnée de fichiers enregistré sur des portions de disque non allouées, en remplaçant les bits par des zeros. Ceci inclut des fichiers déjà supprimés ou encryptés. Téléchargez sdelete et lancez cette commande concise sur la machine virtuelle si vous souhaitez nettoyer le disque C:
sdelete -z C:
sdelete n’est pas très verbeux, vous ne savez même pas combien d’espace disque vous venez de récupérer. Tout dépend de la taille des fichiers que vous avez supprimés en amont.
Vous pouvez maintenant compacter et réduire le fichier vhd dont la taille correspondra à l’espace vraiment utilisé.
Il est possible de répartir le trafic Microsoft Exchange avec Microsoft NLB mais cela demande 4 serveurs Exchange pour la simple raison qu’NLB n’est pas compatible avec le rôle de cluster (Exchange). La plupart des experts Microsoft ne le recommandent pas.
Parmi les points faibles de NLB, les services Exchange ne sont monitorés que par un simple ping, ce qui signifie qu’ils sont considérés actifs même s’ils ont été arrêtés.
Un load balancer Exchange matériel sont recommandé dans la plupart des cas mais reste très onéreux. Comme je vais virtualiser les serveurs Exchange sur Hyper-v, les répartiteurs de charge logiciel sont les plus appropriés naturellement. C’est ce qui m’amène à Linux Virtual Server (LVS) sans dépense supplémentaire et avec peu de ressources.
N’en déplaise aux plus ardents défenseurs de Linux et Microsoft, Linux Redhat est 100% supporté sur Hyper-V et a été optimisé avec quelques améliorations.
Réseau
Chaque machine virtuelle Exchange sera hébergée sur un serveur physique différent ainsi qu’une VM Linux pour la redondance. Le load-balancer actif (LB1 le maître) distribuera les paquets aux serveurs « réels” via un réseau privé. Le réseau privé sera connecté à un port physique pour que les VMs sur les 2 machines puissent se voir.
Créez les 2 réseaux et les 4 VMs dans Hyper-v en donnant respectivement 1 et 2 NICs à Exchange et aux serveurs LVS. Affectez des IPs selon la topologie de votre réseau.
Setup du Load Balancer
Modifiez /etc/sysctl.conf pour autoriser l’ip forwarding:
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
Pus redémarrez la machine ou entrez sysctl -p /etc/sysctl.conf
Comme fil conducteur, vous pouvez suivre le guide LVS de Redhat. Saisissez un mot de passe en exécutant piranha-passed sur les serveur Linux qui deviendra le maître et démarrez les services pulse et piranha-gui.
Vous devriez pouvoir atteindre la page de conf sur le port 3636 avec un navigateur cad http://IP:3636. Connectez-vous avec piranha comme nom d’utilisateur et le mot de passe que vous avez entré ci-dessus.
Une fois connecté sur la page web de configuration Piranha, paramétrez les pages Paramètres globaux “Global Settings » et Redondance « Redundancy ». C’est assez rapide: La passerelle virtuelle des serveurs réels vont aller sur la sous-interface eth1:1. Je n’ai pas coché « Monitor link » ni « Use sync daemon » vu ca ne fonctionnait pas si je les laissais activés.
C’est ici que les choses sérieuses commencent. Nous pourrions créer un server virtuel pour chaque port à surveiller. J’ai choisi plutôt de marquer les paquets, et de ne monitoire qu’un seul service. Inutile ainsi d’écrire des scripts multiples. Vous pouvez naturellement le faire si vous le souhaitez.
Je mets le port 80 sous surveillance comme Exchange est en écoute sur HTTP. Entrez un nombre dans le champ firewall mark pour regrouper tous les ports à rediriger: J’ai choisi 80 mais ça aurait pu être tout-à-fait autre chose, ce n’est qu’un tag. Rappelez-vous juste de ce nombre pour l’ajouter dans iptables ci-dessous. Jai affecté l’adresse IP à eth0:3: Je vous direz pourquoi plus tard. Ajoutez les IP des 2 serveurs réels et laissez le script de surveillance par défaut dans le dernier onglet.
Règles Iptables
Nous allons maintenant configurer iptables pour marquer les paquets du nombre 80. Iptables va filtrer (1re partie ci-dessous) et marquer (2me partie) les paquets. Voici ce que j’ai dans /etc/sysconfig/iptables:
# Generated by iptables-save v1.4.7
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [353:70931]
:OUTPUT ACCEPT [908:61941]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3636 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 2525 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 587 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 465 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 717 -j ACCEPT
-A INPUT -d 192.168.1.36/32 -j ACCEPT
-A INPUT -d 192.168.1.37/32 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -i eth0 -o eth1:1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1:1 -o eth0 -j ACCEPT
COMMIT
# Generated by iptables-save v1.4.7
*mangle
:PREROUTING ACCEPT [87155:9160406]
:INPUT ACCEPT [82925:8666308]
:FORWARD ACCEPT [3859:469324]
:OUTPUT ACCEPT [64873:3999893]
:POSTROUTING ACCEPT [68732:4469217]
-A PREROUTING -d 192.168.1.35/32 -p tcp -m tcp --dport 80 -j MARK --set-xmark 0x50/0xffffffff
-A PREROUTING -d 192.168.1.35/32 -p tcp -m tcp --dport 443 -j MARK --set-xmark 0x50/0xffffffff
-A PREROUTING -d 192.168.1.35/32 -p tcp -m tcp --dport 25 -j MARK --set-xmark 0x50/0xffffffff
-A PREROUTING -d 192.168.1.35/32 -p tcp -m tcp --dport 2525 -j MARK --set-xmark 0x50/0xffffffff
-A PREROUTING -d 192.168.1.35/32 -p tcp -m tcp --dport 587 -j MARK --set-xmark 0x50/0xffffffff
-A PREROUTING -d 192.168.1.35/32 -p tcp -m tcp --dport 465 -j MARK --set-xmark 0x50/0xffffffff
-A PREROUTING -d 192.168.1.35/32 -p tcp -m tcp --dport 717 -j MARK --set-xmark 0x50/0xffffffff
COMMIT
Notez qu’iptables convertit les nombres de marquage en hexa, cad 80 devient 0x50. La configuration principale est terminée. Restent le 2nd load balancer pour Exchange, l’accès aux serveurs réels et le NAT. Voyons ceci.
Gestion des Serveurs Exchange
Les serveurs réels Exchange1&2 peuvent être gérés depuis hyper-v mais c’est loin d’être pratique. Pour gérer les 2 serveurs, j’ai créé 2 serveurs virtuels extra sur LVS qui redirigent toujours vers la même IP, vers un seul serveur réel donc.
J’ai marqué les paquets avec les numéros 1 et 2, respectivement pour Exchange1 et Exchange2, et ajouté les lignes suivantes à iptables.
-A PREROUTING -d 192.168.15.36/32 -j MARK --set-xmark 0x1/0xffffffff
-A PREROUTING -d 192.168.15.37/32 -j MARK --set-xmark 0x2/0xffffffff
Redémarrez les services pulse et iptables et vous devriez avoir les interfaces suivantes:
[root@lb1 ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:15:5D:0F:29:0E
inet addr:192.168.1.33 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::215:5dff:fe0f:290e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:481004253 errors:0 dropped:73168 overruns:0 frame:0
TX packets:305264787 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:380465051896 (354.3 GiB) TX bytes:204324705710 (190.2 GiB)
Interrupt:9 Base address:0x6000
eth0:1 Link encap:Ethernet HWaddr 00:15:5D:0F:29:0E
inet addr:192.168.1.36 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:9 Base address:0x6000
eth0:2 Link encap:Ethernet HWaddr 00:15:5D:0F:29:0E
inet addr:192.168.1.37 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:9 Base address:0x6000
eth0:3 Link encap:Ethernet HWaddr 00:15:5D:0F:29:0E
inet addr:192.168.1.35 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:9 Base address:0x6000
eth1 Link encap:Ethernet HWaddr 00:15:5D:0F:29:0F
inet addr:10.0.1.33 Bcast:10.0.1.255 Mask:255.255.255.0
inet6 addr: fe80::215:5dff:fe0f:290f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:320686576 errors:0 dropped:0 overruns:0 frame:0
TX packets:425280520 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:209496440714 (195.1 GiB) TX bytes:375879165808 (350.0 GiB)
eth1:1 Link encap:Ethernet HWaddr 00:15:5D:0F:29:0F
inet addr:10.0.1.254 Bcast:10.0.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Vous pouvez maintenant joindre Exchange1 & 2 sur les IPs 192.168.1.36 et .37.
Ouvrir l’Accès aux Serveurs Exchange vers l’Extérieur
Le problème majeur est que les serveurs réels ne peuvent pas se connecter au monde extérieur comme ils sont sur un réseau privé. On peut y remédier avec une règle de NAT sur le serveur LVS. Ajoutez ceci à la conf iptables:
Vous trouverez plus d’information sur IP Masquerading sur ce HOWTO Relancez le service pulse une fois la conf LVS achevée, et copiez-la sur le serveur de backup ainsi que le fichier iptables. Vous pouvez utiliser svp à cet effet: scp /etc/sysconfig/ha/lvs.cf lb2:/etc/sysconfig/ha/lvs.cf scp /etc/sysconfig/iptables lb2:/etc/sysconfig/iptables En admettant que lb2 est enregistré dans vos DNS. Faîtes cela à chaque fois que vous modifiez LVS ou iptables.
Surveillance RDP
Au lieu de monitorer le port 80 sur Exchange1 and Exchange2, il vaut mieux vérifier RDP. Téléchargez check_x224 (écrit pour Nagios) vers /usr/local/bin par exemple
# cd /usr/local/bin/
# chmod +x check_x224
Modifiez le script et enlevez le bloc suivant: if elapsed > critical_sec: print(‘x224 CRITICAL: RDP connection setup time (%f) was longer than (%d) seconds’ % (elapsed,critical_sec)) sys.exit(2) if elapsed > warning_sec: print(‘x224 WARNING: RDP connection setup time (%f) was longer than (%d) seconds’ % (elapsed,warning_sec)) sys.exit(1)
Remplacez toutes les intances print(‘x224 OK. Connection setup time: %f sec.|time=%fs;%d;%d;0’ % (elapsed,elapsed,warning_sec,critical_sec)) par print(‘OK’)
et entrez dans « Sending Program » dans le script de monitoring du serveur virtuel Piranha: /usr/local/bin/check_x224 -H 10.0.1.1 pour Exchange1; Remplacez l’IP pour Exchange2.
Cela retournera OK si RDP est actif sur le serveur Exchange.
Persistance et Bascule
Vous devez affecter une valeur dans le champ persistance du serveur virtuel (600 ici) pour que LVS continue de rediriger les paquets vers le même serveur pendant ce temps. Si vous ne le faîtes pas, les paquets d’un client unique seront distribués sur plusieurs serveurs et les connexions ne pourront pas s’établir. Si un serveur réel devient indisponible, la persistance garde les sessions liées à ce server générant une coupure de service. Pour éviter ce comportement, ajoutez les lignes suivantes à /etc/sysctl.conf et exécutez sysctl -p pour appliquer les changements:
La 1re ligne fait tomber les sessions vers un serveur réel qui devient indisponible. La seconde fait la même chose quand un serveur réel est retiré de la conf. Toutes les informations utiles sont disponibles sur http://www.austintek.com.
Si sysctl -p retourne une erreur au reboot sur votre distribution Redhat
error: "net.ipv4.vs.expire_quiescent_template" is an unknown key
error: "net.ipv4.vs.expire_nodest_conn" is an unknown key
Il faut charger le module ip_vs au démarrage. Créez le fichier exécutable suivant:
Il est aussi intéressant de jeter un oeil au manuel d’ipvsadm. La commande donne la possibilité d’afficher les sessions courantes par exemple:
$ ipvsadm -Lcn
Enregistrements DNS dans l’AD
Une dernière chose: les serveurs Exchange vont s’enregistrer dans l’AD avec leurs IPs privées. Modifiez les DNS sur votre contrôleur de domaine avec les IPs externes pour que la résolution retourne les valeurs correctes. Assurez-vous de désactiver l’enregistrement automatique DNS dans les paramètres IPv4 de vos cartes réseau si vous ne voulez pas que les paramètres DNS soient écrasés. C’est une bonne idée d’ajouter les IPs internes des serveurs Exchange à leif fichier host pour leur communications directes.
Maintenance des Serveurs Exchange
Si vous voulez mettre à jour un serveur Exchange, il est préférable de le désactiver pour que personne ne puisse établir une nouvelle connexion pendant que les services s’arrêtent et redémarrent. Exécutez
$ ipvsadm -l
pour vérifier le statut actuel puis
ipvsadm -e -f 80 -r exchange_server_ip:80 -w 0 -m
pour mettre le poids à 0. Remplacez avec 1 pour le remettre à 1. Les connexions établies ne basculeront pas sur l’autre serveur tant que les services ne s’arrêtent pas mais personne ne pourra faire une nouvelle connexion tant que le poids n’est pas remis à 1.
Windows 2003 Server et XP ne fournissent pas d’outil pour agrandir la partition de boot. Diskpart, le gestionnaire de disques par défaut de Microsoft, ne fonctionne qu’avec les volumes secondaires uniquement. Dans ce contexte, Dell ont développé ExtPart, une application gratuite à télécharger qui fonctionne sur n’importe quel matériel (Je l’ai testé sur des serveurs HP).
Téléchargez Extpart – Dell Basic Disk Expansion – sur le site de Dell.
En exécutant le fichier, vous pourriez avoir une alerte que ce n’est pas compatible 32-bit. Ce n’est pas grave puisque ce n’est qu’un fichier compressé. Exécutez extpart.exe sur une plate-forme 32 bit et copiez le fichier décompressé sur le serveur 2003 ou le PC.
Pour agrandir le lecteur C:, ouvrez le prompt, changer de répertoire pour celui du programme extpart et exécutez:
extpart.exe C: 1024
Ceci agrandira la partition d’1Go (1024 Mo). Assurez-vous d’abord qu’il y a bien de l’espace libre pour agrandir la partition.
Si vous obtenez le message « Unable to connect to C: or it does not exist », redémarrez en safe mode et exécutez la commande une nouvelle fois.
Avoir un relais DHCP sur un switch niveau 2 peut paraître absurde. Je me suis retrouvé avec un serveur DHCP planté sans avoir la main sur la configuration du routeur qui appartenait au FAI, tout cela sur un site distant. C’était donc ma seule option pour éviter un changement massif pour des IPs statiques. Certains diront que le matériel de niveau 2 ne peut pas gérer le DHCP mais voyez plutôt, ça fait partie de la liste des fonctionalités du Catalyst 2960 de Cisco… Ca fonctionne même sur un modèle équipé d’une image LAN base.
J’ai tout d’abord créé une nouvelle étendue sur le serveur DHCP Windows de mon site principal dont l’adresse IP est 192.168.15.240.
Et voici comment j’ai configuré mon Cisco 2960: petit site, un vlan (VLAN 50), tous les ports dans le même vlan
interface Vlan50
ip address 192.168.50.11 255.255.255.0
no ip route-cache
!
ip default-gateway 192.168.50.254
service dhcp
ip dhcp pool My_Dhcp_Pool
relay source 192.168.50.0 255.255.255.0
relay destination 192.168.15.240
!
Assurez-vous d’avoir la connectivité vers le serveur DHCP
commutateur# ping 192.168.15.240
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.15.240, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 33/42/59 ms
L’interface vlan du switch doit être configurée avec une adresse IP et un masque réseau appropriés. Elle doit ensuite être activée avec la commande no shutdown. Comme le switch n’a qu’une seule interface, il ne peut fournir des IPs que sur une plage unique. Je ne pense pas qu’une requête DHCP reçue sur un port affecté à un vlan différent obtienne une réponse, je ne l’ai pas testé par contre.
Désactivez le relais DHCP si vous n’en avez plus besoin
Une multitude d’enregistrements relatifs à la comptabilisation sont générés par Freeradius. Est-ce utile de les sauvegarder? Bien sûr que oui! De part le fait que l’on puisse vérifier qu’un client était connecté à une date donnée, ou obtenir son adresse IP ce même jour, le plus intéressant est que l’on peut générer des rapports sur sa consommation et rendre ces données accessibles aux utilisateurs, notamment download et upload. Ceci est particulièrement intéressant pour les fournisseurs d’accès. De nombreuses autres applications peuvent être développées à partir de là: – Facturer les clients en se basant sur leur trafic – Facturer le Mega supplémentaire lorsque le quota a été atteint – Suspendre ou restreindre la bande passante des utilisateurs qui ont passé leur quota – Ou simplement détecter ceux qui abusent du service Ceux-ci ne sont que quelques exemples mais de nombreuses applications sont envisageables à partir de cela.
Fonctionnalités
Ces scripts sont déjà employés par des fournisseurs d’accès Internet mais pourraient l’être par quiconque vraiment utilisant Freeradius.
Ils fournissent: – La détection de l’IP des clients. L’utilisateur n’a pas besoin d’entrer son nom d’utilisateur ou son adresse IP. – Personnalisation des en-têtes et pieds de page – Installation facile. Décompressez l’archive et entrez les paramètres de votre système – Partie admin pour monitorer n’importe quel client – Affichage de tous les jours même s’il n’y a pas eu de trafic
Pour obtenir de meilleurs résultats, jetez un oeil ici pour ajouter des enregistrements à intervals réguliers. Sans cela, vous aurez des jours sans trafic du fait que le protocole Radius n’envoie des enregistrements qu’au début et à la fin d’une session. Vous devrez installer Freeradius et enregistrer les données dans une base Mysql, Postgresql ou Oracle. Perl et ses modules DBI sont aussi requis. Visitez www.perl.com.
Il est recommandé de créer des index sur le champ UserName des tables radacct et radcheck pour accélérer le script Le générateur de graphiques est compatible avec tous les Freeradius jusqu’à la dernière version 2.2
Téléchargement
Envie d’essayer? Obtenez gratuitement ce générateur de graphiques de trafic Radius dans la section download! Télécharger ( hits)
Note: cette version ne supporte que Mysql. Voir ci-dessous pour Postgresql et Oracle. Afin d’améliorer ces scripts, n’hésitez à nous contacter à contact@netexpertise.eu pour partager vos idées.
Script avancé
Bénéficiez de ces nouvelles fonctionnalités ajoutées au script précédent – Affichage par jour ou par mois – Affichage du trafic ou du nombre de déconnexions – Spécification des dates de début et de fin – Interactivité par le biais d’un formulaire – Sélection des dates depuis un calendrier – Personnalisation des couleurs des graphs pour correspondre à votre site – Supporte Postgresql et Oracle
Testez cette DEMO et obtenez la version avancée pour seulement 20€!