Page 2 sur 2

Config pour projet perso : load balancing, mysql, LAMP

Publié : ven. 6 mars 2009 17:57
par Ryu_wm
j'avais lu il y a peu, mais il faut une sacré infrastructure tout de meme :/

pour un particulier ça devient chaud...

Config pour projet perso : load balancing, mysql, LAMP

Publié : ven. 6 mars 2009 18:24
par Dream49
j'avais lu il y a peu, mais il faut une sacré infrastructure tout de meme :/

pour un particulier ça devient chaud...
on l'utilise au boulot et je confirme :d

Config pour projet perso : load balancing, mysql, LAMP

Publié : ven. 6 mars 2009 19:00
par Kronick
arf :/
en même temps je viens aussi de voir les tarifs ça refroidit aussi
même si je l'aurais pas acheté :D
donc pour résumer au vue de tous les conseils :
Un firewall -> vers Apache 2 (sur une Debian raid 1 ) / Php. (PowerEdge 2650)
un serveur MySql (eServer x345 raid 5) connecté vers Apache, mais aucun accès de l'extérieur. Enfin le serveur Web communiquera aussi avec le serveur de stockage (config perso : AMD AThlon 64 x2 3800+, 4 go de ram, disque de 1 to en raid 1 pour commencer )

OU :
Serveur Debian (eServer x345 : raid 5, 4 go ram) sur lequel tournent deux VM : le serveur Apache + Php, une VM pour le serveur MySql et je garde l'autre tour pour en faire le serveur de stockage.

Sur ce même serveur de stockage tournera une VM qui sera un LAMP complet de pré-prod (donc déploiement systématique des dev dessus, tests; et mise en prod )

qu'en pensez vous ? :jap:

Config pour projet perso : load balancing, mysql, LAMP

Publié : ven. 6 mars 2009 20:15
par chour@mih-fr
De rien :)
Je ne mettrais pas mes data en raid 5 personnellement. Même si Oracle n'est pas MySQL, ils "interdisent" d'utiliser le raid 5 pour y mettre leurs bases, car le calcul de parité détruit les performances, même si tu as du sas en 15k :(

Je continuerais ma prose plus tard, l'assiette m'appelle :D

Config pour projet perso : load balancing, mysql, LAMP

Publié : ven. 6 mars 2009 20:27
par Kronick
bon appétit, merci pour le raid 5 je savais pas,
quel est le plus simple ? raid 1 ou raid 0 pour les perf avec une sauvegarde automatique (cron ) ?

Config pour projet perso : load balancing, mysql, LAMP

Publié : ven. 6 mars 2009 20:49
par chour@mih-fr
Le must : RAID10 : c'est un raid 1 de raid 0 :) Comme tu n'auras pas 1To de data pour ta base mysql, un raid 10 de 4*36Go ce sera bon :)

Perso, je ne sais pas fan de la virtualisation : si tu as un pépin hard quel qu'il soit, ça t'oblige à arrêter tous tes serveurs virtuels. J'ai fait une mise à jour firmware sur un p5 cet aprem, j'ai du arrêter mes 3 partitions alors que seule 1 était concernée (partition = serveur virtuel).


MySQL gère plutôt pas mal le mode cluster, ce sera toujours mieux que de mettre un LB pour 2 serveurs MySQL. D'ailleurs pour moi c'est impossible, car si tu mets un LB et 2 serveurs data, comment tu fais pour la synchro des data ? A moins que tu ais un systeme avec vhd à la oracle (un espace disque pour 2 serveurs, gérés intelligemment par oracle, pas de soucis de conflicts, mais il faut du cpu et de la ram en quantité par contre pour gérer le cache).
Si tu veux mettre un LB, mets le juste après ta connexion web pour répartir la charge sur tes 2 Apache/php.

Tes 2 Dell feront parfaitement et largement l'affaire pour le serveur web, tout comme l'IBM fera amplement l'affaire aussi comme serveur MySQL. Niveau machine, comme tu le dis, tu es OK.


