Monthly Archive for June, 2008

Protocolo interno Diskpool-Diskpool

Como se deduce del Protocolo de Diskpool para MFS, es necesario que la réplica maestra en un Diskpool dialoge con otras réplicas del bloque para la Sincronización,y la Escritura replicada. Las tramas descritas a continuación son solo entre Diskpools, los clientes no las tienen disponibles en su repertorio.

Sincronización:

[Diskpool Maestro] —————–ISync————————->[Diskpool]

[Diskpool Maestro] <–-ISyncStatus/VersionError/Error—-–[Diskpool]

[Diskpool Maestro] –———-ISyncData/ISyncOk———-–>[Diskpool]

[Diskpool Maestro] <————ISynced/Error—————-– [Diskpool]

Ejemplo ISync:

ISync A0213ABBF1 v0.1

MasterVersion A23FF256

SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709

<EOM>

Ejemplos de respuestas a ISync:

ISyncStatus A0213ABBF1 v0.1

Version A23FF250

SHA1 d3255bfeda39a3ee590afd80709e6b4b0f956018

Size 212314

PartSize 16384

HashParts 13

SHA1-1 3ee590afd80d3255bfeda39a709e560186b4b0f9

SHA1-2 90afd80d32553ee5bfeda39a709e560186b4b0f9

SHA1-3 3255bfeda39a709e560186b4b0f93ee590afd80d

SHA1-4 0afd80d3255bfeda39a709e53ee5960186b4b0f9

SHA1-13 590afd80d3255bfeda39a709e563ee0186b4b0f9

<EOM>

o

VersionError A0213ABBF1 v0.1

Version A23FF257

SHA1 90afd80709e6b4d3255bfeda39a3ee5b0f956018

Size 712314

<EOM>

o

Error A0213ABBF1 v0.1

Code 011

Reason Can’t store

Detail Can’t write to disk, is it full?

<EOM>

Petición interna tras un ISyncStatus correcto:

ISyncData A0213ABBF1 v0.1

MasterVersion A23FF256

Size 800046

SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709

Offset 49152

BIN 81920

(un trozo binario cualquiera de 81920 (3×16384) bytes…)

Offset 147456

Zeros 229376

Offset 376832

BIN 423214

(Otro trozo binario de 423214 bytes…)

<EOM>

o

ISyncOk A0213ABBF1 v0.1

MasterVersion A23FF256

Size 800046

SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709

<EOM>

Ejemplos de respuesta:

ISynced A0213ABBF1 v0.1

Version A23FF256

Size 800046

SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709

<EOM>

o

Error A0213ABBF1 v0.1

Code 011

Reason Can’t store

Detail Can’t write to disk, is it full?

<EOM>

Escritura replicada:

[Diskpool] ————–IWrite————->[Diskpool]————–IWrite————->[Diskpool]…

[Diskpool] <–——–IStored/Error——-–[Diskpool]<–——–IStored/Error——-–[Diskpool]…

Y

[Diskpool Maestro] ————–ICommit————->[Diskpool]

[Diskpool Maestro] <——-ICommited/Error———[Diskpool]

Petición de Escritura:

IWrite A0213ABBF1 v0.1

Version A23FF256

Offset 6354234

Next dp3.example.com:14223 10.92.12.213:15050

Autocommit on

TTL 750

BIN 4096

…(4096 octetos, datos binarios)

BIN 8192

…(8192 octetos, datos binarios)

<EOM>

y (dp3.example.com:1422)

IWrite A0213ABBF1 v0.1

Version A23FF256

Offset 6354234

Next 10.92.12.213:15050

Autocommit on

TTL 750

BIN 4096

…(4096 octetos, datos binarios)

BIN 8192

…(8192 octetos, datos binarios)

<EOM>

y (10.92.12.213:15050)

IWrite A0213ABBF1 v0.1

Version A23FF256

Offset 6354234

Autocommit on

TTL 750

BIN 4096

…(4096 octetos, datos binarios)

BIN 8192

…(8192 octetos, datos binarios)

<EOM>

Ejemplos de Respuestas:

(Las respuestas son congruentes: cualquier fallo se reenvía hasta el primer Diskpool y este se lo manda al Cliente. Además si algún Hash no coincide hay que devolver error tambien hasta el cliente)

IStored A0213ABBF1 v0.1

Version A23FF256

Offset 6354234

Size 12188

SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709

<EOM>

o

Error A0213ABBF1 v0.1

Code 011

Reason Can’t store

Detail Can’t write to disk, is it full?

o

Error A0213ABBF1 v0.1

Code 012

