Как я могу восстановить файл .nfs? - PullRequest
0 голосов
/ 27 августа 2009

Я работал над алгоритмом в Python, и я использовал Vim для редактирования этого файла. Я открыл его, сделал сохранение, и он обнаружил ошибку, что-то вроде того, что иногда делает:

«ВНИМАНИЕ: ВАШ ФАЙЛ НЕ СОХРАНЯЕТСЯ! ВСЕ ИЗМЕНЕНИЯ БУДУТ УТРАТЫ! НЕ МОЖЕТ НАПИСАТЬ ФАЙЛ!»

Как это иногда случается, я делал то, что обычно делаю, и нажимал: q! выйти без записи каких-либо изменений. Нет вреда, нет фола. Когда я посмотрел на мой файл, все было стерто! Все!

Я разговаривал по офису, и кажется, что монтирование nfs было переполнено, и поэтому я не смог ничего спасти. Был огромный скрипт, генерирующий тонну данных, что приводило к временному заполнению монтирования. Я считаю, что монтирование NFS происходит от NetApp. Я нашел 2 файла в моем текущем каталоге.

Последний раз был спасен два дня назад, а другой - сегодня. Они в формате:

.nfs.xxxxxxxxxxx

Когда я пытаюсь открыть этот файл, я вижу, что кое-что из моего кода, здесь и там, разбросано среди неизвестных символов. По-видимому, это должно быть двоичное представление состояния файла.

Есть ли способ восстановить этот файл из этого монтирования NFS? Если в Emacs есть ярлык для восстановления этого файла, я переключусь на Emacs из vim!

Ответы [ 2 ]

2 голосов
/ 05 октября 2009

Итак, я нашел способ восстановить файл. Я нашел два пути, на самом деле. Поскольку он был подключен к NetApp NFS, я смог использовать функцию моментальных снимков. Когда вы находитесь в каталоге, просто выполните

ls .snapshot

И это вызовет все снимки, которые установили ваши системные администраторы. Для нас у нас есть резервные копии каждый час.0, час.1 и ночь.0, и ночь.1. Таким образом, мы можем вернуться назад на два дня, и в тот же день мы можем вернуться назад на один час (текущий час и предыдущий).

Другой способ состоял в том, чтобы переименовать файл в файл подкачки vim следующим образом.

mv .nfs.xxx my_vim_file.cpp.swp vim my_vim_file.cpp.swp

Затем попытайтесь открыть его в Vim, и он должен спросить вас, хотите ли вы восстановить файл подкачки, скажите «да», и он должен вернуться!

0 голосов
/ 09 ноября 2013

Очевидно, что ваш Netapp использует NFS для монтирования своих томов (в отличие от iSCSI, например). Обычно каждая виртуальная машина хранится на уникальном томе (он же хранилище данных) в файлере Netapp. Чтобы узнать тома и снимки, а затем восстановить снимок, вот команды, которые нужно выполнить в командной строке:

# list all volumes, snapshots are taken of volumes
vol status
# list the snapshots available for a particular volume
snap list <vol_name>
# restore a snapshot, nightly.1 for example
snap restore <vol_name> nightly.1

Вот и все. Осталось только включить виртуальную машину и посмотреть, достаточно ли вы восстановились. Если нет, то сделайте еще одно «мгновенное восстановление», но со старым снимком.

Обратите внимание, что эта процедура предполагает, что ваш администратор не отключил снимки (у Netapp есть расписание снимков по умолчанию) и что Netapp лицензирован для восстановления снимков (используйте команду "license" для проверки). Эта процедура может быть дополнительно упрощена, если у вас есть Netapp OnCommand System Manager, который представляет собой графический интерфейс для управления Netapp. Восстановить снимок в графическом интерфейсе очень просто:

Go to Storage > Volumes > click on a volume > click on Snapshot Copies (at the bottom)
Choose a snapshot and restore
...