oriolrius.cat

Des del 2000 compartiendo sobre…

Tag: system

Zivios: Introducció

Reading time: 4 – 6 minutes

El mes de Juny vaig parlar-vos de la meva idea de com montar un sistea SSO, concretament era al podcast 1×10. Doncs Zivios malgrat no és literalment una implementació d’aquest sistema si que ens nutreix d’un munt d’eines per tenir un sistema que serveixi de base per aquella idea. De fet, serveix per moltes altres coses i potser la idea que porten els seus creadors és més semblant a crear un sistema de directori (tipus AD) que no pas només un sistema d’SSO. Però sigui com sigui, després d’experimentar unes quantes hores amb el Zivios crec que val la pena que ús en faci cinc cèntims.

Algunes de les funcions de Zivios són:

  • Identity managament
  • Single sign-on
  • User, group and computer provisioning
  • Remote management of services
  • Core Infrastructure Services (NTP,DNS, CA, etc)

El projecte esta encara molt i molt verd, tot just s’ha publicat la versió 0.5.1 i les he passat ‘canutes’ per fer coses ben simples o per entendre com usar l’eina degut a la seva poca documentació, tan és així, que fins hi tot vaig haver d’entrar al canal d’IRC que tenen com a suport a parlar amb alguns dels desenvolupadors perquè em donessin un cop de mà per entendre algunes coses. De fet, hi ha diverses coses que pretenc integrar amb Zivios que encara no hem funcionen. Però malgrat totes aquestes notes de poca maduresa del projecte, el tema promet moltíssim i l’enfoc que li han donat a les coses m’encanta.

Per començar, les eleccions de les aplicacions Open Source que han escollit ja m’han semblat un gran què: MySQL, OpenLDAP, Heimdal Kerberos, PHP5, Memcached, Python+Twisted, XMLRPC, OpenSSL i moltes altres eines que formen part del meu dia a dia. Així doncs, no suposa un gran problema anar a mirar les entranyes del Zivios per entendre com funcionen algunes de les seves parts. Totes aquestes eines es combinen en un model client-servidor per tal de poder administrar de forma centralitzada diverses funcions de les estacions de treball, servidors, serveis i d’altres.

Cal destacar també que els serveis que s’administren des de Zivios es poden ampliar mitjançant el desenvolupament de plug-ins. Per exemple, ja hi ha fets plug-ins per samba, asterisk i algún servei més. En el meu cas on estic posant més enfasi és en aconseguir integrar els servidors amb LDAP i Kerberos, així doncs puc tenir una base de dades d’usuaris, grups i autenticació pels accessos als servidors. A més a través de les ACL que té Zivios puc controlar qui pot i qui no entrar als servidors. Per altre banda, també he aconseguit connectar OpenFiler a Zivios, el problema que tinc ara és que no me’n ensurto amb l’autenticació però suposo que és qüestió de temps. Quan aconsegueixi combinar tot això i si els resultats són els esperats espero poder-ho montar com a plug-in.

Per posar un exemple pràctic i perquè es vegi la potència de la idea, podem des del panell de control web de l’eina donar d’alta una localització, dins una oficina, després els seus usuaris, grups d’usuaris, serveis, servidors i estacions de treball. Després podem sobre tots aquests agents definir per exemple, les extencions d’asterisk, els accessos als recursos compartits per samba, el seu sistema d’autenticació centralitzat, configuracions DNS, NTP i moltes d’altres configuracions tot de forma centralitzada còmode i senzilla d’aministrar. A més podem establir usuaris amb certs permisos d’administrador per delegar-los tasques que es podran gestionar des de l’interficie web.

Sota el meu punt de vista el projecte és molt ambiciós i veig difícil que pugui arribar a madurar prou com per poder fer tot el que s’apunta des d’un inici. Però sent pragmàtics només amb el que ja es dibuixa ara mateix i per gestionar les parts més comuns entre diversos sistemes ja em conformo. És a dir, com a evolució natural del sistema NIS i servei de SSO, crec que ja és més que vàlid. Després si puc fer que s’integri amb software appliances que uso de forma habitual crec que puc arribar a tenir un gestor de la infraestructura de xarxa més que decent. Quan parlo de software appliances ara mateix tinc al cap sobretot OpenFiler i pfSense.