Reason Hash Error

Detail Data transfer is corrupt, hashes don’t match!

<EOM>

Ejemplos de petición de commit interno:

ICommit A0213ABBF1 v0.1

Version A23FF256

Offset 6354234

Size 4396

SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709

ExtendTTL 0

<EOM>

Ejemplos de respuesta:

Commited A0213ABBF1 v0.1

Version A23FF257

Offset 6354234

Size 12188

SHA1 b4b0d3255bfefda39a3ee5e695601890afd8070

<EOM>

o

Error A0213ABBF1 v0.1

Code 005

Reason Write Not Found

Detail The write specified was not found in this diskpool

<EOM>

o

Error A0213ABBF1 v0.1

Code 002

Reason Not Found

Detail The block was not found in this diskpool

<EOM>


Creative Commons License
Diskpool by José Luis Vázquez González is licensed under a Creative Commons Reconocimiento-No comercial-Compartir bajo la misma licencia 2.5 España License.

Protocolo Diskpool de MFS

(Ver antes este Post)

Por simplicidad el protocolo del Diskpool será al mismo tiempo de control y de datos, con mensajes de control, mensajes de datos y mensajes mixtos con control y datos al mismo tiempo.

El esquema de funcionamiento es parecido al usado en HTTP y memcached; preguntas y respuestas sobre un protocolo en modo texto con segmentos binarios de longitud conocida.

Las partes en modo texto van codificadas en UTF-8, para permitir el envío de caracteres del cualquier idioma en las partes donde pueda ser necesario.

Esquema general de los mensajes del protocolo diskpool:

Ordenes

<Orden> <ID del bloque en hexadecimal (64bits)> <Versión del protocolo><Fin de Línea (=CR+LF)>

<Parámetro> <valor><Fin de Línea>

… (tantos como necesite la petición)

“BIN” <longitud en octetos (bytes) de los datos binarios que se incluyen a continuación><Fin de Línea>

<Datos binarios de la longitud especificada>

… (tantos segmentos binarios como necesite la petición)

<EOM> (=<CRLF><CRLF>)

Respuestas

<Respuesta> <ID del bloque en hexadecimal (64bits) o ‘*’> <Versión del protocolo><Fin de Línea (=CR+LF)>

[<Parámetro> <valor><Fin de Línea>

... (tantos como necesite la respuesta)] (El bloque [] es opcional)

["BIN" <longitud en octetos (bytes) de los datos binarios que se incluyen a continuación><Fin de Línea>

<Datos binarios de la longitud especificada>

... (tantos segmentos binarios como necesite la respuesta)] (El bloque [] es opcional)

<EOM> (=<CRLF><CRLF>)


Creación de Réplica de Bloque:

Resumen:

[Cliente] ———-Create————>[Diskpool]

[Cliente] <–Created/Exists/Error–[Diskpool]

Ejemplo de la petición:

Create A0213ABBF1 v0.1

Size 8M

<EOM>

Ejemplos de posibles respuestas:

Created A0213ABBF1 v0.1

Size 8M

Version 0

<EOM>

o

Exists A0213ABBF1 v0.1

Size 16M

Version A23FF256

Status Desynchronized

<EOM>

o

Error A0213ABBF1 v0.1

Code 001

Reason Illegal size

Detail Just 4M of space left! (or “6M is the maximum block size allowed”)

<EOM>

Sincronización de réplicas de bloque:

[Cliente] —————–Sync——————–>[Diskpool]

[Cliente] <–Synced/Syncing/Desync/Error–[Diskpool]

Ejemplo de la petición del cliente:

Sync A0213ABBF1 v0.1

Slaves dp2.example.com dp3.example.com:14223 10.92.12.213:15050

MinReplicas 2

<EOM>

Ejemplos de respuestas:

Synced A0213ABBF1 v0.1

MasterVersion A23FF256

Slave1 dp2.example.com failed timeout

Slave2 dp3.example.com:14223 ok A23FF256

Slave3 10.92.12.213:15050 failed diskfull

<EOM>

o

Syncing A0213ABBF1 v0.1

MasterVersion A23FF256

Slave1 dp2.example.com failed timeout

Slave2 dp3.example.com:14223 ok A23FF255

Slave3 10.92.12.213:15050 ok A23FF255

<EOM>

o

Desynced A0213ABBF1 v0.1

MasterVersion A23FF256

Slave1 dp2.example.com fatal A23FF260

Slave2 dp3.example.com:14223 ok A23FF255

Slave3 10.92.12.213:15050 ok A23FF255

<EOM>

o

Error A0213ABBF1 v0.1

