pozitronik: (Sheridan)
[personal profile] pozitronik
Практика навела ещë на один вопрос, который, вполне возможно, я буду задавать на собеседованиях:
Есть один сервер, в нëм каталог, в нëм файлы. На диске сервера кончается место, в этом случае часть файлов в каталоге удаляется. После удаления файлов свободное место не прибавляется. Утилиты проверки диска/файловой системы сбоев не выявляют.
Назовите причину вышеописанного эффекта.

Ответ, как обычно, тривиальный.

Date: 2012-02-29 05:32 am (UTC)
From: [identity profile] kam-alex.livejournal.com
В эту часть файлов велась запись, затем их переименовали, но процесс повис в памяти. Командой типа lsof | grep *имя_файла* проверить на предмет наличия в памяти процесса и кильнуть его.

Date: 2012-02-29 06:31 am (UTC)
From: [identity profile] pozitronik.livejournal.com
Всё гораздо тривиальнее.
Кстати, сервер был виндовый (для поставленной задачи это абсолютно неважно, она платформонезависимая), а винда удалить занятый процессом файл, емнип, не даст.

Date: 2012-02-29 07:00 am (UTC)
From: [identity profile] sreversor.livejournal.com
После удаления файлов свободное место

В твоей задаче сказано про то, что файл был удален. А здесь просто при удалении выскочит мессаджебокс и файлы останутся на местах.

Немного разочарован....

Date: 2012-02-29 07:04 am (UTC)
From: [identity profile] pozitronik.livejournal.com
Я продолжаю утверждать, что файл таки был удалён. Никаких мессаджебоксов, никаких корзин, честное, полноценное удаление, даже Вася сказал, что это продиджи dir показывает, что файлов больше нет в каталоге.

Date: 2012-02-29 07:11 am (UTC)
From: [identity profile] sreversor.livejournal.com
> dir показывает, что файлов больше нет в каталоге

айкентбиливобол_зисшит.jpg

Date: 2012-02-29 07:15 am (UTC)
From: [identity profile] pozitronik.livejournal.com
Почему? Всё корректно, мы отдали команду удалить файл, файл удалился. Чему тут можно не верить?
Вопрос-то в другом: почему счётчик свободного места не увеличивается?

Date: 2012-02-29 07:21 am (UTC)
From: [identity profile] sreversor.livejournal.com
Потому что ты удалил только 4 кб-nysq заголовок файла, который содержит инфу по его имени и занятых кластерах на ЖД. А все остальное место блокирует процесс, который дает понять ОС и файловой системе, что место занято, пока процесс не будет убит. В как минимум одной известной мне файловой системе есть такой глюк.

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

Просто есть моменты в жизни, лол.

Date: 2012-02-29 07:27 am (UTC)
From: [identity profile] pozitronik.livejournal.com
Ну в данном случае это было не оно. Для пущей уверенности прими тот факт, что я делал chkdsk /X, при котором том отмонтируется, а все хендлы с него - принудительно закрываются.
Edited Date: 2012-02-29 07:28 am (UTC)

Date: 2012-02-29 07:47 am (UTC)
From: [identity profile] sreversor.livejournal.com
Ничего в голову путного не приходит.

Если только процесс, как только обнаруживает, что файл удален, создает его снова. У нас даже лаба на эту тему была.

Date: 2012-02-29 01:48 pm (UTC)
From: [identity profile] pozitronik.livejournal.com
Я чувствую себя Ёркиным, который задал вопрос про суровую российскую действительность, а ему отвечают про церковь и погоду.

Date: 2012-03-01 05:38 am (UTC)
From: [identity profile] sreversor.livejournal.com
Похоже, что я провалил собеседование :(

Date: 2012-03-01 08:20 am (UTC)
From: [identity profile] pozitronik.livejournal.com
Все провалили.

Date: 2012-02-29 06:21 am (UTC)
From: [identity profile] dibr.livejournal.com
Неужели "корзина"?
Меня однажды очень впечатлило, когда в каком-то очень древнем солярисе удаление файла "через гуй" с локального раздела (большого и без квот) делалось перемещением его в "корзину" в домашнем каталоге пользователя (по сети и с квотами). Оно сначало очень сильно тормозило, а потом сказало, что файл не удаляется, потому что мне не хватает для этого места :-)

Ну, или как тут уже написали, его залочил какой-то процесс.