openfiler: potent i complicat de configurar

Reading time: 4 – 6 minutes

M’ha costat deu i ajuda posar a funcionar l’openfiler al final ja era una qüestió d’honor. Després de provar amb la versió pre-instal·lada com appliance i amb dues versions instal·lades per mi no hi havia manera de que funcionés tot plegat com volia.

Problema reconeixer volums lògics pre-creats

El primer gran problema ha estat que jo ja tenia un volume group creat, amb dos logic volumes (unitats lògiques d’informació usades per LVM). Doncs bé malgrat el linux me’ls retornava sense problemes amb el vgdisplay i lvdisplay quan anava a l’interficie de l’openfiler no hi havia manera que apareguessin els volums lògics. El grup de volums si que sortia però els lògics no. Doncs bé la solució l’he trobat després de molt buscar pels forums a aquest thread: How to get volumes back after reinstallation without config backup.

La gràcia esta en un script que bàsicament genera un fitxer XML de configuració que usa l’openfiler per saber quins volums hi ha al sistema: /opt/openfiler/etc/volumes.xml. El fitxer és força simple i només té una llista de volums lògics relacionats a un grup de volums. L’script també afegeix al /etc/fstab les línies necessaries perquè aquests volums lògics es montin a l’arrancar el sistema.

Còpia de l’script que he trobat al forum: remake_vol_info.

Problema LDAP amb tots els serveis i especialment amb el SMB

Doncs bé, aprofitant que openfiler porta un servidor LDAP volia gestionar les comptes de tots els serveis a través d’un únic punt. Així doncs, el primer problema ha estat saber com activar el servidor que porta internament perquè la documentació no ho explica massa bé, ja que si anem a serveis i li fem un enable sense donar cap error no s’aixeca ni a la de tres. Aprofito per comentar que la interficie gràfica de l’openfiler és realment pèssima i difícil d’entendre. A més, l’experiència d’usuari esta molt poc cuidada perquè moltes coses donen errors i no ho explica retorna enlloc. Així doncs t’hs de buscar la vida monitoritzant els fitxers de logs del linux que té per darrera.

Llavors he intentat actualitzar el sistema a través de la funció d’update que porta la pròpia interficie. Doncs be, també fallava així doncs ho he provat des de la línia de comandes amb un simple:

conary updateall

La cosa fallava amb el mateix error:

...
Warning: Unhandled exception occured when invoking callback
/user/lib/pgthon2.4/site-packages/conary/streams.py:416
...

Després de googlejar una bona estona, la solució ha estat:

conary update conary --replace-files
conary updateall --replace-files

Amb això he aconseguit finalment fer update. Però el problema amb LDAP continuava igual. Al final he deduit que si posava la informació a accounts -> authentication. Amb el password que he posat al fer la instal·lació per l’usuari de configuració del web la part d’usuaris i grups semblava que s’activa i el LDAP server començava a funcionar tot solet.

ldap.png

Així doncs, he pogut accedir a la gestió de comptes i crear un grup d’usuaris i un usuari de proves. Doncs bé, després de suar tinta per entendre tot el tema de gestió de shares i de veure que no hi havia manera d’accedir als recursos compartits de forma autenticada, he decidit aprofitar la meva experiència en linux per veure com estava tot configurat.

La qüestió és que he vist que tan el SMB, com el FTP, HTTP/WebDav, etc. anaben contra PAM però aquest no tenia configurat cap enllaç cap a LDAP, per tant, per molt que estigués funcionant era impossible que mai autentiques cap usuari.

Llavors he executat el authconfig per configurar l’autenticació PAM contra LDAP, i l’he deixat així:

Al marcar l’autenticació LDAP per SMB, no ús ho perdeu m’ha dit que faltava el paquet pam_smb, o sigui, el pàquet de PAM que té el handler capaç de gestionar la connexió contra LDAP pel samba. Algú em pot explicar com pretenien la gent d’openfiler autenticar samba amb LDAP si no hi havia això instal·lat? aquí ja he arribat a la conclusió que això de l’openfiler esta verdíssim.

Bé doncs, després de suar una mica amb tot això que comento ja funciona tot contra LDAP a la perfecció!!! realment he de reconeixer que sóc una persona obstinada,eh!? perquè n’hi ha per deixar-ho correr. Després de tot el que he explicat i les hores que he hagut d’invertir per descobrir-ho.