Pour les sauvegardes automatiques MySQL, tu as l'outil mysqldump je crois, tu mets dans un beau petit script dans ta cron (si possible cron du compte mysql pour est tiptop), et roulez jeunesse :)


Autre solution : comme on sait que les lenteurs causées sur les forums sont la plupart du temps dûes à MySQL, pourquoi ne pas mettre plutôt 1 seul serveur Apache/mysql et faire un cluster MySQL ? La ça pourrait être un bon petit challenge ;) Quitte ensuite à doubler l'apache avec le serveur LB et te dégoter un altéon sur ebay :D

Config pour projet perso : load balancing, mysql, LAMP

Publié : ven. 6 mars 2009 21:33
par Kronick
:jap:
en effet je suis parti dans un premier temps maintenant sur 0 LB.
Pour résumer : le powerEged 2650 avec VMWare ESX : deux VM : une apache /php. et l'autre un LAMP complet de préprod
Sur le eServer x354 : raid 10 pour le serveur MySql uniquement
après ta / vos lectures, j'ai "sous estimé" MySql, cette base est bien plus gourmande / critique que je ne l'avais pensé. N'ayant que travaillé avec sur des "petits trucs", je réalise mieux aujourdh'ui son rôle :)

sur le serveur de backup, rien d'autre pour le moment.

Je pense valider cette configuration pour plusieurs choses : je dédie le eServer à la bdd / je peux ensuite aisément la mettre en cluster (pour le moment je m'abstiens, et si elle fatigue alors j'essaie le cluster)

ensuite, je garde quand même deux VM Prod et préprod sur un seul serveur. J'hésite quand même encore un peu, parce que si je serveur plante (même si c'est rare), alors les deux sites sont KO. Peut-être devrais-je mettre la préprod ailleurs pour qu'en cas de plantage de la prod, je puisse mettre la préprod en prod ?

Sur cette même préprod (donc une VM sur le 2650) il y aura également Zabbix par exemple.
Dans l'histoire, il me reste un ProLiant DL 360 :D mais bon, il peut toujours servir à autre chose que ce projet (serveur perso à bidouille par exemple)


Pour le serveur de backup, je n'ai pas besoin de config musclée pour le moment, d'autres choses perso pourront même tourner sur ce serveur (d'autres VM), comme le proc est puisant (Athlon 64 x2), je ne me fais pas de soucis)

j'ai donc un parc "ventilé" et je pense que comme ça je peux facilement load-balancer au fur et à mesure les serveurs : par exemple coupler le 2650 à un autre 2650 si Apache fatigue, etc... pareil pour le serveur de backup, j'en ajoute un autre et je peux envisager un trunking par exemple, etc...

voila encore merci ça va vite avec vous ;)

Config pour projet perso : load balancing, mysql, LAMP

Publié : ven. 6 mars 2009 23:21
par Ryu_wm
pour MySQL il y a aussi la possibilité de faire de la réplication en un master et plusieurs slave, le failover etant ( je crois ) pris en charge aussi de cette manière.

Config pour projet perso : load balancing, mysql, LAMP

Publié : sam. 7 mars 2009 09:35
par chour@mih-fr
ensuite, je garde quand même deux VM Prod et préprod sur un seul serveur. J'hésite quand même encore un peu, parce que si je serveur plante (même si c'est rare), alors les deux sites sont KO. Peut-être devrais-je mettre la préprod ailleurs pour qu'en cas de plantage de la prod, je puisse mettre la préprod en prod ?
Oh que oui ! Mes préprod sont toujours à l'image de la prod (enfin en minorité surtout niveau perf), mais niveau applicatif prod = preprod, donc sur 2 serveurs physiques séparés.

Fait ta dev+preprod sur ton Proliant :D
Aussi, si tu veux faire un jour du cluster avec mysql, il te faudra un LB (j'avais lu un topic la dessus, un membre de SMP-Fr en avait créé dans Software).


Config pour projet perso : load balancing, mysql, LAMP

Publié : sam. 7 mars 2009 09:43
par chour@mih-fr
Je ne saurais pas te dire quels sont les modèles exacts que l'on a chez nous, mais voici une offre d'alteon sur la baie :)