Date: 2012-02-29 06:33 am (UTC)
From: [identity profile] pozitronik.livejournal.com
>Неужели "корзина"?
Ну не настолько тривиально же. Да и я пока не настолько идиот (хотя всё и ведёт к этому).

Date: 2012-02-29 06:40 am (UTC)
From: [identity profile] sreversor.livejournal.com
Если файл лочится, то при попытке удаления он выкинет ошибку. Хотя может и так, что файл писался в оперативку (типа кешровался там). Ты его удаляешь, а место на диске не прибавляется :)

Date: 2012-02-29 06:51 am (UTC)
From: [identity profile] dibr.livejournal.com
Не так выразился: не лочится, просто открыт другим процессом. Тогда "удалить" его можно, но место освободится только когда процесс его "отпустит" (закроет).
А про кеш я что-то не понял. "RAM-диск" - это не кеш (да и давно я рам-дисков не видел), а дисковый кеш никак не влияет на выделение места на диске...

Date: 2012-02-29 07:19 am (UTC)
From: [identity profile] pozitronik.livejournal.com
Кстати, замечал в винде такое, что при удалении файла, находящегося в сети, и занятого процессом с другой машины, система не выдаёт никаких ошибок и сообщений. Файл, естественно, остаётся на месте. Но как только залочивший его процесс закрывает хендл - файл тут же исчезает.
Пруфов не будет.

Date: 2012-02-29 06:37 am (UTC)
From: [identity profile] sreversor.livejournal.com
Первое, что пришло в голову:

1. Ты примонтировал сетевой диск к серверу. Разумеется, когда ты удаляешь файлы на сетевом диске, на диске сервера место не прибавляется. Попробуй удалить файлы на диске сервера.

2. У тебя в фоне идет процесс копирования (распаковывания) файлов в этот каталог.

3. У тебя было очень мало места под своп, и как только оно появилось, своп его захавал.

Date: 2012-02-29 07:01 am (UTC)
From: [identity profile] pozitronik.livejournal.com
Какая же хуйня тебе в голову приходит-то!

Нет, нет и нет.

Место на диске вообще никак не меняется при удалении файла. Ни на байт. А файлы реально из каталога уносятся в информационный рай!

Date: 2012-02-29 07:13 am (UTC)
From: [identity profile] sreversor.livejournal.com
> хуйня

Я просто описал реальные случаи из жизни, с которыми сталкивался.

Date: 2012-02-29 07:20 am (UTC)
From: [identity profile] pozitronik.livejournal.com
Сорри, не хотел обидеть. Что-то я разбушевался, совсем ебанею на этой работе.

Date: 2012-02-29 07:22 am (UTC)
From: [identity profile] sreversor.livejournal.com
Завязывай с такой работой, браза. Здоровье дороже.

Date: 2012-02-29 07:25 am (UTC)
From: [identity profile] pozitronik.livejournal.com
Но я должен заработать на уютную квартирку в центре Самары!

Date: 2012-02-29 02:56 pm (UTC)
From: [identity profile] swooper.livejournal.com
оффтоп

а на это работе это реально?
сколько средняя двушка в центре у вас?

Date: 2012-02-29 03:49 pm (UTC)
From: [identity profile] pozitronik.livejournal.com
Два с половиной ляма где-то, ну плюс-минус по условиям.
У меня оплата почасовая, то есть я могу либо ебать парнокопытных и всю жизнь платить еботеку, либо жить на работе, и выплатить еботеку за пару лет.
Пока что, в независимости от моих желаний, я живу на работе.

Date: 2012-03-01 05:37 am (UTC)
From: [identity profile] sreversor.livejournal.com
На работе есть интернет, душ и еда.

На работе можно жить!

Date: 2012-02-29 08:38 am (UTC)
From: [identity profile] nik-vr.livejournal.com
Под Виндой, говоришь, дело? Из банального могу предположить только восстановление системы - файлик после удаления ушёл в рай, а его копия - в бэкап. Обычно права на папку Restore не позволяют её размер посмотреть без лишнего геммороя, так что можно и не заметить копию файлика.

Date: 2012-02-29 01:09 pm (UTC)
From: [identity profile] pozitronik.livejournal.com
Мимо. Задача платформонезависимая, все необходимые данные по конфигурации сервера есть в посте.
Edited Date: 2012-02-29 01:10 pm (UTC)

December 2016

S M T W T F S
    123
45678910
1112131415 1617
18192021222324
25262728293031

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 3rd, 2025 07:20 am
Powered by Dreamwidth Studios