Rendiment OpenFiler virtual

Reading time: 2 – 2 minutes

Porto tot el dia fent proves amb l’OpenFiler com a màquina virtual dins del servidor HP que estic montant. Doncs, bé apart dels detalls tècnics volia fer una simple i interessant prova que després de veure el resultat encara em té estorat. He fet un test de velocitat amb el hdparm per saber la velocitat de transferència entre l’ubuntu que fa de servidor d’VMWare i un disc dur de 750Gb:

root@vm0:~# hdparm -t /dev/sdc1
/dev/sdc1:
 Timing buffered disk reads:  314 MB in  3.02 seconds = 104.11 MB/sec

Després des de la màquina virtual amb OpenFiler (basat en linux Red Hat) he fet la màteixa prova:

[root@nas0 ~]# hdparm -t /dev/sdb1
/dev/sdb1:
 Timing buffered disk reads:   66 MB in  3.05 seconds =  21.65 MB/sec

Malgrat el nom del dispositiu surti diferent el dispositiu és el mateix, això passa perquè en la màquina virtual el dispositiu no és el tercer dispositiu ‘SATA‘, sinó el segon. La màquina virtual té capturat el dispositiu físic, així doncs trobo que la diferència de velocitat és exagerada. També s’ha de comentar que l’OpenFiler no m’ha deixat instal·lar-se en 64bits sobre VMWare i ho he hagut de fer amb 32bits, no sé pas si aquesta diferència tan brutal pot ser deguda a això.

Els recursos que tinc assignats a l’OpenFiler són:

nas0.png

Si algú té la possibilitat de fer alguna prova semblant, o l’ha fet que avisi. De totes formes, diria que amb màquines virtuals de 64bits no puc capturar el dispositiu real o això m’ha semblat llegir que deia el VMWare. Gran defecte sota el meu punt de vista.

VMWare: arrencant el WinXP de l’altre partició del HD des de Linux

Reading time: 9 – 15 minutes

A aquestes altures tothom coneix l’VMWare, personalment fa força temps que uso al portàtil la versió workstation i a alguns clients tenen el server. Fora de les típiques coses que es poden llegir a la documentació oficial del producte i de productes complementaris com l’VMWare converter, que ja vaig comentar fa temps, es poden fer algunes altres filigranes amb aquest producte.

Hi ha diversos howtos (per exemple, Convert Physical Windows Systems Into Virtual Machines To Be Run On A Linux Desktop) que expliquen com convertir una partició de windows en un disc virtual que després es pot usar des de la màquina virtual de l’VMWare. Com ja apuntava fa un moment això es pot fer amb l’VMWare converter. Problemes lògics d’aquesta solució és que si la nostre partició de windows ocupa 40Gb obviament el disc virtual ocuparà el mateix. A més si la configuració del nostre windows canvia (noves configuracions, nous programes, actualitzacions, etc) el contingut del disc virtual obviament quedarà ràpidament obsolet o alrevés.

Doncs bé aquest diumenge passat vaig configurar l’VMWare perquè des de linux m’iniciés el WinXP que tinc a l’altre partició del disc dur del portàtil, tot això basant-me en un petit manual que vaig trobar a Run Existing Windows installation With Vmware Player (local). Com podeu veure la idea és molt atractiva i soluciona els problemes que comentava anteriorment derivats de tenir en el fons dos Windows al mateix PC. Obviament d’aquesta solució se’n deriva una altre dificultat la de mantenir dos configuracions de hardware (el de la màquina real i el de la virtual) en un sol WinXP. A continuació intentaré explicarvos-ho i també comentaré com l’he resolt jo.

A continuació repetiré els passos que descriu el manual anteriorment comentat perquè tingueu una referència totalment traduida de com fer això. Realment els passos per ajustar l’VMWare són realment senzills els problemes realment complexos són més de cara al Windows que no pas en el que es refereix en aconseguir que el VMWare arrenqui a partir de la partició WinXP. L’explicació del manual anterior l’adaptaré a la meva configuració ja que crec que és on puc aportar un valor diferencial.

Escenari

Al portàtil hi tinc les següents pariticons:

oriol@mini2 ~ $ /sbin/fdisk -l /dev/hda
Disk /dev/hda: 100.0 GB, 100030242816 bytes
255 heads, 63 sectors/track, 12161 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
/dev/hda1               1          63      506016   82  Linux swap / Solaris
/dev/hda2              64        4927    39070080   83  Linux
/dev/hda3   *        4928        8512    28796512+   7  HPFS/NTFS
/dev/hda4            8513       12161    29310592+   c  W95 FAT32 (LBA)

Com podeu veure i resumint, bàsicament tinc una partició linux de 39Gb, una Windows de 28Gb formatejada amb NTFS i una FAT32 de 29Gb que uso per guardar els fitxers. Bàsicament aquesta partició és per temes històrics de quan el suport NTFS des de linux es limitava a lectura. Avui en dia el suport NTFS des de linux ja és en lectura i escriptura, per tant es podria convertir a NTFS. Malgrat això la recomanació és que no ho feu, sobretot perquè en cas de desastre si haguéssim d’usar eines per recuperar el contingut de la partició aquestes eines per NTFS sempre són més limitades, o simplement hi ha menys eines al mercat que soportin la recuperació de dades per NTFS.

Pel que fa a la CPU i la RAM són 1.2GHz i de 1Gb respectivament. He de reconeixer que el sistema li costa lo seu arrencar, sobretot perquè a la màquina virtual d’VMWare (o sigui, el WinXP) li assigno 512Mb de RAM. Si a això li sumem, que jo sempre tinc la mania de tenir mil programes oberts a la vegada: FF2 amb mil finestres, evolution, openoffice, zend studio, etc. Obviament tot el sistema es torna molt pesat. Així doncs ja tinc un bon motiu per comprar-me un nou portàtil amb una bona CPU i moltíssima RAM.

Creant la màquina virtual d’VMWare

He creat un directori nou just on tinc la resta de màquines virtuals que uso per treballar a la partició de dades, o sigui, que partir d’ara tots els fitxers dels que parli per mi estan situats a /mnt/fitxers/vmware/winxp-mini2. Al directori hi copiem aquests dos fitxers: windows.vmdk i windows.vmx. El que ara ens cal és una eina com el parted per tal de coneixer algunes dades de les nostres particions i el disc dur:

Informació que hem de recollir del parted:

parted.png

Ara hem d’editar el windows.vmdk i hem de modificar les 4 dades que hi ha seleccionades a continuació:

vmdk.png

On posa # Extend description dues linies per sorta fixeu-vos que teniu el número de sectors que té el vostre disc, subratllats de color vermell doncs bé aquí heu de posar la dada que us dona el parted en el meu cas: 195371567s i abans de copiar-la li restem 63 que és el que ocupa l’MBR del disc, així doncs jo hi he de posar 195371504:

195371567 - 63 = 195371504

Les altres tres dades marcades en vermell en el fitxer windows.vmdk són els cilindres, capçals i sectors del vostre disc (cylinder,head,sector geometry) aquestes dades les podeu veure en el segon bloc de dades que li hem demanat al parted, en el meu cas: 12161,255,63.

Així doncs en el meu cas el fitxer windows.vmdk queda així:

# Disk DescriptorFile
version=1
CID=5aa3c828
parentCID=ffffffff
createType="fullDevice"
# Extent description
RW 63 FLAT "windowsxp.mbr" 0
RW 195371504 FLAT "/dev/hda" 63
# The Disk Data Base
#DDB
ddb.toolsVersion = "0"
ddb.adapterType = "ide"
ddb.virtualHWVersion = "4"
ddb.geometry.sectors = "63"
ddb.geometry.heads = "255"
ddb.geometry.cylinders = "12161"

Ja tenim llest l’VMWare perquè arrenqui la nostre altre partició amb el windows. Ara qui no esta preparat és el windows, ja que penseu que l’VMWare és una màquina virtual que lògicament no té el mateix hard que la vostre màquina. Per exemple, no usa la mateixa targeta gràfica, controladora de ratolí, controladores USB, contraladores de disc, etc. Per tal de deixar intacte la nostre partició de windows una bona idea és crear un nou perfil i en aquest nou perfil hi podem configurar el hard d’aquesta màquina virtual. A més li podem dir al windows que cada cop que intenti arrencar ens pregunti en quin perfil ho volem fer així segons si ho fem des del PC o des de la màquina virtual sempre es reconeixerà el hard automàticament.