Code 002

Reason Not Found

Detail The block was not found in this diskpool

<EOM>

Lectura de bloque sincronizado:

[Cliente] ——-Read———->[Diskpool]

[Cliente] <–Data/Outdated–[Diskpool]

Ejemplos de la petición del cliente:

Read A0213ABBF1 v0.1

Offset 212314

MinVersion A23FF250

<EOM>

o

Read A0213ABBF1 v0.1

Offset 212314

Size 4096

MinVersion A23FF250

<EOM>

Ejemplos de respuestas:

(Al primer ejemplo, 8176294 son los bytes que quedan del bloque de 8 Megas empezando en 212314)

Data A0213ABBF1 v0.1

Offset 212314

Version A23FF256

BIN 8176294

Estos son datos binarios para el diskpool, podrían incluso no estar codificados en UTF-8,

como el resto de la respuesta (o una petición).

Además, como BIN era -1 este bloque se envia hasta el final, a no ser que el cliente

cierre la conexión…

<EOM>

o

(Al segundo ejemplo)

Data A0213ABBF1 v0.1

Offset 212314

Version A23FF256

BIN 4096

…(4096 octetos, datos binarios)

<EOM>

o

Outdated A0213ABBF1 v0.1

Version A23FF200

AskedVersion A23FF250

<EOM>

Escritura de bloque:

Resumen:

[Cliente] —————–Write———->[Diskpool]

[Cliente] <–Stored/Commited/Error–[Diskpool]

o

[Cliente] ——-Commit———->[Diskpool]

[Cliente] <–Commited/Error—-[Diskpool]

Ejemplos de petición del cliente:

Write A0213ABBF1 v0.1

Version A23FF256

Offset 6354234

Next dp2.example.com dp3.example.com:14223 10.92.12.213:15050

Autocommit on

TTL 750

BIN 4096

…(4096 octetos, datos binarios)

BIN 8192

…(8192 octetos, datos binarios)

<EOM>

o

Write A0213ABBF1 v0.1

Version A23FF256

Offset 6354234

Next dp2.example.com dp3.example.com:14223 10.92.12.213:15050

Autocommit off

TTL 750

BIN 4096

…(4096 octetos, datos binarios)

BIN 300

…(300 octetos, datos binarios)

<EOM>

o

Commit A0213ABBF1 v0.1

Version A23FF256

Offset 6354234

Size 4396

SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709

ExtendTTL 0

<EOM>

Ejemplos de respuesta:

(A Write con Autocommit=on o al Commit)

Commited A0213ABBF1 v0.1

Version A23FF257

Offset 6354234

Size 12188

SHA1 b4b0d3255bfefda39a3ee5e695601890afd80709

<EOM>

o

Error A0213ABBF1 v0.1

Code 010

Reason Not  a master

Detail Can’t write, this is not a master at the moment (find or sync the master and retry)

<EOM>

(o a Write con Autocommit=off)

Stored A0213ABBF1 v0.1

Version A23FF256

Offset 6354234

Size 4396

SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709

<EOM>

(o cualquiera de las peticiones)

Error A0213ABBF1 v0.1

Code 011

Reason Can’t store

Detail Can’t write to disk, is it full?

<EOM>

Estadísticas

Resumen:

[Cliente] ————-GetStats—–>[Diskpool]

[Cliente] <——Stats/Error——–[Diskpool]

Ejemplos de petición:

GetStats * v0.1

<EOM>

o

GetStats A0213ABBF1 v0.1

<EOM>

Ejemplos de respuestas:

Stats * v0.1

Blocks 10000

MinBlockSize 4M

MaxBlockSize 32M

MaxLegalBlockSize 128M

SpaceLeft 56.0G

UsedSize 36.5G

StoredSize 35.0G

UsagePct 39.46

RequestsPerSecond 120

Block1 id=0213AD234F1 v=A23FF2564

Block2 id=20213AE234F v=A23FF2564

Block10000 id=A0213ABBF1 v=A23FF257

<EOM>

o

Stats A0213ABBF1 v0.1

Version A23FF256

Size 7324345

SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709

MaxSize 8M

Master yes

StoredWrites 2

StoredSize 9M

SpaceLeft 56.0G

<EOM>

Notas:

Cliente y servidor pueden cortar la conexión en cualquier momento:

  • Un corte del cliente antes de que la petición haya llegado completa aborta toda acción antes de producirse respuesta.
  • Un corte del cliente antes de poder recibir la respuesta deja a este sin saber el resultado de la misma, que puede haber no sido exitosa y/o contener información de la operación realizada.
  • Un corte del servidor antes de terminar la petición indica un error fatal de protocolo por parte del cliente o si se ha agotado el tiempo de recepción de petición máximo.
  • Un corte del servidor antes de poder terminar la respuesta indica un error fatal (caída) del proceso del servidor.

