Я использую SSD, подключенный к Mac через мост sata-usb, для архивации относительно больших файлов. После того, как я переношу его на SSD, я отмонтирую его и отключаю.
Этот SSD имеет кэш DRAM. Насколько я понимаю, этот кэш используется как для кэширования записей, так и для хранения копии сопоставления файлов. Если я отключу его без размонтирования или во время записи, я бы предположил, что вполне возможно потерять данные, которые кэшируются в DRAM, и, возможно, даже потерять файлы из-за потери указателей на любые данные, которые изменились в сопоставлении.
Мой вопрос:Если я отключу диск и сразу же отключу его после успешного отключения, есть ли вероятность, что я отключу питание SSD до того, как он закончит запись всего, что находится в DRAM, на диск?
Управляет ли ОС/APFS DRAM и обеспечивает ли ее очистку перед размонтированием, или это делает прошивка SSD?
решение1
DRAM на SSD управляется прошивкой, но ОС может указать прошивке сбросить все ожидающие данные в стабильное хранилище, используя вызовы функций «барьер». ОС также может указать SSD, следует ли вообще включать кэширование записи.
Если вы аккуратно отмонтируете диск, ОС выполнит необходимые вызовы функций, чтобы убедиться, что все данные полностью записаны.
Если вы отключите его во время записи, не выполнив корректное размонтирование, все будет потеряно, и результат будет зависеть от прошивки SSD, файловой системы и различных других факторов.
решение2
DRAM присутствует как в хосте, управляемом операционной системой, так и DRAM внутри SSD, управляемая прошивкой SSD.
Как указано в другом ответе, если вы правильно извлекаете диск, обо всем этом должны позаботиться четко определенные механизмы, которые являются частью протоколов SATA и USB для синхронизации действий между хостом и SSD.
Если вы выдернете его во время записи, то, скорее всего, данные как в DRAM хоста, так и в SSD останутся незаписанными, и не имеет значения, были ли незаписанные данные в DRAM хоста или в DRAM SSD, так как они будут потеряны в любом случае. В этой ситуации, вероятно, даже данныенашина, отправленная хостом, но еще не полученная SSD.