Ajout d'un deuxième server de files pour un site Web

Je gère un site Web qui contient beaucoup de files volumineux et même après avoir acheté la quantité maximale d'espace que mon hôte fournit sur un seul server (lecteurs 8x2TB), j'ai maintenant peu d'espace disque.

Je voudrais append un deuxième server uniquement pour stocker et diffuser des files. Ma question est de savoir quel est le meilleur moyen de faire cela? Le assembly du nouveau server à l'aide de NFS est une façon. Une autre façon est de réécrire mon application pour utiliser plusieurs servers, mais c'est beaucoup de travail.

Existe-t-il un moyen simple d'isoler le stockage sous-jacent du server web de sorte que, pour le server Web, il apparaisse comme un seul path, mais est réellement diffusé sur plusieurs servers?

Mon operating system est Linux CentOS, mon server est Apache.

Notez que le seul problème auquel je suis confronté est l'espace disque, pas la bande passante ou la CPU, etc. Je n'ai pas besoin de réparer le trafic, n'ajoute que plus d'espace.

Je pense que NFS est le path à parcourir, mais il existe d'autres options, comme FreeNAS (FreeBSD), AoE , qui représente ATA sur Ethernet et SAMBA, mais je ne le reorderais pas si vous cherchez également l'interopérabilité de Windows .

Je ne sais pas combien de coûts vous avez. Mais dans ce cas, nous pouvons utiliser NAS ou pour mieux avec SAN pour replace l'espace sur les servers. Avantages avec la zone de stockage

  • Avec NAS / SAN, vous utilisez encore NFS ou un protocole populaire à haute vitesse pour partager des files entre plusieurs servers. Il n'est pas nécessaire de modifier de nombreuses configurations sur les servers.

  • Avec NAS / SAN, vous pouvez étaler vos systèmes à tout moment, vous ne rencontrez jamais les problèmes liés à l'espace disque, car vous pouvez order beaucoup de disque et de plug-in à ce sujet immédiatement. Incroyable que lorsque tous vos servers ne doivent pas nécessairement configurer pour stocker des données en local, et lorsque 1 ou 2 nœuds vers le bas vous exécutez toujours vos services normalement. C'est si bon

Inconvénients avec SAN

  • COÛT. Mais si vous devez order un autre server avec de nombreux disques, que pouvez-vous améliorer?

Lorsque vous commencez à faire face à la quantité de stockage de données que vous avez actuellement, vous n'avez vraiment que deux options aussi loin que je le vois:

1) Utilisez un magasin d'objects comme Amazon S3 ou Rackspace Cloud Files pour vos données. Cela vous donnera une capacité de stockage presque illimitée et vous permettra de libérer votre server de la nécessité de desservir ces files.

2) Commencez à gérer votre propre équipement. Bien sûr, vous pourriez éventuellement créer une sorte de système de files en cluster sur un server dédié géré, mais vous allez lutter contre le système à bien des égards. Afin d'assurer un stockage de données fiable, vous aurez besoin de plusieurs servers, et les coûts augmenteront très rapidement.

Je suggérerais get plus d'espace disque externe. Tout fournisseur d'hébergement sérieux devrait être en mesure de vous fournir un système SAN, qui peut se développer presque illimité. Mais je conseille d'utiliser NFS. Dans mon expérience, apache et NFS ne fonctionnent pas toujours set. Vous êtes préférable d'utiliser un protocole SAN approprié comme iSCSI. Vous voulez un périphérique de disque dédié pour votre server, pas un partage de disque.

Ce que vous voulez habituellement, c'est d'étendre l'set du server avec le nombre de servers. Il est difficile de voir sans connaître les détails de notre application, mais je suggérerais d'utiliser la nature de répartition de votre configuration. Avec HTTP, vous avez une bonne occasion de redirect les requests vers différents servers en fonction du path.

Eh bien, NFS fonctionnera aussi, mais à un moment donné, votre server web sera le col de la bouteille

Il existe de nombreuses réponses sur les avantages des différentes solutions de disque, mais il existe une autre option. Vous pouvez simplement avoir plus d'un server Web et servir différentes parties du site à partir de différents servers.

Une possibilité est de split votre site en fonction du type de ressource. Par exemple: une grande partie du contenu est des images, donc vous configurez un server Web séparé avec les images.yourdomain.com hôte. images.yourdomain.com nom d' images.yourdomain.com . Ensuite, vous modifiez tous les liens vers les images de votre application pour ne plus indiquer par exemple http://www.mysite.com/images/image1.jpg et plutôt à http://images.yourdomain.com/image1.jpg .

Vous pouvez également le faire en utilisant mod_rewrite, de sorte que lorsqu'un browser request une ressource à partir de /images /whatever.jpg il sera réécrit à http://images.yourdomain.com/whatever.jpg .

Une troisième option consiste à utiliser mod_proxy pour transférer certaines requêtes vers un second server sans la réécrire. L'inconvénient est que toutes les requests d'images seront passées à travers les deux servers, affectant CPU, memory et réseau. Même s'ils ne posent aucun problème, ils peuvent être à l'avenir.

Je ne sais pas si quelque chose est utile pour vous; Cela dépendra de la façon dont votre request est écrite.