Configurant el Windows perquè treballi amb dos perfils de hardware diferents

Dins del control panel cliquem sobre la incona system després anem a la pestanya hardware i cliquem en el botó hardware profiles:

perfils-01.png

Aquí copiem el perfil actual i seleccionem el segon radio button per poder escollir el perfil que ens interessi a l’hora d’arrencar el windows. Un cop fet això reiniciem la màquina i arrenquem seleccionant el nou perfil, en la meva captura podeu veure que aquest perfil l’he anomenat vmware també he fet una còpia de seguretat del perfil per defecte Perfil 1 i alguns altres perfils que uso per fer proves.

Un cop s’ha iniciat la màquina amb el perfil vmware un bon consell és que deshabiliteu tots els drivers de hard que creieu que puguin causar conflictes al iniciar-se amb la màquina virtual: controlador del disc dur, ratolí (driver synaptics a mi no em funciona), targeta gràfica, targeta de so, bluetooth, pcmcia, etc.

Com ja sabreu per fer això heu d’anar al control panel, cliqueu a la icona system, a la pestanya hardware i finalment al botó administrador de dispositivos. També és bona idea descarregar les VMWare Tools ja que inclouen alguns drivers que ja podeu actualitzar directament des d’aquí, fent el típic d’actualitzar el controlador i anant al direcotori on hi ha el driver de l’VMWare perquè així quan arrenquem amb la màquina virtual el dispositiu ja funcionarà correctament, ús recomano que feu això especialment amb el controlador del disc dur. Jo vaig tenir problemes i la solució la vaig trobar a Running a Windows 2000, Windows XP or Windows Server 2003 Virtual Machine from an Existing Multiple-Boot Installation i a Error INACCESSIBLE_BOOT_DEVICE (Raw Disk).

A mi personalment el que més problemes em va donar va ser el controlador synaptics de Dell que em provocava un pantallazo blau (BSOD) l’error no el vaig guardar, però deia algo d’IRQs. Si el trobo ja l’afegiré. Finalment vaig haver de desintal·lar el driver per Add/Remove software i ara treballo amb el touch pad com si fos un ratolí PS/2.

Sobretot recordeu que heu de deshabilitar els controladors no eliminar-los, ja que sinó després quan entreu en el vostre perfil per defecte aquests s’hauràn de reinstal·lar. Arribats en aquest punt ja podeu sortir del windows i tornar al linux per iniciar la nova màquina virtual. Si surten pantalles blaves al iniciar no ús preocupeu, això només afecta al nou perfil que heu creat i heu d’intentar entrar com sigui, via safe mode, tornant a repetir els passos anteriors, etc. Un cop a dintre repasseu si teniu algún problema amb el hard tornant a la gestió de dispositius.

Experiencia

Fa una setmana que estic treballant amb el sistema i n’estic molt content, com comentava només trobo que vaig curt de RAM i de CPU però per la resta és realment genial disposar de tots els aplicatius de windows de forma tan ràpida des de linux. Sempre puc veure quins són els efectes que estan tenint els clients quan tenen un problema amb alguns dels meus aplicatius, sistemes o demes. A més no tinc els típics problemes del wine quan emula windows perquè pugui llençar aplicatius. A vegades calen clients que només existeixen per windows i d’altres sistemes propietaris que sempre obliguen a perdre molt de temps reiniciant la màquina i a més, almenys a mi, em fan perdre tota la meva forma de treballar ja que no tinc accés a les aplicacions que m’acompanyen usualment a l’escriptori.

Com a nota negativa comentar, que no sé si és culpa del invent o si no hi té res a veure però la partició de dades la vaig haver de reparar quan mai ho havia hagut de fer. Jo diria que és culpa de que tinc la mania de deixar la màquina virtual suspesa i continuar treballant amb la paritició de dades des de linux. Així doncs, els fitxers que tenia oberts des de windows i que no s’han alliberat correctament perquè el sistema s’ha suspès no pas apagat ha creat algún tipus de conflicte amb els canvis que he fet al sistema de fitxers des de linux. Així doncs, a partir d’ara apagaré sempre la màquina virtual a veure si no tinc aquests problemes d’incosistència amb la partició de dades. Jo diria que el raonament té molta lògica ara només cal que sigui cert.