Config pour projet perso : load balancing, mysql, LAMP

Publié : sam. 7 mars 2009 10:04
par Kronick
pour la preprod, du coup, oui pourquoi pas passer la préprod sur le petit proLiant :)

ensuite pour l'alteon, c'est pas donné pour moi encore :lol:
ceci dit ça rox :love:

Config pour projet perso : load balancing, mysql, LAMP

Publié : sam. 7 mars 2009 10:10
par chour@mih-fr
Mais il en faut 2 alteon :D Car si le master crame = plus de flux :D

Tiens, je t'ai fait un petit crobar sur l'archi classique pour une appli web sécurisée :

Image


Config pour projet perso : load balancing, mysql, LAMP

Publié : sam. 7 mars 2009 10:30
par Kronick
:love:
ok merci, je n'aurais jamais deviné de foutre un firewal. "devant" chaque serveur
Question con : pourquoi 3 DMZ / isolation si "drastique" ?
quid du lan ? un même subnet pour toute l'archi / VLAN / différents subnets ?
:jap:

Config pour projet perso : load balancing, mysql, LAMP

Publié : sam. 7 mars 2009 10:50
par Ryu_wm
ça parait joli tout ça
mais pour un particulier ça fait des couts elevés juste pour fournir des flux web :lol:

Config pour projet perso : load balancing, mysql, LAMP

Publié : sam. 7 mars 2009 10:59
par Kronick
oui c'est clair :)
mais dans un premier temps, au fil des mois j'ai accumulé des serveurs chez moi, donc c'est l'occasion de tous les mettre en prod [:kronick:6]
ensuite, il y a pleins de choses à apprendre, ne serait-ce que pour ça il y a certains investissement que je serais prêt à faire :)
bon par contre l'alteon pas encore [:kronick:7]

Config pour projet perso : load balancing, mysql, LAMP

Publié : sam. 7 mars 2009 12:43
par chour@mih-fr
On est en prod ou on ne l'est pas :D

C'est un vision idéale, qui n'est pas de moi, mais qui existe dans là où je travaille.

La raison : isoler complètement chaque serveur de toute "menace" extérieur. Car si tu mets tout dans 1 seule DMZ, dès lors que la personne mal intentionnée est dans la bulle c'est fini pour ton appli. Alors qu'avec simplement le flux http d'ouvert sur l'apache, le flux mysql sur le serveur de data, tu limites drastiquement les portes d'accès aux machines :)

Ensuite, si ce n'est qu'un forum, alors soit, tu isoles le tout et basta. Mais si c'est un site de VPC, alors il faut faire ça pour t'assurer de la bonne protection de tes data.

Et oui, 3 réseaux différents, voire de VLAN mais si on LAN principal pète, alors tes VLAN pètent aussi (non ? Je suis une tanche en réseau :D).

Config pour projet perso : load balancing, mysql, LAMP

Publié : sam. 7 mars 2009 12:57
par Kronick
tout dépend de ou tu as défini ton VLAN, par exemple si c'est au niveau du Firewall, il y a une indépendance certaine entre ton VLan et le Lan, il plug le Vlan sur l'interface Lan mais crée une séparation virtuelle.

J'aurais une petite application développé et un forum, rien de plus pour le moment :) par contre, est-ce que ça revient au même par exemple de nater toutes les requêtes vers le serveur web, et bloquer tout le reste depuis un accès externe pour sécuriser les deux autres serveurs ? j'ai l'impression que non.
pour continuer dans cette agréable problématique :
si j'en viens à mettre une DMZ / un firewall devant chaque serveur, qu'est-ce qui doit se faire : prendre 3 firewall de marque différentes ?
ce sont des vrais firewall dans lesquels en fait je recrée toute une archi devant chaque serveur, ou dois-je au contraire avoir des firewall virtuels : iptables sur les deux autres serveurs, netfilter, etc ....
la question en fait c'est plûtot : as-tu créer dans la mesure du possible une VRAIE séparation (par des appliances) ou te contentes-tu d'ajouter des protections supplémentaires sur les serveurs concernés ?
si tu en viens à load-balancer les machines, comment ça se passe :
le cluster MySql dans la DMZ, le LB dans la DMZ, etc ...
:bounce:

Config pour projet perso : load balancing, mysql, LAMP

Publié : sam. 7 mars 2009 14:10
par chour@mih-fr
prendre 3 firewall de marque différentes ?
> Si tu es parano de la sécu alors oui :D Sinon non :)
ce sont des vrais firewall dans lesquels en fait je recrée toute une archi devant chaque serveur, ou dois-je au contraire avoir des firewall virtuels : iptables sur les deux autres serveurs, netfilter, etc ....
> Je ne maîtrise vraiment pas cette partie-là :( Je n'ai jamais fait des réseaux, je fais juste des demandes d'ouvertures de ports à notre entité sécurité, qui les valident et qui demande ensuite le codage sur les FW. Mais je serais tenté de dire que iptable serait amplement suffisant :) A moins que tu ais des FW physiques sous la main :) Sinon tu as IpCop :) :)
la question en fait c'est plûtot : as-tu créer dans la mesure du possible une VRAIE séparation (par des appliances) ou te contentes-tu d'ajouter des protections supplémentaires sur les serveurs concernés ?
> Ni l'un ni l'autre en réalité. Je travaille sur l'existant. Quand on a des applis en DMZ, et si elles sont en cluster, les machines sont sur 2 sites physiques différents, donc 2 FW différents.
Mais sur un des projets en cours que je mène, il y aura une vraie séparation entre la partie appli (certain type de DMZ), et la partie data (une autre dmz). Et seuls les flux identifiés seront codés sur les FW. Car les bulles DMZ sont déjà existantes, on vient juste se greffer dessus.
si tu en viens à load-balancer les machines, comment ça se passe :
le cluster MySql dans la DMZ, le LB dans la DMZ, etc ...
> tout dépend de notre parano : si tu veux être le plus carré possible, alors les 2 apache doivent être sous 2 dmz différentes. Par contre pour les data, c'est bête mais je dirais de laisser 1 seule DMZ. Même si elle sera potentiellement hackable pour 2 voies au lieu d'une, au final on attaquera qu'une seule ip, celle du LB mysql.
Donc soit tu mets ton LB mysql et les 2 serveurs mysql dans la même bulle DMZ, soit tu fais 3 bulles DMZ, 1 par machine.


Mon idée pour ton projet : 1 seul FW (soit un physique, soit une base d'iptables comme ipcop), sur lequel tu codes tous tes flux, de telle ip à telle ip pour tel port et basta. Ce sera le mieux à mon gout, et le moins couteux à mettre en route.

Config pour projet perso : load balancing, mysql, LAMP

Publié : sam. 7 mars 2009 14:59
par Kronick
ok, merci
j'ai tout saisi :D
je suis en train d'étudier, mais je pense qu'avec tout ça j'ai le compromis entre sécurité / simplicité et surtout geekité :D
je vais étudier surtout la répartition des serveurs soit dans un premier temps en tout laissant sur le même Lan par exmeple, en ensuite dans un deuxième temps, commencer à créer des subnets. Si je commence à load balancer alors je penserais aux DMZ :D

je suis aussi en train d'envisager les différentes conditions de remise en service justement : quel est le chemin le plus efficace à emprunter si un des composants de la chaîne venait à défaillir : comment éliminer le SPOF ou remttre rapidement en service la chose. ou même si je me fais hacker, comment isoler la portée de l'attaque.
ENFIN : comment envisager les indisponibilités d'un équipement /

pour continuer :D : fais tu les mises à jour sur les systèmes d'exploitation ? comment ça se passe pour celles qui nécéssitent un reboot ?

:jap:

Config pour projet perso : load balancing, mysql, LAMP

Publié : sam. 7 mars 2009 16:21
par chour@mih-fr
pour continuer :D : fais tu les mises à jour sur les systèmes d'exploitation ? comment ça se passe pour celles qui nécéssitent un reboot ?
soit on coupe le service, soit on fait ça hors service, soit si on est en mode sécurisé, alors on coupe un noeud.