El Cliente puede recibir un error en cuanto haya enviado su petición completa (con EOM) o el primer segmento BIN de datos (antes de eso solo recibiría un cierre de conexión en caso de error de protocolo o por temporizador vencido)

El Servidor reutiliza la conexión TCP si el cliente no la cierra al terminar de recibir la respuesta completa (hasta el EOM).


Creative Commons License
Diskpool by José Luis Vázquez González is licensed under a Creative Commons Reconocimiento-No comercial-Compartir bajo la misma licencia 2.5 España License.

Diskpool para MarisaFileSystem

El servidor MarisaDiskPool de MarisaFileSystem permite crear, borrar, leer, escribir y sincronizar replicas de bloques de datos de tamaño arbitrario. A partir de ahora se distinguen los términos bloque y réplica de bloque:

  • Réplica de bloque es una copia determinada en un diskpool determinado de los datos de un bloque, que puede estar o no sincronizada con el estado más reciente de dicho bloque.
  • Bloque es una entidad abstracta que representa un bloque de datos replicado en N veces (frecuentemente 3). El bloque podrá leerse de la réplica maestra o las replicas esclavas sincronizadas (las que están al día de los datos escritos en dicho bloque).

Las escrituras son atómicas, se realizan completamente o se deshacen del todo.

El servidor diskpool permite lecturas y escrituras concurrentes de bloques de datos:

Requisitos Generales:

  • RG1. Cada bloque es completamente independiente de los demás. Solo se compite por espacio de almacenamiento.
  • RG2. Cada diskpool contiene una sola réplica de algunos de los bloques del sistema (agrupación de diskpools).
  • RG2. Cada réplica de bloque tiene un tamaño máximo, pero un mismo diskpool puede contener bloques de diferentes tamaños. (No obstante, los bloques generalmente formarán parte de abstracciones superiores como ficheros donde lo lógico es que todos lo bloques de un mismo fichero cuenten con un mismo tamaño de bloque máximo fijo.)
  • RG3. Una réplica de bloque al crearse o al (re)iniciarse el diskpool está siempre desincronizada: No admite operaciones de lectura o escritura hasta que se marque como réplica maestra o como réplica esclava sincronizada.

Creación de Réplica:

  • RC1. Una réplica de bloque podrá ser creada por el diskpool solo si no existía previamente y se ha pedido con un tamaño máximo legal, es decir, mayor que 0 y menor que el mayor tamaño de bloque posible o el espacio disponible. La replica recién creada está en la versión 0 y desincronizada.

Sincronización de Réplicas:

  • RS1. Se selecciona la réplica maestra de un bloque (una de las que tengan la versión de bloque más alta) y se le envía a su diskpool una petición de sincronización de réplicas, que incluye una lista de los diskpools que contienen el resto de réplicas del bloque a sincronizar, las réplicas esclavas.
  • RS2. El diskpool receptor, elegido maestro de réplica, debe confirmar que todas las réplicas esclavas en los diskpools dados han sido notificadas y han confirmado o rechazado la petición. Las razones de rechazo pueden ser:
  • FATALES: versión ilegal (la versión de la réplica esclava es superior a la del maestro)
  • NO FATALES: diskpool no disponible o timeout o error interno del diskpool.
  • RS3. La petición de sincronización incluye tambien un número mínimo de réplicas aceptable para que la petición tenga éxito. Por ejemplo, puede haberse enviado una lista con 2 réplicas esclavas (replicación 1+2) pero puede bastar que haya 2 réplicas activas (la maestra y una esclava), con lo cual se toleraría que uno de los 2 diskpool consultados no confirmase la notificación. No obstante, un solo  ERROR FATAL de cualquier diskpool hace fallar la petición de sincronización.
  • RS4. Un diskpool esclavo que recibe una notificación de una réplica:
  • Si esta no existe la crea y devuelve en la confirmación la versión 0.
  • Si ya existía devuelve la versión que tenga la réplica en ese momento.
  • RS5. Tras responder al cliente según las confirmaciones de las réplicas esclavas, la réplica maestra usa estas confirmaciones para decidir en cada réplica el tipo de sincronización:
  • Dar por sincronizada la replica si tiene una versión y HASH igual a la suya.
  • O sincronizarla, enviando todos los octetos del ultimo estado de la réplica maestra.
  • RS6. Ni la replica maestra ni las esclavas guardan su condición de manera persistente. Si el proceso del diskpool cae habrán olvidado todo esto y la réplica volverá a estar desincronizada. Si la replica caída era esclava, la maestra contactará con ella y la sincronizará de nuevo. Si la que cayó era la maestra habrá que repetir la petición de sincronización a la nueva réplica maestra seleccionada.

