Изменение размеров логического тома без свободных степеней, но со свободным пространством на диске

Patrick имеет его более или менее корректный, но здесь почему. Путем Вы копируете файл при работах UNIX как это:

  1. Попытайтесь считать (еще) некоторые байты из fileA.
  2. Если нам не удалось получить байты, потому что мы в (или мимо) конец файла, мы сделаны; выход.
  3. Иначе запишите байты в fileB и цикл назад к шагу 1.

Зная это, и знание, это столь же просто как который, позволяет нам видеть некоторые угловые случаи.

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

Если файл является усеченным, в программе копии говорится "Стоп, я прохожу конец файла!" и выходы.

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

(Тем не менее я не знаком с CouchDB, и возможно разработать базу данных, чтобы быть стойким к этому виду повреждения. Но лучше всего быть абсолютно уверенным.)

5
06.07.2011, 03:01
1 ответ

На стороне LVM нет никакой проблемы. Использовать lvreduce уменьшать группу объема; очевидно, если существует файловая система на нем, Вы не должны уменьшать его ниже размера файловой системы. Затем используйте pvmove переставить степени вокруг: pvmove /dev/sdz42 удаляет степени из физического тома /dev/sdz42 к другим физическим томам в той же группе объема, после которой можно списать физический том с vgreduce.

Однако это спорно, так как у Вас есть файловая система XFS, и XFS не поддерживает уменьшение. Я боюсь, что необходимо будет переместить данные прочь и переделать файловую систему (и таким образом можно быть абсолютно нетонкими с LVM).

5
27.01.2020, 20:40
  • 1
    Gilles, превосходный, я просто не получил корректный рабочий процесс! lvreduce делает точно, что требуется..., и теперь я вижу, что действительно причинил мне боль с XFS. –  Steve 07.07.2011, 10:22

Теги

Похожие вопросы