amarao (amarao_san) wrote,
amarao
amarao_san

Categories:

географически распределённый кластер для фейловер репликации аниме

... или, как мы живём под линуксом.

Недавно мне подсказали гениальную мысль для HDDLib: а зачем делать файлы нулевого размера, если можно сделать симлинки?

Симлинки визуально аналогичны файлам нулевого размера (т.е. функционал не убывает); однако, если вы используете одно и то же место монтирования для одного и того же тома, то симлинк позволит ещё и запускать файл, если медиа подключено.

Заметим, это будет работать И для случая, когда вы монтируете всё по-старинке (/media/HDD), и для случая, когда у вас прогрессивный автоманунт с метками диска. (/media/vol05).

Для удобства поиска и работы с путями делаются каталоги в /pub/HDDLib с метками (метки берутся из файла label на носителе и ведутся вручную). Скрипт индексирования (index) лежит на диске с media. (не очень секьюрно, но полагаем, что ваша библиотека - это ваша библиотека). Параноики могут переделать скрипт на запуск из другого места и сделать доп. проверки для содержимого label.

Скрипт рассчитан на текущий путь на индексируемом диске.
#!/bin/sh
HDDLIB=/pub/HDDLib
LABEL=`cat label`
if [ $LABEL ]
then 
	rm -r $HDDLIB/$LABEL
	mkdir $HDDLIB/$LABEL
	lndir `pwd` $HDDLIB/$LABEL
else
	echo "no label"
fi


Сейчас я постепенно буду мигрировать на этот формат.

И ещё одно мелкое изменение: скрипт soff (выключение диска) теперь выглядит так:

#!/bin/sh
echo 1 >/sys/block/$1/device/delete
dmesg|tail -n 3


А его запуск даёт более красивый вывод:

sudo soff sdb
[145236.138661] sd 3:0:0:0: [sdb] Synchronizing SCSI cache
[145236.138661] sd 3:0:0:0: [sdb] Stopping disk
[145236.652607] ata2.00: disabled


PS Интересно, а если я выключил устройство, могу я как-нибудь энфорснуть ядро на перечитывание устройства снова (то бишь включить?)

UPD: В debian-russian@ подсказали:

echo "- - -"> /sys/class/scsi_host/host3/scan

[149765.030315] ata2: hard resetting link
[149765.520971] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[149765.522446] ata2.00: ATA-8: WDC WD7500AACS-00D6B0, 01.01A01, max UDMA/133
[149765.522446] ata2.00: 1465149168 sectors, multi 0: LBA48 NCQ (depth 31/32)
[149765.524919] ata2.00: configured for UDMA/133
[149765.524919] ata2: EH complete
[149765.524919] scsi 3:0:0:0: Direct-Access     ATA      WDC WD7500AACS-0 01.0 PQ: 0 ANSI: 5
[149765.527552] sd 3:0:0:0: [sdg] 1465149168 512-byte hardware sectors (750156 MB)
[149765.527552] sd 3:0:0:0: [sdg] Write Protect is off
[149765.527552] sd 3:0:0:0: [sdg] Mode Sense: 00 3a 00 00
[149765.527552] sd 3:0:0:0: [sdg] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[149765.527552] sd 3:0:0:0: [sdg] 1465149168 512-byte hardware sectors (750156 MB)
[149765.527552] sd 3:0:0:0: [sdg] Write Protect is off
[149765.527552] sd 3:0:0:0: [sdg] Mode Sense: 00 3a 00 00
[149765.527552] sd 3:0:0:0: [sdg] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA

Почему оно "3" я не понял, методом перебора нашёл.
Tags: anime, animelife, hdd, hddlib, linux, linux desktop, sata
Subscribe

  • План действий

    AAA при логине ведёт себя по разному в зависимости от того A это или AAAA.

  • Админский гольф

    Вам выдали шелл на сервер, на котором кто-то удалил все симлинки (т.е. файлы типа "симлинк"). Ваша задача починить сервер. Починенным сервер…

  • продолжая leetcode

    Первый раз я ощутил Силу. Задача - roman numerals, с обещанием, что на входе нет мусора. pub fn roman_to_int(s: String) -> i32 { let mut acc =…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 8 comments