Coup de projecteur sur les fonctionnalités des zones SolarisAmy Rich Dernière mise à jour le 07 septembre 2004 Une nouvelle et intéressante fonctionnalité du système d'exploitation Solaris 10 (qui est d'abord apparue dans Solaris Express 6/04) est la technologie de conteneurs Solaris, un moyen de virtualiser les ressources système et d'utiliser plusieurs partitions logicielles à partir d'une même instance du SE. Les conteneurs Solaris comprennent deux composants majeurs : la technologie de partitionnement en zones Solaris et les outils de gestion des ressources. Les zones Solaris permettent à l'administrateur de créer des environnements séparés pour les applications en cours d'exécution, tandis que la structure de gestion des ressources permet l'affectation, la gestion et la comptabilisation des ressources système, telles que les processeurs et la mémoire. Les conteneurs Solaris sont indépendants du matériel et sont disponibles sur toute machine supportant le SE Solaris 10. Les conteneurs Solaris sont en développement constant, attendez-vous donc à une plus grande flexibilité et à plus de fonctionnalités dans les futures versions du SE Solaris 10. Pour de plus amples informations, reportez-vous au Guide d'administration système : Conteneurs Solaris – Gestion des ressources et zones Solaris sur docs.sun.com et également à la section de BigAdmin sur les zones Solaris. Introduction au logiciel de zones SolarisLa fonction zones Solaris repose sur le même concept de base que les jails de FreeBSD. Dans les jails de FreeBSD et les zones de Solaris, chaque affichage virtuel de l'environnement d'exécution est entièrement séparé et les processus d'un environnement donné ne peuvent pas envoyer de signaux à un autre environnement ou même voir ses processus. Les jails et les zones ne partagent qu'une seule instance du système d'exploitation, permettant ainsi à plusieurs environnements d'exécution de coexister sur une machine avec un seul processeur. Il existe deux types de zones : les zones globales et non globales. Une machine avec la fonctionnalité zones Solaris activée possède une zone globale et jusqu'à 8191 zones non globales. Le nombre maximal de zones que la machine peut prendre en charge dépend des ressources matérielles disponibles sur cette machine. Chaque zone possède un identifiant (ID) assigné par le système lorsqu'il est initialisé avec la zone globale, systématiquement présentée comme zone ID 0. Seule la zone globale contient un noyau Solaris amorçable et possède les informations concernant tous les périphériques, les systèmes de fichiers et les autres zones. La zone globale est également la seule zone à partir de laquelle la configuration, l'installation et la gestion de zones non globales sont possibles. Les zones non globales contiennent un sous-ensemble du système d'exploitation Solaris installé dans la zone globale et éventuellement d'autres packages non installés dans la zone globale. Chaque zone non globale possède sa propre base de données répertoriant les packages qui y sont installés et ne partage pas les informations relatives à ces packages avec la zone globale ou d'autres zones non globales. Les zones non globales contiennent également des informations de configuration localisées et d'autres fichiers et répertoires qui leur sont propres. Configuration d'une zone non globaleLes zones non globales sont créées par l'administrateur de la zone globale à l'aide des commandes zonecfg -z zonename zonecfg -z zonename subcommand zonecfg -z zonename -f command_file zonecfg help Les sous-commandes de la commande
add <resource-type>
(global scope)
add <property-name> <property-value>
(resource scope)
cancel
commit
create [-F] [ -b | -t <template> ]
delete [-F]
end
exit [-F]
export [-f output-file]
help [commands] [syntax] [usage] [<command-name>]
info [<resource-type> [property-name=property-value]*]
remove <resource-type> { <property-name>=<property-value> }
(global scope)
remove <property-name>=<property-value>
(resource scope)
revert [-F]
select <resource-type> { <property-name>=<property-value> }
set <property-name>=<property-value>
verify
Pour configurer une zone de base, exécutez zonecfg -z myzone zonecfg:myzone> create zonecfg:myzone> export create -b set autoboot=false add inherit-pkg-dir set dir=/lib end add inherit-pkg-dir set dir=/platform end add inherit-pkg-dir set dir=/sbin end add inherit-pkg-dir set dir=/usr end Vous pouvez maintenant modifier le modèle par défaut. Cet exemple configure la zone zonecfg:myzone> set zonepath=/zones/myzone zonecfg:myzone> set autoboot=true zonecfg:myzone> add net zonecfg:myzone:net> set address=192.168.1.7/24 zonecfg:myzone:net> set physical=hme0 zonecfg:myzone:net> end zonecfg:myzone> add inherit-pkg-dir zonecfg:myzone:inherit-pkg-dir> set dir=/opt/sfw zonecfg:myzone:inherit-pkg-dir> end zonecfg:myzone> add fs zonecfg:myzone:fs> set dir=/usr/local zonecfg:myzone:fs> set special=/data zonecfg:myzone:fs> set type=lofs zonecfg:myzone:fs> add options [nodevices] zonecfg:myzone:fs> end zonecfg:myzone> verify zonecfg:myzone> export create -b set zonepath=/zones/myzone set autoboot=true add inherit-pkg-dir set dir=/lib end add inherit-pkg-dir set dir=/platform end add inherit-pkg-dir set dir=/sbin end add inherit-pkg-dir set dir=/usr end add inherit-pkg-dir set dir=/opt/sfw end add fs set dir=/usr/local set special=/data set type=lofs add options nodevices end add net set address=192.168.1.7/24 set physical=hme0 end zonecfg:myzone> commit zonecfg:myzone> export -f /tmp/myzone-zone.cfg zonecfg:myzone> exit La zone est maintenant configurée et le modèle utilisé est enregistré dans zoneadm -z zonename subcommand [options] zoneadm [-z zonename] list [options] zoneadm help Et la commande boot halt help [subcommand] install list [-cipv] ready reboot uninstall [-F] verify Installation et initialisation d'une zone non globalePour installer la zone, il suffit d'exécuter la commande suivante : zoneadm -z myzone install Preparing to install zone <myzone>. Creating list of files to copy from the global zone. Initializing zone product registry. Determining zone package initialization order. Preparing to initialize <779> packages on the zone. Initialized <779> packages on zone. Successfully initialized zone <myzone>. Initialisez maintenant la zone afin d'afficher l'environnement d'exécution de la zone et connectez-vous à la console de la zone en utilisant zoneadm -z myzone boot zlogin -C myzone Puisqu'il s'agit de la première initialisation de la zone après son installation, elle ne possède pas de configuration de nommage interne et vous invite à saisir les informations requises via la console. Le nom d'hôte de la zone est par défaut le nom de la zone. Le nom choisi doit se résoudre à l'une des adresses IPv4 de la zone, en fonction des services de nommage interne de la zone (DNS, LDAP, fichiers, NIS, NIS+ et autres). La zone peut utiliser des services de nommage distincts de ceux de la zone globale et même lorsque des services de nommage identiques sont configurés, ils sont exécutés de façon indépendante. La zone utilise L'état de chaque zone en cours d'exécution peut être affiché à partir de la zone globale en exécutant :
zoneadm list -v
ID NAME STATUS PATH
0 global running /
2 myzone running /zones/myzone
Ceci permet de vérifier que la nouvelle zone est maintenant initialisée et prête à l'emploi. Si la commande Une zone nouvellement initialisée est similaire à un ordinateur récemment installé. Il n'y a aucun compte utilisateur ou paramètres de configuration autre que la configuration par défaut. La première étape pour préparer la nouvelle zone à un usage de production est de créer des comptes, d'ajouter des logiciels supplémentaires et de personnaliser la configuration de la zone. L'administrateur de la zone globale peut alors se connecter en tant qu'utilisateur normal dans la zone non globale en utilisant l'indicateur zlogin -l user zonename La commande zlogin myzone ls -al / total 126 drwxr-xr-x 19 root other 512 Mar 8 12:45 . drwxr-xr-x 19 root other 512 Mar 8 12:45 .. lrwxrwxrwx 1 root root 9 Mar 8 12:03 bin -> ./usr/bin drwxr-xr-x 2 root other 512 Mar 8 12:02 data drwxr-xr-x 10 root other 1024 Mar 8 12:45 dev drwxr-xr-x 51 root sys 3584 Mar 8 13:36 etc drwxr-xr-x 2 root sys 512 Feb 12 11:42 export dr-xr-xr-x 1 root root 1 Mar 8 12:45 home drwxr-xr-x 5 root sys 512 Mar 8 12:03 kernel drwxr-xr-x 4 root bin 4608 Feb 12 12:17 lib drwxr-xr-x 2 root sys 512 Mar 8 12:04 mnt dr-xr-xr-x 1 root root 1 Mar 8 12:45 net drwxr-xr-x 5 root sys 512 Mar 8 12:03 opt drwxr-xr-x 43 root sys 1536 Feb 12 11:52 platform dr-xr-xr-x 64 root root 30400 Mar 8 16:27 proc drwxr-xr-x 2 root sys 1024 Feb 12 11:48 sbin drwxrwxrwt 4 root sys 314 Mar 8 16:19 tmp drwxr-xr-x 38 root other 1024 Jul 18 2003 usr drwxr-xr-x 33 root sys 512 Mar 8 12:45 var Le mode non-interactif de Pour supprimer la zone zlogin myzone shutdown -y -i0 -g0 zoneadm -z myzone uninstall -F zonecfg -z myzone delete -F Obtenir et configurer des informations de zones non globales depuis la zone globaleEn plus de l'utilisation dezonecfg, zoneadm, zonename et zlogin, diverses commandes système standard ont été modifiées pour permettre aux informations d'une zone d'être visualisées et modifiées depuis la zone globale.
Contrôle des processus La commande
/bin/ps -efo user,zone,pid,ppid,c,stime,tty,time,comm |grep myzone
root myzone 18386 1 0 12:45:24 ? 00:00 /usr/sbin/syslogd
root myzone 18527 1 0 12:47:04 ? 00:00 /usr/lib/ssh/sshd
root myzone 18630 18527 0 13:38:26 ? 00:03 /usr/lib/ssh/sshd
root myzone 18300 1 0 12:45:22 ? 00:00 init
root myzone 18512 1 0 12:45:33 ? 00:01 /usr/sfw/sbin/snmpd
root myzone 18399 1 0 12:45:24 ? 00:00 /usr/sbin/cron
root myzone 18638 18634 0 13:38:31 pts/2 00:00 -sh
root myzone 18523 18300 0 12:47:03 ? 00:00 /usr/lib/saf/sac
root myzone 18401 1 0 12:45:25 ? 00:00 /usr/lib/autofs/automountd
daemon myzone 18324 1 0 12:45:23 ? 00:00 /usr/lib/crypto/kcfd
root myzone 18656 18638 0 13:44:26 pts/2 00:00 tcsh
daemon myzone 18349 1 0 12:45:23 ? 00:00 /usr/sbin/rpcbind
root myzone 18400 1 0 12:45:24 ? 00:00 /usr/sbin/nscd
root myzone 18402 1 0 12:45:25 ? 00:00 /usr/sbin/inetd
smmsp myzone 18435 1 0 12:45:29 ? 00:00 /usr/lib/sendmail
root myzone 18434 1 0 12:45:29 ? 00:00 /usr/lib/sendmail
root myzone 18442 1 0 12:45:29 ? 00:00 /usr/lib/utmpd
root myzone 18297 1 0 12:45:09 ? 00:00 zsched
root myzone 18618 18300 0 13:37:58 zoneconsole \
00:00 /usr/lib/saf/ttymon
root myzone 18496 1 0 12:45:31 ? 00:00 /usr/dt/bin/dtlogin
root myzone 18526 18523 0 12:47:03 ? 00:00 /usr/lib/saf/ttymon
Un certain nombre de commandes a été amélioré pour filtrer par zones les informations qu'elles affichent ou pour inclure la zone à laquelle appartient un processus. Les commandes Dans le SE Solaris, Systèmes de fichiers Lorsqu'il est exécuté à partir de la zone globale, l'indicateur df -Z / (/dev/dsk/c0t1d0s0 ): 1881482 blocks 247016 files /devices (/devices ): 0 blocks 0 files /usr (/dev/dsk/c0t1d0s3 ): 859490 blocks 271499 files /proc (proc ): 0 blocks 1837 files /etc/mnttab (mnttab ): 0 blocks 0 files /dev/fd (fd ): 0 blocks 0 files /var (/dev/dsk/c0t1d0s4 ): 1889810 blocks 239530 files /var/run (swap ): 2111168 blocks 15280 files /tmp (swap ): 2111168 blocks 15280 files /zones (/dev/dsk/c0t1d0s5 ): 60468666 blocks 3681959 files /zones/myzone/root/dev(/zones/myzone/dev ): 60468666 blocks 3681959 files /zones/myzone/root/lib(/lib ): 1881482 blocks 247016 files /zones/myzone/root/opt/sfw(/opt/sfw ): 60468666 blocks 3681959 files /zones/myzone/root/platform(/platform ): 1881482 blocks 247016 files /zones/myzone/root/sbin(/sbin ): 1881482 blocks 247016 files /zones/myzone/root/usr(/usr ): 859490 blocks 271499 files /zones/myzone/root/usr/local(/data ): 1881482 blocks 247016 files /zones/myzone/root/proc(proc ): 0 blocks 1837 files /zones/myzone/root/etc/mnttab(mnttab ): 0 blocks 0 files /zones/myzone/root/dev/fd(fd ): 0 blocks 0 files /zones/myzone/root/var/run(swap ): 2111168 blocks 15280 files /zones/myzone/root/tmp(swap ): 2111168 blocks 15280 files Gestion de réseaux L'utilitaire
ifconfig <interface> zone {<name> | <number>}
ifconfig hme0:3 plumb 192.168.1.8 netmask 255.255.255.0 zone myzone up
Pour afficher la liste des interfaces IP limitées à la zone globale, depuis cette dernière, utilisez
ifconfig -a
lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4>
mtu 8232 index 1
inet 192.168.1.7 netmask ff000000
lo0:1: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4>
mtu 8232 index 1
zone myzone
inet 127.0.0.1 netmask ff000000
hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4>
mtu 1500 index 2
inet 192.168.1.4 netmask ffffff00 broadcast 192.168.1.255
ether 8:0:20:9e:b5:40
hme0:1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4>
mtu 1500 index 2
zone myzone
inet 192.168.1.7 netmask ffffff00 broadcast 192.168.1.255
ifconfig -aZ
lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4>
mtu 8232 index 1
inet 192.168.1.7 netmask ff000000
hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4>
mtu 1500 index 2
inet 192.168.1.4 netmask ffffff00 broadcast 192.168.1.255
ether 8:0:20:9e:b5:40
Comptabilisation Lorsque vous utilisez la comptabilisation étendue ( Ressources
Comments (latest comments first)Discuss and comment on this resource in the BigAdmin Wiki
Unless otherwise licensed, code in all technical manuals herein (including articles, FAQs, samples) is provided under this License. |
BigAdmin SubscriptionsBigAdmin Areas
BigAdmin Sun Center
BigAdmin Topics | ||||