Resumint doncs, estic contentíssim d’aquest enginy i animo a tothom que tingui aquesta necessitat a usar-lo. Això si recordeu que cal molta RAM i una CPU ràpida. Sinó la SWAP anirà de cul i tot plegat es farà molt lent i pesat d’usar.

UnionFS – A Stackable Unification File System

Reading time: 2 – 4 minutes

unionFS és un sistema de fitxers de linux és realment un somni fet realitat, en principi ens permet fer una cosa ben senzilla. Com diu el títol, permet unir sistemes de fitxers apilant-los. Què vol dir això? doncs montar sistema de fitxers un sobre de l’altre. La gràcia on és? doncs en que per exemple podem montar un sistema de fitxers de només lectura i després a sobre un de lectura i escriptura; la difèrencia entre això i un montatge convencional és que veurem el contingut dels dos directoris i podrem modificar el sistema de només lectura guardant els canvis en el de lectura i escriptura. O sigui, ara tenim un nou sistema virtual format per la unió d’amdós sistemes. Crec que amb aquest exemple queda claríssima la potència de la idea.

També es pot usar aquest sistema de fitxers amb suport d’snapshots. O sigui, mantenint còpies passades de les versions anteriors dels fitxers. Així doncs, del sistema de modificar fitxers que usa el unionFS se’n diu copy-on-write, perquè quan ha de fer una escriptura d’un fitxer el que fa és fer-ne una còpia mantenint el contingut antic en un dels sistemes de fitxers que estan a la unió.

Quan es monten sistemes de fitxers amb diferents branques d’uns mateixos fitxers s’acostuma a donar prioritat a una de les branques. Si el que tenim montat és un CDROM i un disc dur, obviament la branca que ha de tenir prioritat és la del disc dur sinó no es podrien guardar els canvis.

unionfs.png

L’ús més destacable que se’n fa d’aquest sistema de fitxers és en els liveCD, perquè permeten guardar dades de forma persistent en un disc dur o en un pendrive. O sigui, podem iniciar una distribució de linux amb un CD o DVD i instal·lar nous paquets, fer canvis en la configuració del sistema, guardar dades amb aplicacions, etc. i totes les noves dades que s’haurien d’haver guardat al suport de només lectura s’hauràn guardat en el disc dur o el pendrive gràcies al unionFS. Molts dels liveCD de les vostres distribucions preferides suporten el que se’n diu mode persistent ús recomano que consulteu la documentació si ús interessa la funcionalitat.

Per més informació: Versatility and Unix Semantics in a Fan-Out Unification File System (local).

Whatisthatfile.com – què és aquest fitxer?

Reading time: < 1 minute

Sovint en trobem fitxers, sobretot en windows que no sabem ni d’on han sortit i que no ens atrevim a borrar per si les mosques, així que si voleu saber a quí preguntar: “què és aquest fitxer?” cada vegada que ús passi això whatisthatfile.com.

FileMON – monitor d’accessós al sistema de fitxers de win

Reading time: 2 – 2 minutes

FileMON:Aquesta petita eina de la gent de sysinternals ens permet monitoritzar en temps reals quins fitxers estan sent usats pel windows. Això és el problema de treballar amb sistemes tan opacs com el windows que necessites eines com el FileMON que et monitoritzin quins fitxers estan sent usats sinó no saps què carai esta fallant o en que esta enganxat el sistema en cada moment.

En la introducció del propi producte crec que es fa una bona descripció de quines funcions té l’eina:

FileMon monitors and displays file system activity on a system in real-time. Its advanced capabilities make it a powerful tool for exploring the way Windows works, seeing how applications use the files and DLLs, or tracking down problems in system or application file configurations. Filemon’s timestamping feature will show you precisely when every open, read, write or delete, happens, and its status column tells you the outcome. FileMon is so easy to use that you’ll be an expert within minutes. It begins monitoring when you start it, and its output window can be saved to a file for off-line viewing. It has full search capability, and if you find that you’re getting information overload, simply set up one or more filters.

També ens ajuda a fer-nos una idea de l’aspecte de la pantalla el següent screenshot:

filemon.gif