Materiały z P.I.W.O. 2012 już dostępne.

Dziś znajomy szukał oprogramowania do skanowania tekstu na Ubuntu, dostał oczywiście informację o Finereaderze, ale przypomniało mi się, że był o tym wykład na P.I.W.O 2012 (wrażenia z P.I.W.O 2012 opisywałem tutaj), więc postanowiłem sprawdzić, czy są materiały. No i są. Nie ma ich zbyt wiele, bo póki co widzę raptem cztery (mam nadzieję, że wkrótce więcej), ale są dostępne.

Jakość jest, jaka jest. Widać wszystko, słychać też, ale… Wolałbym przeglądać móc przeglądać prezentację, choćby w PDF. No i niestety głos prowadzącego prezentację jest z mocnym pogłosem, czego szczerze nienawidzę. Ogólnie tego typu prezentacje przez komputer lub na video bardzo mnie męczą. Co ciekawe na żywo zupełnie tego nie zauważam. Podobno na którejś konferencji odnieśli sukces stosując tanie odtwarzacze Sansa z Rockboksem do nagrywania. Może warto spróbować w przyszłym roku?

Jeśli ktoś nie mógł dotrzeć na P.I.W.O., a ma trochę czasu wolnego, to zachęcam do obejrzenia. Materiały P.I.W.O 2012.

UPDATE: Zabrakło najważniejszego, czyli linka do materiałów.

Pamięci flash, czyli pendrive, microSD itd.

Czasem człowiekowi wydaje się, że coś wie i… no właśnie, wydaje się. Że są różne pendrive’y (czy tam ogólnie pamięci flash), to wiedziałem. Wiedziałem też, że mają klasy i poszczególne klasy odpowiadają różnym prędkościom zapisu. I tyle.

Niedawno od hrw dowiedziałem się, że to nie do końca tak, że parametrów jest znacznie więcej i że w praktyce mają one spore znaczenie przy stosowaniu karty jako nośnika dla systemu Linux. Bo jednak czym innym jest zapis filmu na FAT, a czym innym realne operacje na jakichś linuksowych systemach plików.

Ostatnio uruchomiłem grzejnik na starym pendrive, użyłem ext2 i zdarzyło mi się trochę ponarzekać na μblogu, że wolno działa i w ogóle. Dostałem odpowiedź, że minimalny cluster size dla nośnika flash powinien być 4k. Co przypomniało mi wcześniejszą rozmowę i skłoniło do zadania pytania jak sprawdzić cluster size? Co dość szybko przywiodło mnie do wpisu nt. optymalizacji systemu plików dla pamięci flash.

Zauważyłem, że blog do którego powyżej linkuję ma raptem trzy wpisy i to sprzed roku, więc ryzyko zniknięcia jest spore. Pozwolę sobie zacytować dla pamięci część dotyczącą analizy:

  1. Interesting parts of this result are the diff changes drastically at two places:
    1. from  8388608 (8Mb) to 4194304 (4MB): Based in example readme in flashbench, this indicates that there was no performance overhead reading two blocks over the 4mb boundary, but there was for 8mb boundary. The guess is then that the erasure block is 8mb large on my sd-card
    2. before 8192 and after. I would really like to know why there is a bump at 8k, but times after that are so much lower, so 8k is obviously some sort of boundary point.
  2. From this, I deduce two things,
    1. Ext4 should have a block size of 4k, and the “stride” value should be 2. This will cause ext4 to think that units of 2 blocks (8k) can and should be treated as one.
    2. Ext4 should have the stripe-size set to 1024. This value was calculated by taking 8M (guessed erasure block size) dividing by 8K (size of a stride, 2 times block size (4K)). This will (hopefully) cause Ext4 to try to align writes so that while erasure blocks are written continuously and make it avoid sub-block updates.

Część dotyczącą ustawiania początku partycji w fdisk:

First sector (2048-15759359, default 2048): 16384

Wraz z wyjaśnieniem, skąd to się wzięło:

Fdisk uses blocks of 512 bytes, so that means that we want to start at 8*1024^2/512 = 16384.

No i na koniec część dotycząca tworzenia samego filesystemu ext4:

Reformat the filesystem, this time with Ext4 with block size of 4k, without journaling, but with additional parameters to encourage Ext4 to do the right thing with respect to the erasure block:

mkfs.ext4 -O ^has_journal -E stride=2,stripe-width=1024 -b 4096 -L Fedora14Arm  /dev/mmcblk0p1

Na koniec dwa linki, które autor wpisu podaje jako źródła:

Zachęcam do lektury całego wpisu z którego pochodzą powyższe cytaty, bo powyżej są jedynie najważniejsze wyjątki, które bez kontekstu nie do końca w czymkolwiek pomogą.

Inny, prostszy (ale starszy) wpis o podobnej tematyce: http://linux-howto-guide.blogspot.com/2009/10/increase-usb-flash-drive-write-speed.html

