¿Cómo le dice Linux a una tarjeta LSI Megaraid que vacíe su caché antes de apagarla?


5

El controlador LSI Megaraid tiene una batería de respaldo para su caché de escritura, que permite, en caso de un corte de energía no anticipado, retener los datos en caché, aún no escritos, para que pueda escribirlos en el disco la próxima vez que se inicie el servidor arriba. En el caso de un apagado limpio, esta copia de seguridad probablemente no sea necesaria, ya que parte del apagado limpio implicará que el controlador escriba los datos almacenados en caché en el disco.

¿Cómo se informa al controlador de incursión de que el cierre está a punto de ocurrir? Presumiblemente, este vaciado debe ser lo último que ocurra después de otro código de apagado del sistema operativo, lo que podría implicar la escritura de datos o registros en la redada.

¿Existe alguna señalización de nivel PCIe que informe a los periféricos de un apagado pendiente? ¿El módulo de kernel Megaraid_sas informa a la tarjeta del cierre pendiente? ¿O es MegaClinecesario ejecutar un comando para vaciar el caché desde un script de inicio para el apagado?

Agregué manualmente una tarjeta Megaraid y un conjunto adicional de unidades a un sistema Linux que se instaló sin una, y quiero estar seguro de que no necesito agregar algo manualmente para garantizar que el caché sea consistente al apagar.


1
Me acabo de imaginar que esto sería parte del núcleo, y el controlador scsi / raid se conectaría a la función sync (2) que el binario sync (8) que normalmente se ejecuta durante el apagado.
Zoredache

Eso tiene sentido, aunque no he podido encontrar ninguna documentación que valide que se llame a los controladores de dispositivos cuando se ejecuta una sincronización para vaciar sus cachés internos. Todo lo que he encontrado solo dice que hace que Linux programe escrituras de todos los datos sucios en su propio caché
bk.

Respuestas:


6

Durante el apagado, el sistema desmontará la mayoría de los sistemas de archivos. Los que no se pueden desmontar se vuelven a montar de solo lectura. Umount syscall vaciará las memorias caché de disco a través de VFS, y las memorias intermedias de disco usarán el controlador detrás del dispositivo de bloque. El controlador de dispositivo de bloque en su caso es el controlador genérico SCSI sg. Esto enviará los datos al dispositivo SCSI utilizando el controlador específico para su dispositivo y un comando de descarga SCSI para que los datos se escriban desde la memoria caché interna del disco en el medio de almacenamiento del disco. Todo esto es síncrono y el montaje no volverá hasta que los datos estén en el disco. Para FS de solo lectura remontado, los scripts de apagado solo ejecutarán la llamada al sistema de sincronización.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.