Estoy usando un SSD conectado a una Mac a través de un puente sata a usb para archivar archivos relativamente grandes. Después de transferirlo al SSD, lo desmonto y lo desconecto.
Este SSD tiene una caché DRAM. Según tengo entendido, este caché se utiliza para almacenar en caché las escrituras y almacenar una copia de la asignación de archivos. Si lo desconecto sin desmontarlo o cuando está escribiendo actualmente, asumiría que sería muy posible perder datos almacenados en caché en DRAM y tal vez incluso perder archivos debido a que también se perderán los punteros a cualquier dato que haya cambiado en el mapeo.
Mi pregunta es:Si desmonto la unidad y la desconecto inmediatamente después de que se desmonte exitosamente, ¿existe la posibilidad de que desconecte la energía del SSD antes de que termine de escribir lo que hay en la DRAM en el disco?
¿El sistema operativo/APFS administra la DRAM y garantiza que se vacíe antes de desmontarla o lo hace el firmware del SSD?
Respuesta1
La DRAM en el SSD es administrada por el firmware, pero el sistema operativo puede indicarle al firmware que descargue todos los datos pendientes en un almacenamiento estable mediante las llamadas a la función de "barrera". El sistema operativo también puede indicarle al SSD si el almacenamiento en caché de escritura debe estar habilitado.
Si desmonta limpiamente la unidad, el sistema operativo emitirá las llamadas de función requeridas para asegurarse de que todos los datos estén completamente escritos.
Si lo desconecta en mitad de la escritura sin desmontarlo limpiamente, todas las apuestas están canceladas y el resultado dependerá del firmware del SSD, el sistema de archivos y varios otros factores.
Respuesta2
Hay DRAM involucrada tanto en el host controlado por el sistema operativo como DRAM dentro del SSD controlado por el firmware del SSD.
Como se indica en la otra respuesta, si expulsa correctamente, todo eso debe ser solucionado mediante mecanismos bien definidos que forman parte de los protocolos SATA y USB para sincronizar acciones entre el host y el SSD.
Si lo extrae en medio de la escritura, es probable que los datos tanto en la DRAM del host como en el SSD permanezcan sin escribir, y es algo discutible si los datos no escritos estaban en la DRAM del host o en la DRAM del SSD. , ya que se perderá de cualquier manera. En esa situación, probablemente incluso haya datosenel bus que ha sido enviado por el host pero que aún no ha sido recibido por el SSD.