Lectura de un bloque sincronizado:

  • RL1. Cada lectura obtiene acceso sin esperar a otros lectores o escritores a la ultima versión consistente de la réplica de bloque.
  • RL2. Aunque se estén realizando varias escrituras concurrentes a la lectura, estas no modifican la versión leída del bloque.
  • RL3. Varias lecturas concurrentes sobre la misma réplica de bloque podrían estar leyendo versiones diferentes; la lectura que llegó más tarde lee la versión más moderna.
  • RL4. El acceso al bloque (en lectura y escritura) será aleatorio, pudiendo empezar por cualquier octeto y acabando en cualquier otro, pero siempre un solo sentido, del principio hacia el final.
  • RL5. Las réplicas de bloque no están obligadas a guardar ninguna versión más antigua que la que esté leyendo el lector más antiguo en ese momento.
  • RL6. La petición de lectura incluye un número de versión mínimo esperado, la operación solo se acepta si la réplica ha sido sincronizada por el maestro Y la versión que contiene es igual a posterior a la que espera el lector, sino la réplica rechaza la petición.

Escritura del bloque:

  • RE1. Una escritura tiene siempre dos partes:
  1. El envío de datos de la escritura.
  2. La confirmación o cancelación de la escritura del bloque.
  • RE2. Si el envío de datos se dirige primero a la réplica maestra, la escritura se puede hacer autoconfirmada, de manera que al llegar a final sin errores la réplica maestra la confirmará en esta y en las réplicas esclavas que la hayan recibido totalmente.
  • RE3. Si el envío de datos llega primero a una réplica esclava, la confirmación debe hacerse por separado y siempre a la réplica maestra. Por supuesto, la réplica maestra debe haber recibido los datos tambien para poder confirmar la escritura. De esta manera la réplica esclava decide un orden único para las escrituras en el bloque.
  • RE4. Cada escritura no es visible o efectiva hasta que finalmente se confirma en la réplica maestra, incrementando el número de versión del bloque.
  • RE5. Si el diskpool de la réplica maestra cae, las escrituras de bloque en curso (no confirmadas) desparecen completamente y sufren una cancelación automática.
  • RE6. Los diskpool no acepta datos por encima del ultimo octeto permitido según el tamaño máximo del bloque y responde cortando la conexión. Por ejemplo, si la escritura empezó en la posición 700.000 y el bloque tiene un tamaño máximo de 1.000.000 y ya han llegado 300.000 octetos, la escritura se da por terminada en recepción. Si el receptor era la réplica maestra y se trataba de una escritura autoconfirmada se procede a confirmar la escritura y si no, se espera a recibir la confirmación en la réplica maestra.
  • RE7. El envió de datos entre las réplicas del bloque se realiza en cadena en el orden indicado en la propia petición. El tiempo de escritura será (Noct*Ab)+(2*Nr*L) donde:
  • Noct son los octetos escritos.
  • Ab es el ancho de banda mínimo de la red (en octetos/s).
  • Nr es el número de réplicas en las que se está escribiendo.
  • L es la latencia media en la red.
  • RE8. La confirmación de escritura, como ya se ha dicho, solo puede hacerla la réplica maestra. La replica maestra localiza los datos de escritura recibidos y los aplica incrementa el número de versión que le corresponderá a esa escritura del bloque. Si algún error se lo impide se produce una cancelación informando solamente al cliente, no es necesario informar a las réplicas esclavas que ya borrarán los datos no confirmados una vez caducados.
  • RE9. Si la réplica maestra pudo realizar la confirmación de la escritura localmente, avisa a las réplicas esclavas citadas en la confirmación de escritura para sincronizarlas. Con las respuestas de todas las réplicas (incluidas respuestas por timeout) se responde al cliente con éxito (todas las réplicas están sincronizadas) o desincronismo porque la escritura fue realizada solo en algunas réplicas, la réplica maestra pasa a desincronizada y cancela todas las operaciones de escritura pendientes.
  • RE10. Tras un desincronismo la escritura en que se produjo se considera que ha tenido éxito (parcial), pero el bloque no aceptará más operaciones de escritura  hasta que se produzca una nueva sincronización del bloque, lo más frecuente es que la antigua réplica maestra reciba la petición de sincronización de nuevo pero excluyendo la réplicas que fallaron.

