Oggi avevo la necessità di effettuare dei test su più database MySQL contemporaneamente, inizialmente avevo pensato di utilizzare una installazione sul mio portatile e una sul server aziendale (FreeBSD), poi però avevo la necessità di aggiungere una terza istanza MySQL ed avevo le mani legate… solo in quel momento mi sono venute in mente le zone di OpenSolaris e mi sono deciso ad installare tre zone distinte sul mio portatile, in modo da spostare tutti i test in locale, così da poterli fare anche fuori ufficio!!
Bene, iniziamo creando la prima zona:
# zfs create rpool/export/zones # zonecfg -z mysqlz001 mysqlz001: No such zone configured Use 'create' to begin configuring a new zone. zonecfg:mysqlz001> create zonecfg:mysqlz001> set zonepath=/export/zones/mysqlz001 zonecfg:mysqlz001> set ip-type=shared zonecfg:mysqlz001> add net zonecfg:mysqlz001:net> set physical=wpi0 zonecfg:mysqlz001:net> set address=192.168.0.33/24 zonecfg:mysqlz001:net> set defrouter=192.168.0.254 zonecfg:mysqlz001:net> end zonecfg:mysqlz001> commit zonecfg:mysqlz001> exit
controlliamo che sia tutto OK:
# zoneadm list -vc ID NAME STATUS PATH BRAND IP 0 global running / native shared - mysqlz001 configured /export/zones/mysqlz001 ipkg shared
come noterete la nostra zona è configurata, ora dovrà essere installata e successivamente avviata:
# zoneadm -z mysqlz001 install A ZFS file system has been created for this zone. Authority: Using http://pkg.opensolaris.org:80/. Image: Preparing at /export/zones/mysqlz001/root ... done. Installing: (output follows) DOWNLOAD PKGS FILES XFER (MB) Completed 51/51 7873/7873 209.19/209.19 PHASE ACTIONS Install Phase 12962/12962 PHASE ITEMS Reading Existing Index 8/8 Indexing Packages 51/51 Note: Man pages can be obtained by installing SUNWman Postinstall: Copying SMF seed repository ... done. Postinstall: Working around http://defect.opensolaris.org/bz/show_bug.cgi?id=681 Postinstall: Working around http://defect.opensolaris.org/bz/show_bug.cgi?id=741 Done: Installation completed in 2057.069 seconds. Next Steps: Boot the zone, then log into the zone console (zlogin -C) to complete the configuration process # zoneadm -z mysqlz001 boot
Come ci viene suggerito dopo l’installazione, occorrerà loggarsi alla zona e completare la fase di configurazione, infatti al primo login apparirà un semplice wizard che richiederà tutta una serie di informazioni riguardo al nuovo “host” appena creato (timezone, DNS, password di root ecc…), comunque ogni volta che vogliamo loggarci alla console daremo il comando:
# zlogin -C mysqlz001
oppure, visto che il servizio sshd è attivo di default, possiamo creare un utente ed abilitarlo al login via ssh…
Ora non resta altro da fare che installare mysql nella nostra zona, configurarlo a dovere… e cominciare ad usarlo! Per l’installazione useremo come al solito:
# pkg install SUNWmysql5
Ora basta ripetere le operazioni viste per tutte le zone che vogliamo creare, avendo cura di cambiare il nome!!
Ultima nota, nel mio esempio ho deliberatamente scelto di avviare manualmente le zone quando ne ho bisogno (giusto per risparmiare risorse), comunque se volete che al momento del boot si attivi anche la zona basta settare la relativa proprietà con:
# zonecfg -z mysqlz001 zonecfg:mysqlz001> set autoboot=true zonecfg:mysqlz001> commit zonecfg:mysqlz001> exit
E’ possibile aggiornare anche aggiornare le zone così come avviene per il sistema base, come spiegato in questo nuovo post: Aggiornare le zone.





l’ignoranza: quindi le zone sarebbero una sorta di virtual machine?
era: scusa l’ignoranza
Si, possiamo “intenderle” così, sono virtualizzazioni (partizioni) del sistema stesso; ovviamente puoi limitare le risorse utilizzate da ogni zona (cpu, processi, memoria, disco ecc…), inoltre esistono anche le “branded zone”, che ti permettono di installare su Solaris sistemi differenti da quello di base, come versioni precedenti di Solaris oppure linux, magari può essere un argomento per i prossimi post…