На что указывает статус задачи PA?

вы не упомянули, есть ли у вас аппаратный RAID или вы будете делать это программно через что-то вроде mdadm. моя рекомендация держаться подальше от программного рейда, который реализуется во время и после загрузки вашей системы, потому что он полагается на операционную систему linux для первой загрузки и запуска. Любые перебои в подаче электроэнергии могут привести к повреждению файловой системы, что сведет на нет цель программного рейда.

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

с аппаратным рейдом, я думаю, выбор сводится к тому, нужно ли вам, чтобы ваша система всегда работала круглосуточно и без выходных? Если это так, то аппаратный рейд может защитить от одного или нескольких отказавших дисков, что является его основной целью. Если нет, то это может иметь небольшую добавленную стоимость, и вам будет лучше использовать 1 из этих 4 дисков в качестве зеркальной копии (не raid-1), содержащей полную резервную копию жесткого диска вашей операционной системы, чтобы вы могли загрузить любой диск. привод.Поймите, что то, что я говорю, отличается от двух дисков в качестве аппаратного raid-1, потому что, если вы испортите свои файлы при настройке raid-1, оба диска испортятся. Я считаю, что вы обновляете резервную копию диска операционной системы только с того рабочего диска, который, как вы знаете, исправен и правильно настроен. И в качестве предложения, поскольку у вас всего 4 диска, и если вы разделяете мое мнение, что современный жесткий диск Диски имеют низкую частоту отказов:

  1. диск 1 = производственная операционная система всегда работает
  2. диск 2 = автономная копия диска 1, обновляется только до зеркального отображения диска 1, когда вы знаете, что диск 1 работает на 100%
  3. диск 3 = все другие данные, не относящиеся к операционной системе
  4. диск 4 = резервная копия диска 3.

если диск 1 или 3 не запускается, то у вас есть диски 2 и 4, которые можно использовать и решить проблему.

если диск операционной системы 1 не загружается или выходит из строя, но диск все еще работает, то вы просто переустанавливаете на нем операционную систему linux; все ваши данные находятся на диске 3, и их резервная копия сохраняется на диск 4. вы также можете загрузиться с резервного диска 2, смонтировать и исправить диск 1, выяснив, чем он отличается от рабочего диска2.

3
27.05.2019, 18:17
2 ответа

Состояние относится к припаркованному состоянию. Это состояние действительно только для ядер от 3.9 до 3.13. Согласно man страница:

state  %c
                    One of the following characters, indicating process
                    state:

                    R  Running

                    S  Sleeping in an interruptible wait

                    D  Waiting in uninterruptible disk sleep

                    Z  Zombie

                    T  Stopped (on a signal) or (before Linux 2.6.33)
                       trace stopped

                    t  Tracing stop (Linux 2.6.33 onward)

                    W  Paging (only before Linux 2.6.0)

                    X  Dead (from Linux 2.6.0 onward)

                    x  Dead (Linux 2.6.33 to 3.13 only)

                    K  Wakekill (Linux 2.6.33 to 3.13 only)

                    W  Waking (Linux 2.6.33 to 3.13 only)

                    P  Parked (Linux 3.9 to 3.13 only)

Это состояние также называется Непрерывный сон . См. эту ссылку для получения более подробной информации.

0
27.01.2020, 21:33

См.http://people.redhat.com/anderson/crash_sources/task.c

char *
task_state_string(ulong task, char *buf, int verbose)
{
long state;
int exclusive;
int valid, set;

if (_RUNNING_ == TASK_STATE_UNINITIALIZED) 
    initialize_task_state();

if (verbose)
    return task_state_string_verbose(task, buf);

if (buf)
    sprintf(buf, verbose ? "(unknown)" : "??");

state = task_state(task);

set = valid = exclusive = 0;
if (valid_task_state(_EXCLUSIVE_)) {
    exclusive = state & _EXCLUSIVE_;
    state &= ~(_EXCLUSIVE_);
}

if (state == _RUNNING_) {
    sprintf(buf, "RU"); 
    valid++;
}

if (state & _INTERRUPTIBLE_) { 
    sprintf(buf, "IN"); 
    valid++; 
    set++;
}

if (state & _UNINTERRUPTIBLE_) {
    if (valid_task_state(_NOLOAD_) &&
        (state & _NOLOAD_))
        sprintf(buf, "ID");
    else
        sprintf(buf, "UN");
    valid++; 
    set++;
}

if (state & _ZOMBIE_) {
    sprintf(buf, "ZO"); 
    valid++; 
    set++;
}

if (state & _STOPPED_) {
    sprintf(buf, "ST"); 
    valid++; 
    set++;
}

if (valid_task_state(_TRACING_STOPPED_) &&
    (state & _TRACING_STOPPED_)) {
    sprintf(buf, "TR"); 
    valid++; 
    set++;
}

if (state == _SWAPPING_) {
    sprintf(buf, "SW"); 
    valid++; 
    set++;
}

if ((state & _DEAD_) && !set) {
    sprintf(buf, "DE"); 
    valid++; 
    set++;
}

if (state == _PARKED_) {
    sprintf(buf, "PA"); 
    valid++;
}

if (state == _WAKING_) {
    sprintf(buf, "WA"); 
    valid++;
}

if (state == _NEW_) {
    sprintf(buf, "NE");
    valid++;
}

if (valid && exclusive) 
    strcat(buf, "EX");

return buf;

}

1
24.04.2020, 07:24

Теги

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