Destrucción de Réplica y Bloque:

  • RD1. La destrucción de una réplica de bloque espera a que acaben las lecturas pendientes para hacerse efectiva.
  • RD2. Por otro lado, nada más recibir y aceptar la orden de destrucción de réplica las escrituras pendientes (envíos de datos en curso) son abortados y no se aceptan confirmaciones de escritura en esta réplica.
  • RD3. Si la réplica borrada es la maestra debe ir marcada como borrado de bloque y las réplicas esclavas son notificadas por la maestra para que se borren también.
  • RD4. Es responsabilidad del sistema cliente (el que use el diskpool) anotar que bloques han sido borrados por completo, de manera que si el diskpool levanta con alguna réplica que debería haber desaparecido ya el sistema sabrá que debe borrarla de alguna forma (por ejemplo, por no estar asociado el bloque a ningún fichero).

Creative Commons License
Diskpool by José Luis Vázquez González is licensed under a Creative Commons Reconocimiento-No comercial-Compartir bajo la misma licencia 2.5 España License.

Tengo 4GB en mi Windows de 32bits ¿que hago?

Como sabrás por mi otro post, o si lo buscas en Internet:

http://www.theinquirer.es/2007/03/27/memoria_en_vista_y_xp_compras.html

Un Sistema Operativo (SO) de 32 bits solo te permite usar realmente unos 3Gb de los 4 que teóricamente podrías alcanzar. Ello es debido a que las direcciones altas de la memoria se usan no para acceder a la RAM sino para usar los periféricos como la memoria de vídeo y la BIOS.

Ahora ya lo sabes y te preguntas que hacer con tu equipo recién comprado y que tiene 1Gb de más…

