En todos los discos magnéticos la diferencia de velocidad entre el primer y el último sector es notable, hasta un factor de dos o tres. Esto sigue siendo cierto con los nuevos discos de varios terabytes. Por lo tanto, todavía tiene sentido reservar los últimos cilindros del disco para archivos que se utilizan con poca frecuencia, en particular para copias de seguridad.
Con un disco particionado, es trivial hacer esto, con la única salvedad de permitir futuros cambios de tamaño.
Pero mi configuración esLVM sin particiones. Por lo tanto, necesito colocar dos grupos de volúmenes en el mismo hardware físico (uno usando los inicios de un conjunto de discos, el otro usando los extremos) o asegurarme de que un volumen lógico prefiera usar las extensiones en los últimos cilindros del hardware. . ¿Es posible? ¿Tenemos algún control sobre dónde estará un LV?
Respuesta1
Realmente no estoy de acuerdo en que esto sea una gran preocupación en la mayoría de las cargas de trabajo debido al almacenamiento en caché, las políticas de lectura anticipada y los elevadores de discos que puede utilizar, pero esto es posible con algunas advertencias.
La mejor manera de abordar esto sería particionar físicamente los medios que desea asignar en 'fragmentos' que considere cada extremo del disco que desea separar.
Algo como esto
Number Start End Size Type File system Flags
1 1049kB 1075MB 1074MB primary ext4 boot
2 1075MB 4TB 4TB primary lvm # My fast partition
3 4TB 8TB 4TB primary lvm # My slow partition
Luego, cree uno o más grupos de volúmenes. En este ejemplo, estoy usando un grupo de volúmenes, pero podría ser más fácil tener un VG "lento" y un VG "rápido".
# pvcreate /dev/sda2
# pvcreate /dev/sda3
# vgcreate vg /dev/sda2 /dev/sda3
Luego asigne sus LV fuera de dichos volúmenes físicos.
# lvcreate -n myFastLV -L1TB vg /dev/sda2
# lvcreate -n mySlowLV -L1TB vg /dev/sda3
Las advertencias aquí son que los sectores defectuosos pueden ser reemplazados silenciosamente por el controlador de disco con una 'reserva' que a menudo se encuentra en otro lugar (que es totalmente independiente del fabricante). Además, algunos discos más sofisticados pueden reasignar internamente los sectores que son lógicamente consistentes con las afirmaciones ofrecidas, pero físicamente no están en el lugar que esperaba.
Finalmente, el problema de carga de trabajo que está sugiriendo (canalización de archivos enormes) realmente es un problema de carga de trabajo muy secuencial que obtendría mayores beneficios al utilizar técnicas de preasignación en los archivos escritos (para mantenerlos contiguos y no fragmentados).
Luego, establezca políticas agresivas de lectura anticipada para leer franjas completas de sectores adyacentes/próximos que probablemente serán contiguos al archivo que está leyendo.
También se podría lograr un enfoque más detallado dmsetup
mapeando los sectores físicos en cualquier orden y forma que desee, pero esto no sería demasiado portátil y probablemente requeriría más esfuerzo de lo que vale a largo plazo (necesitaría un script para reconstruir el mapeo en el arranque, por ejemplo).