2010-12-13 43 views
0

Ceci est un peu lié à ma question précédente Solaris: Mounting a file system on an application's handlers sauf que cette question est pour un but différent et est plus simple car il n'y a pas d'ouverture/fermeture/verrouillage c'est juste un bloc de longueur fixe d'octets avec des opérations de lecture/écriture.Solaris: tranches/disques virtuels à utiliser avec ZFS

Y at-il de toute façon je peux créer une tranche virtuelle, un peu comme un disque RAM ou une tranche de SVM .. mais je veux que les lectures et écritures à passer par mon application.

Je prévois d'utiliser ZFS de prendre plusieurs de ces tranches virtuelles/disques et les transformer en une plus grande pour le stockage de sauvegarde distribuée avec des instantanés. J'aime vraiment la compression et l'empilage qu'offre ZFS. Si nécessaire, je peux garantir qu'il n'y a qu'une seule instance de ZFS accédant à ces disques virtuels à la fois (pour éviter les conflits de cache et autres). Si une instance tombe en panne, nous pouvons nous assurer qu'elle ne redémarrera pas et nous pourrons alors démarrer une autre instance de ce ZFS. Je prévois d'avoir ces disques en morceaux d'environ 4 Go, alors je peux me déplacer autour de chaque morceau et décider où les stocker (plusieurs fois en miroir bien sûr) et ensuite avoir ZFS accéder aux morceaux et les mettre ensemble en plus gros morceaux pour une utilisation réelle. De plus, ZFS permettrait d'ajouter ces petits morceaux si nécessaire pour augmenter la taille du gros morceau.

Je suis conscient qu'il y aurait un trafic supplémentaire de latence/réseau si nous avons utilisé ma propre application en Java, mais cela est juste pour le stockage de sauvegarde. Le stockage de production est une configuration entièrement différente qui ne se rapporte pas.

Édition: Nous avons un système qui utilise tout l'espace disponible et, fondamentalement, lorsqu'il n'y a pas assez d'espace, il enlèvera les anciens clichés et augmentera les intervalles entre les anciens clichés. Le but de ma proposition est de permettre à l'espace inutilisé de l'équipement de production d'être mis en service sans frais supplémentaires. A différents moments, différentes unités de notre équipement de production auront de l'espace libre. De plus, le système que je décris devrait éliminer tout point de défaillance unique lors de la tentative d'accès aux données. J'espère ne pas devoir acheter deux grandes unités et les garder synchronisées. Je préférerais simplement avoir deux points d'accès, puis nous pourrions mélanger les grandes/petites unités comme bon nous semble et déplacer les données de façon transparente.

Ceci est un post croisé car il s'agit plus d'un problème lié au logiciel que de sysadmin. La question originale est ici: https://serverfault.com/questions/212072. Cela peut être une bonne idée de fermer l'original

Répondre

-1

Il semble que tout fichier de longueur fixe sur tout système de fichiers pour faire un dispositif de bloc pour une utilisation avec ZFS. Je ne suis pas sûr de la façon dont les redémarrages fonctionnent, mais je suis sûr que nous pouvons écrire des commandes de démarrage pour y arriver.

Edit: Le fichier de longueur fixe serait sur un système de fichiers réseau tel que NFS.

+1

Je suis probablement manque quelque chose, mais je ne comprends pas comment votre réponse auto est acceptée correspondant le « mais je veux que les lectures et écritures à passer par mon application » exigences.Deux autres commentaires sur votre réponse: un fichier ordinaire doit avoir une taille minimale pour être utilisé comme stockage de sauvegarde zpool (64 Mo) et le redémarrage ne pose pas de problème car ZFS maintient un cache persistant avec les paramètres zpool, il n'y aurait donc pas besoin de commandes de démarrage personnalisées. – jlliagre

+0

Désolé, je n'étais pas clair. J'ai séparément demandé [une question qui était sur la façon d'avoir un système de fichiers réseau (similaire à NFS) en utilisant les gestionnaires de mon application] (http://stackoverflow.com/questions/4370125/solaris-mounting-a-file-system- sur-an-applications-handlers). Ensuite, le fichier de longueur fixe sur le système de fichiers réseau pourrait être utilisé par ZFS. Agréable de connaître la taille de fichier minimale (64MB) .. En fait, je prévoyais sur 4Go ou plus. –

2

Une façon serait d'écrire un pilote de périphérique Solaris, précisément un périphérique bloc qui émule un vrai disque mais qui communiquera à la place à votre application.

Commencez par lire le Device Driver Tutorial, puis jetez un oeil à OpenSolaris source code pour le code réel des pilotes.

Alternativement, vous pouvez modifier la cible Solaris Enquêter iSCSI pour être l'interface avec votre application. Encore une fois, en regardant OpenSolaris COMSTAR sera un bon début.