Pues la verdad es que tienes muchas opciones:

  1. Resignarte a no usar cerca de 1GB de memoria. Esta es la opción más sencilla pero quizá no la más cómoda tras haber leído esto.
  2. Puedes vender el último Gigabyte ya sea por separado o cambiándolo para al final tener los 3GB máximos que puedes realmente usar. Por ejemplo, si tus 4GB están en 4 SIMMs de 1GB vendes una y se acabó. Si están en 2 SIMMs, vendes una de 2 GB y compras una de 1GB en su lugar. (Yo tengo 2GB en mi AMD64, quizá este interesado en otros 2GB para mi SO de 64 bits ;-)
  3. O también puedes pasarte a un SO de 64 bits como Windows XP 64, Vista 64, MAC OS X (Leopard) o Linux AMD64 o x86_64. Veamos aquí algunas de las ventajas y desventajas de dichas opciones:
    • Opción 64bits de Microsoft:
      • Desventajas:
        • El uso de Windows XP 64 y Vista 64 no está muy extendido aún. Es posible que encuentres problemas de compatibilidad de drivers.
        • El coste de la licencia de estos SO es seguramente un gasto que no tenías previsto al comprar tu ordenador.
      • Ventajas:
        • Si hay menos drivers para 64bits también hay menos virus para 64bits, tu SO es algo más inmune.
        • Tanto AMD64 (pionero en esto) como Intel Core 2 Duo permiten ejecutar aplicaciones de 32bits dentro de un SO de 64bits. Desconozco como manejan XP 64 y Vista 64 este asunto y no se si es algo transparente al usuario o no. Me imagino que esto NO sea extensible a los drivers, y que por eso no se han extendido tanto aún como sus hermanos de 32bits.
        • Windows será posiblemente el SO con el que estás más familiarizado y no necesites aprender nada nuevo para usarlo.
    • Opción MAC OS X (Leopard) 64bits:
      • Desventajas:
        • Posiblemente el coste de la licencia de MAC OS X 64 no es tampoco un gasto que tenías previsto. Los productos de Apple no se distinguen precisamente por sus precios populares.
      • Ventajas:
        • Apple ya se ha pasado a 64bits totalmente con Leopard y puedes esperar soporte total de las aplicaciones que te incluyen con el paquete (muchas más que en el caso de los PCs con Windows, aunque bien que las pagarás).
        • Si eres diseñador gráfico, músico o trabajas mucho con contenidos multimedia esta pueda que sea la mejor opción para tí.
        • Posiblemente sea el SO con el que más puedas fardar ante tus amigos.
    • Opción Linux AMD64 / x86_64 (pura):
      • Desventajas:
        • Probablemente no estés familiarizado con Linux ni Unix, o lo que es peor, puede que hayas oído historias de terror acerca de malignas terminales de comandos y oscuros conjuros e invocaciones dentro de ellas. Sinceramente, Linux (en la actualidad) no es ni más ni menos fácil de usar que Windows para un no iniciado. Lo que también es verdad es que puede ser demasiado diferente para alguien ya acostumbrado a la filosofía “siguiente/siguiente/siguiente” de Windows, especialmente si se llega a él con prejuicios o una actitud negativa.
        • Linux no es una versión gratis de Windows o un clon (como tampoco MAC OS X lo es), es otro sistema operativo diferente y con formas diferentes de hacer y enfocar las cosas.
        • Si dependes de determinadas aplicaciones que o no están soportadas en Linux o cuyos equivalentes en Linux no cumplen tus expectativas esta no es la opción para tí (aunque la siguiente quizá si lo sea).
      • Ventajas:
        • Es gratis si lo quieres gratis, o de pago si quieres soporte (y un soporte posiblemente mucho mejor y más barato del que el que puedas obtener de Microsoft). Solo se trata de elegir la distribución que más se ajuste a tus necesidades.
        • Dile adiós a los virus y los antivirus y la tentación de la piratería definitivamente. Las distribuciones Linux incluyen todos los programas que puedas necesitar para hacer casi cualquier cosa.
        • No esperes 4 años a ver que saca nuevo tu fabricante en tu SO, con Linux podrás actualizarte cada 6 meses más o menos.
        • Si no quieres actualizarte no necesitas hacerlo, tu sistema ira igual de rápido que el primer día.
        • Existen interfaces simplificadas para las tareas básicas más comunes, como la interfaz del Asus EEE o la versión Ubuntu Netboot Remix.
        • Si eres teleco, informático o similar y programas o eres “de sistemas”, no instalarse un Linux es algo casi imperdonable hoy en día.
        • Linux es el sistema operativo MÁS flexible que puedas encontrar. Solo los distintos SO BSD y otros open source pueden competir en flexibilidad con Linux, pero están menos extendidos aún que Linux y por ello podríamos quizá descartarlos para un equipo de sobremesa.
    • Opción Linux 64 + tu SO de 32bits original en una máquina virtual. Se trata de instalar Linux 64 bits y luego meter tu SO original,por ejemplo el Vista de 32 bits dentro de una máquina virtual como Virtual Box ejecutándose en el Linux de 64bits:
      • Desventajas:
        • Puede que sea una configuración un poco compleja y que tardes en tenerla operativa más de lo que habrías deseado.
        • Esta opción incluye haber pasado por la opción “Linux 64 pura” antes en el proceso de instalación, es decir, exige cierta una actitud positiva y sin prejuicios.
        • Algunas aplicaciones (como AutoCAD y los juegos para Windows, por ejemplo) no funcionarán a pleno rendimiento en una máquina virtual como Virtual Box porque (aún) no emulan las capacidades 3D del hardware.
      • Ventajas:
        • El coste adicional es 0, todo el software necesario para esta opción es gratuito.
        • No desaprovechas el coste de la licencia de tu SO original. (Si, no te asombres, aunque no lo sepas o lo veas en el desglose de tu compra, tu SO te lo cobraron)
        • Podrás en todo momento usar el programa que necesites en el SO que más te convenga. Por ejemplo, ver como se ve esa dichosa página en IExplorer o usar el programa PADRE de hacienda, (esa aplicación estilo Visual Basic del año de la tos que no parece fácil de migrar ni siquiera a Windows Vista).
        • Con tanta memoria como tienes el rendimiento de tu SO emulado será muy similar al que tendría instalado normalmente (exceptuando el mencionado asunto de los gráficos/efecto 3D)
        • Si tu SO original se infecta de virus tienes más opciones para arreglarlo o seguir trabajando desde el Linux anfitrión.

En resumen, estas son algunas de las opciones que se me ocurren para no desaprovechar la memoria de tu equipo de 4GB al que le metieron un SO de 32bits sin avisarte de las consecuencias.

Si además de las opciones queréis algunos consejos:

  • Tened en cuenta que las opciones descritas están un poco en el orden del esfuerzo que representan y ninguna esta exenta de inconvenientes.
  • Si no queréis meteros en líos pero si queréis no sentiros timados la mejor opción sea quizás la de cambiar la memoria y quedarse con 3GB, posiblemente sacando algo de dinero en la operación.
  • No os metáis a cambiar el SO si no tenéis vuestros datos a buen recaudo (en otra partición o en un disco duro externo).
  • Si no andáis sobrados de pasta no os metáis en la opción MAC OS y ved si os merece la pena el precio de un Windows 64.
  • Si no os gusta cacharrear (reinstalar el SO, particionarlo y “tunearlo”, etc) NO os metáis con las opciones Linux, seguramente solo os den disgustos a vosotros y cabreos al linuxero que hayáis escogido como victima para ayudaros en “vuestra migración”. (Pero tampoco os preocupéis, es bastante posible que en la siguiente compra de PC tengáis la opción de que os venga con Linux preinstalado si lo queréis)