No i dowiedziałem się, że pożyteczne narzędzie to flashbench (pakiet jest w Debianie unstable), że żaden ext2 dla nośników flash, tylko ext4 bez journala, za to z dodatkowymi opcjami, zależnymi od parametrów karty. I że nie tylko w przypadku SSD warto stosować alignment. Różnica prędkości między ext2 a ext4 po tuningu? Wg autora wpisu 8 razy szybciej dla małych plików i dwa szybciej dla dużych. Trochę mi wszystko opadło, ale za to wiem, co będę robić w weekend.

UPDATE: Trochę się pobawiłem i wyszło mi, że metoda pomiaru jest średnio dokładna. Albo pendrive zwalnia w miarę używania (w sensie „wykonana ilość zapisów”), albo reboot/hibernacja drastycznie zmieniają wyniki, albo nie wiem co jest grane. Bo zrobiłem test na FAT, potem na ext4 po dopasowaniu partycji (brak zauważalnych różnic), potem zabawa z ustawieniami ext4 i… między pierwszym testem na ext4, a końcowym, na identycznych parametrach ext4 były 4 sekundy różnicy. Przy podstawie 22 sekundy, więc prawie 20% wolniej. Zagadka. A ponieważ nie widzę zysku między FAT a ext4, to chęć do migracji ext2 -> ext4 gwałtownie spadła. Może kiedyś.

UPDATE2: Dodane cytaty z bloga. Bawiłem się trochę w optymalizacje/benchmarki na czterech różnych pendrive’ach. Tylko jeden zareagował pozytywnie na zmianę alignmentu (OK, bez wyliczeń było, po prostu początek partycji na sektorze 16384) i zmianę systemu na ext4. Przy okazji wyszło na jaw, że pendrive, który uznałem za wolny jest ok. 3 razy wolniejszy od pozostałych, niezależnie od ustawień.

Ryzyko prowadzenia węzła Tora.

Oczywiście wpis jest inspirowany tymi dwoma wpisami. Mocno rozbieżne w wymowie są. Pierwszy bardziej w tonie „jak oni mogli?!”, drugi z kolei mocno zorientowany na ryzyko. Jak dla mnie sprawa jest prosta: prowadząc wyjściowy węzeł Tora[1] należy mieć świadomość, że służby mogą wpaść z wizytą. W końcu jest prawie pewne, że prędzej czy później dojdzie do jakiegoś przestępstwa z IP przydzielonego w danym momencie do węzła wyjściowego. A policja lubi się popisywać i w prosty sposób podbijać sobie statystykę. Był powód do kipiszu? No był…

Zresztą, w Polsce też były podobne akcje, tyle, że z tego co mi wiadomo nie trafiły do mediów. Jedna z osób narzekała na wizytę policji i konfiskatę komputerów (lub dysków) w celu zabezpieczenia dowodów. Zresztą z tego co kojarzę bardzo szybko były zwrócone. No i prowadzący wyjściowy węzeł nie miał narkotyków itp.

Trochę też nie rozumiem o co ten hałas, w końcu w FAQ Tora jest napisane, czego można się spodziewać prowadząc węzeł. Co prawda dałbym głowę, że jest tam wspomniane o możliwości wizyt policji (a nie jest), więc pewnie miesza mi się z prezentacją dotyczącą Tora na MeetBSD sprzed paru lat. W każdym razie należy założyć, że takie wizyty są możliwe, chociaż widzę, że nie są częste. Pozytywne jest to co piszą, że policja zaczyna być świadoma istnienia węzłów i przed wizytą (czy to rozmową, czy wjazdem), zaczyna sprawdzać, czy faktycznie chodzi o węzeł, czy o końcowego użytkownika.

Co nie oznacza, że prowadzenie węzłów pośredniczących (relay nodes, bridge nodes) też wiąże się z ryzykiem. Tu żaden ruch nie wychodzi na zewnątrz sieci Tor. Służby nie bardzo mają powód czy pretekst do wizyty. Nawet maila nie wyślą (sprawdzone empirycznie, różne węzły, parę lat). I w sumie jeśli chcą faktycznie łapać przestępców, to mogliby współpracować z prowadzącymi węzły. Bo przy odpowiedniej wiedzy i współpracy policji na skalę międzynarodową osoby korzystające z Tora (końcowi użytkownicy) są jak najbardziej możliwe do namierzenia. Zresztą, zdaje się były publikacje naukowe na ten temat.

W każdym razie głównie trzeba czytać i rozumieć, co się robi i jak to działa. Za bardziej ryzykowne osobiście uważam posiadanie niezabezpieczonej lub słabo zabezpieczonej sieci wifi. Ktoś może jej użyć do równie nielegalnych celów, a wtedy nie ma żadnych przesłanek by uważać, że czynności dokonał ktoś inny, niż użytkownik danego adresu IP.

[1] To tylko jeden z typów węzłów, służący jako ostatni pośrednik między siecią Tor a zwykłym Internetem.

PS Nagonka na Tora ma miejsce nie po raz pierwszy a tu krótki opis jak łatwo skonfigurować bridge node.