Nota para los windows-eros y mac-eros: si, se nota que soy linuxero ¿pasa algo?. Por favor, no os piqueis por este post, antes de que alguno se caliente y empiece con criticas poco constructivas mejor me ayudais a explicar las bondades de las opciones Windows 64bits y MAC OS X 64.

El timo de los 4GB (o más) de memoria

¿Que porque es un timo?

Tengo ante mi un anuncio de portada de PC City, y aunque también los he visto similares en otras como Media Markt, este me ha llamado la atención porque anuncian con desfachatez la siguiente combinación “abominable”:

MEMORIA 5GB + Windows Vista Home Premium

¿Que porqué esta combinación es “abominable”? El sistema operativo en este caso es un Windows Vista de 32bits, también hay versiones XP 64 y Vista 64bits pero ni es lo que te venden aquí ni son versiones muy usadas o fáciles de encontrar. La cuestión es que un Sistema Operativo (SO) de 32bits como este solo puede acceder a un máximo de 4GB, no los 5GB anunciados aquí.

Bien es cierto que si sigues leyendo el anuncio te explican:

4GB RAM + 1GB Turbomemory

Bien, parece que ya está todo claro ¿no? Pues no, aún quedan dos asuntos:

  1. ¿Que es Turbomemory?
  2. ¿Realmente Vista (o un SO de 32bits) puede acceder a esos 4Gb de RAM?

Acerca de Turbomemory:

http://www.intel.com/espanol/design/flash/nand/turbomemory/index.htm

“Esta innovación del sistema para equipos personales con Windows Vista se basa en la memoria Flash NAND Intel® de desempeño (como la memoria de un iPod* o una unidad USB portátil de almacenamiento de datos) y el software compatible. Funciona junto con la memoria RAM del sistema, a fin de aumentar la eficiencia de la transferencia de datos entre el procesador y el disco duro”

Es decir, no es una memoria RAM más rápida o una cache de memoria como parecería a primera vista en el anuncio, sino una cache de disco. Más lenta que la RAM pero más rápida que el disco. Seguramente Windows deje alli el swap (pagefile.sys) y aproveche para mejorar los tiempos de carga dejando también los ficheros de controladores y carga del SO. En resumen, más que Turbomemory deberíamos llamarla Turbodisk.

Sobre los 4GB de RAM que nos quedan:

http://www.theinquirer.es/2007/03/27/memoria_en_vista_y_xp_compras.html

“Sin embargo, diversos componentes del PC restan un espacio importante a ese espacio direccionable: la BIOS suele ocupar 512 KB, pero el verdadero impacto lo causa la memoria de vídeo que incluya nuestra tarjeta gráfica: una tarjeta actual con 512 MBytes de memoria de vídeo restará esa misma cantidad en el espacio direccionable en el PC, y el problema se agrava con las futuras tarjetas con 768 y 1024 Mbytes de memoria de vídeo.

Eso hace que en HP indiquen que el espacio direccionable por Windows es de, como máximo 3,4 Gbytes, aunque este es el caso en el que la memoria de vídeo de la tarjeta gráfica sea de 512 Mbytes.”

Es decir, que con suerte podrás utilizar un 40% de tu ultimo GB comprado. Habrá unos 600MB o más de memoria que NUNCA serán usados en tu Vista de 32bits.

¿Cual es la moraleja de este cuento?

  1. Mucho ojo con los anuncios de las tiendas de Informática. No siempre es oro todo lo que reluce, hay que leer bien la letra pequeña y buscar un poco en internet antes de lanzarse en una compra de cerca de 1000€.
  2. Si no te gusta gastarte el dinero a lo tonto, no compres un PCs o portátil con más de 3GB si lleva un SO de 32bits. (Es muy fácil saber si el SO operativo es de 32 bits, si no dice nada al estilo Vista 64 o XP 64 ES que es de 32bits. Además solo los Intel Core 2 Duo y los AMD64 soportan los 64bits)

¿Que hago si ya me he comprado un PC o portátil con más de 3GB y un SO de 32bits?

Esta es la pregunta del millón. Mejor la dejamos para otro post.