Tu jesteś:

blog.trustnet.pl

Problemy z systemem plików

Każdemu zdarza się popełniać błędy, nawet programistom o czym można przekonać się przeglądając listy z dziurami zabezpieczeń, np. Secunia Advisories. Błędy bezpieczeństwa to nie jedyny problem, z którym administrator musi się zmagać w codziennej pracy.

W ostatnim czasie na kilku produkcyjnych maszynach zaczęły się problemy z obciążeniem oraz błędami systemu plików, które skutkowały automatycznym przemontowaniem partycji w trybie tylko do odczytu co następnie prowadziło do destabilizacji maszyny przez procesy, które chciały coś na tej partycji zapisać. Rzut okiem na logi serwera oraz przeszukanie redhatowego bugtraqua i oto mamy punkty zaczepienia.

Postępowanie w takich sytuacjach jest bardzo proste:
1. Należy zachować spokój, gdyż nieprzemyślane działanie może przynieść więcej szkody niż pożytku
2. Przyjrzeć się dokładnie logom serwera, w tym przypadku w logach powtarzają się wpisy:
Jul 8 10:16:14 erwin kernel: EXT3-fs error (device md4): ext3_lookup:
unlinked inode 99189142 in dir #99188744
Jul 8 10:16:14 erwin kernel: Aborting journal on device md4.
Jul 8 10:16:14 erwin kernel: __journal_remove_journal_head: freeing
b_committed_data
Jul 8 10:16:14 erwin last message repeated 2 times
Jul 8 10:16:14 erwin kernel: ext3_abort called.
Jul 8 10:16:14 erwin kernel: EXT3-fs error (device md4):
ext3_journal_start_sb: Detected aborted journal
Jul 8 10:16:14 erwin kernel: Remounting filesystem read-only

3. Jak widać problem występuje z journalem systemu plików (jest on uszkodzony), więc należy go przywrócić:
- uruchamiamy system w single mode (należy dodać parametr single do wiersza parametrów kernela w bootloaderze
- należy odmontować uszkodzoną partycję, np. umount /dev/md4
- usuwamy uszkodzony journal: tune2fs -O ^has_journal /dev/md4
- sprawdzamy system plików co może trochę potrwać: e2fsck -fy /dev/md4
- zakładamy nowy journal: tune2sf -j /dev/md4
- ponownie sprawdzamy system plików: fsck -y /dev/md4
- reboot
4. Jeśli wszystko przebiegło bez problemów to możemy się cieszyć z kolejnego rozwiązanego problemu.

Napisano: 9 lipca 2010

Autor: SoR

Kategorie: Linux, serwery

Tagi: , , , ,

140 tysięcy aplikacji i 3 miliardy ściągnięć…

Takimi wynikami chwali się sklep z aplikacjami dla urządzeń mobilnych giganta zza oceanu, z jabłuszkiem w logo. Robi wrażenie, tym bardziej, że trend zapotrzebowania na rozwiązania mobilne jest zdecydowanie wzrastający. Do takiego stanu rzeczy w znacznym stopniu przyczyniają się giganci rynku, którzy sami napędzają koniunkturę i forsują swoje (wzajemnie niekompatybilne) mobilne rozwiązania. Oczywiście polski rynek to nie ta skala, a i moda na rozwiązania mobilne, nie jest jeszcze tak powszechna jak za oceanem. Trudno jednak negować fakt, że internet mobilny jest obok, rozwija się i nigdzie się nie wybiera. Im wcześniej zdamy sobie sprawę z tego faktu, tym lepiej. Dlaczego zatem nie ugryźć kawałka tego lukratywnego „mobilnego” tortu?

Podstawowym problemem jest mnogość platform systemowych w urządzeniach mobilnych (Android, iOS, Symbian, Windows Mobile) i ich wzajemna niekompatybilność. Decydując się dzisiaj na projekt aplikacji natywnej – czyli takiej która działa bezpośrednio na urządzeniu – musimy korzystać z dedykowanego zestawu narzędzi (SDK) dla danej platformy. Co w przypadku, gdy zależy nam na przenośności, wiąże się z pisaniem wielu wersji tej samej aplikacji na poszczególne systemy – dodatkowy czas i koszty. Jednak wraz z obecnym gwałtownym rozwojem aplikacji typu RIA, i coraz wiekszymi możlwiościami przeglądarek, pojawia się alternatywne rozwiązanie…

Mobilne aplikacje webowe – uruchamiane w przeglądarce urządzenia przenośnego, funkcjonujące na zasadzie „otwórz przeglądarkę, wpisz adres URL i ciesz się swoją aplikacją”.

Już teraz rozwiązania te oferują wygląd i funkcjonalność zbliżoną do tych, oferowanych przez aplikacje natywne, a wraz z wejściem na rynek zaawansowanych rozwiązań jak ustandaryzowana obsługa audio i wideo, grafika 3D wspierana przez WebGL (dla gier 3D i modelowania), obsługa grafiki 2D i animacji, usprawnienia komunikacji, wsparcie dla geolokalizacji, lokalne magazyny danych, bazy SQL, cachowanie zasobów (tak, że będą dostępne po przejściu w tryb offline) przeglądarka stanie się kompleksowym graficznym środowiskiem do uruchamiania aplikacji.

Dodatkowym atutem, są pojawiające się, znakomite narzędzia jak Sencha Touch - pierwszy oparty na HTML5, wieloplatformowy framework dla twórców aplikacji mobilnych. Powstały z połączenia lidera rynku rozwiązań biznesowych – biblioteki komponentów Ext JS, służącej do szybkiej budowy interfejsów i bogatych aplikacji internetowych (nasz firmowy CMS) wraz z jedną z najlepszych bibliotek Javascript dla urządzeń mobilnych – JQTouch.

Z pomocą Sencha Touch, będziemy mogli pisać aplikacje do złudzenia przypominające rozwiązania znane z telefonów Apple’a, obsługiwane zaawansowanymi zdarzeniami dotykowymi, oferujące dowolną funkcjonalność: od mobilnego uzupełnienia systemów do zarządzania kontaktami z klientami, przez biurowe aplikacje raportująco-użytkowe, po aplikacje do zarządzania sieciowym łańcuchem dostaw (SCM).

Mimo, że obecnie prym nadal wiodą aplikacje natywne (póki co szybsze i bardziej niezawodne), to przyszłość mobilnych aplikacji webowych i tego stosunkowo młodego rynku maluje się kolorowo. Wraz z rozwojem nowych narzędzi i technologii, środek ciężkości projektowania mobilnego będzie przesuwał się w stronę aplikacji przeglądarkowych. Pokonanie obecnych słabości tych rozwiązań, jest tylko kwestią czasu – kombinacja wzrastającej mocy obliczeniowej urządzeń przenośnych, dalszy rozwój WebKita, większa ilość RAM, nowy interpreter Javascript – Nitro, to tylko niektóre przesłanki pozwalające z całą stanowczością twierdzić, że sieć stanie się nieuchronną platformą zarówno dla aplikacji mobilnych jak i tradycyjnych.

Nasz udział na konferencji Google dla agencji

31 maja w Warszawie odbył się Dzień „Google dla agencji” – spotkanie skierowane do agencji interaktywnych i webmasterskich. Na imprezę przybyło prawie 300 uczestników z całego kraju wyłonionych spośród wszystkich firm współpracujących z Google, które zadeklarowały chęć uczestnictwa w konferencji. Naszą firmę reprezentowało na nim dwóch pracowników. Czytaj dalej

Trustnet na PHPCon2010

Dnia 21. Maja miał miejsce pierwszy ogólnopolski zlot entuzjastów i programistów języka PHP  – PHPCon Poland 2010 zorganizowany przez PLUG. Oczywiście nie mogło tam zabraknąć silnej reprezentacji programistów  firmy Trustnet .
Zjazd miał miejsce w malowniczej miejscowości Huta Szklana, położonej niedaleko Puszczy Świętokrzyskiej. W ciągu trzech dni mieliśmy przyjemność  uczestniczyć w 12 prelekcjach dotyczących zagadnień związanych zarówno bezpośrednio z projektowaniem i implementacją projektów w PHP, jak i bardziej uniwersalnych tematów traktujących  o prawach autorskich, czy problemie walki ze spamem.

Większość wykładów, może z wyłączeniem prelekcji samego sponsora imprezy, stała na wysokim poziomie. Interesujący wykład dał niejaki Zyx, opowiadając o rozwijanym przez siebie autorskim systemie szablonów – Open Power Template. Projekt w ciekawy sposób podejmuje problem separacji warstwy logiki aplikacji od widoku, dając projektantowi szablonu do dyspozycji zestaw instrukcji osadzanych bezpośrednio w kodzie szablonu. Programista na wejściu instrukcji  określa jedynie rodzaj spodziewanych danych wejściowych i format ich prezentacji, zaś całą resztą: algorytmami renderowania, przygotowywania danych do wyświetlenia, zajmuje się sam system szablonów.
Mimo że do prezentacji podszedłem z lekkim dystansem, to być może w przyszłości pokuszę się o przetestowanie OPT w praktyce.

Duże zainteresowanie wzbudziły dwie prelekcje dotyczące systemów cachowania . Pierwsza z nich ogólnie zarysowała tematykę wielopoziomowego cachowania aplikacji skali biznesowej, z wykorzystaniem do tego  klastrów i serwerów dedykowanych, wyznaczonych wyłącznie do cachowania  newralgicznych danych. Druga, bardziej konkretna, traktująca o wysokiej wydajności systemie buforowania obiektów Memcached, o którym można przeczytać w relacji mojego kolegi tutaj.

Niestety prezentacja, na którą osobiście czekałem najbardziej o Architekturze Plug-in w PHP,  nie powaliła mnie na kolana.

Sam temat jest obecnie wyjątkowo ciekawy, ze względu na ogólną  potrzebę pisania aplikacji w sposób szybki, przy jednoczesnej minimalizacji nakładów pracy. Łatwo wyobrazić sobie jakim ułatwieniem byłoby składanie aplikacji z gotowych modułów na konkretne żądanie klienta. Jednak zaprojektowanie aplikacji  w oparciu o koncepcję autonomicznych części, „klocków” realizujących pewne samodzielne zadania jak  autoryzacja, blog czy sklep nie jest trywialne. Pojawia się szereg podstawowych problemów…

  • Które warstwy architektury MVC odpowiadałyby za poszczególne zadania: rozdzielania żądań, rejestrowania pluginów, implementacji usług, wyrejestrowywania?
  • W jaki sposób zaprojektować aplikację, w taki sposób żeby moduły pozwalały na manipulację wzajemnymi zależnościami?
  • Jak w łatwy sposób rozszerzać funkcjonalności poszczególnych modułów?
  • Czy rejestrować wszystkie pluginy jednocześnie?

Niestety część  z tych pytań pozostała dla mnie bez odpowiedzi. Owszem prelekcja zawierała fragmenty listingów, jednak sama koncepcja wydaje się zbyt złożona i wiąże się z szeregiem skomplikowanych inżynieryjnych pojęć  – kontenera wstrzykiwania zależności, szczegółów implementacji architektury EDA, których omówienie w tak krótkim czasie, jest niemożliwe.

Podsumowując, zjazd był dla mnie nie tylko zastrzykiem nowych informacji, świetną okazją do poznania ludzi z branży, wymiany doświadczeń i dyskusji na temat realizowanych projektów, ale również bodźcem do dalszego poszerzania wiedzy i szukania coraz to lepszych programistycznych rozwiązań.

okleiliśmy się … na lato :)

Długo się zbieraliśmy i wreszcie mamy gotowe: oklejone naszym logo samochody firmowe. Będzie nas teraz mam nadzieję częściej widać w mieście – tym bardziej zapraszamy do korzystania z usług ….

Przygotowania do oklejenia samochodów
Przygotowania do oklejenia samochodów
już za chwileczkę, już za momencik
już za chwileczkę, już za momencik
kleimy, kleimy
kleimy, kleimy
kolejka samochodów do oklejania czeka
kolejka samochodów do oklejania czeka
niektóre samochody "już po", inne "przed"
niektóre samochody „już po”, inne „przed”
pięknisie ...
pięknisie …
sponsorem (no może nie do końca sponsorem) była firma Impressia z Częstochowy
sponsorem (no może nie do końca sponsorem) była firma Impressia z Częstochowy

Cachowanie na PHPCon

W Skrócie przedstawiam krótka recenzję według  mnie najciekawszego wykładu na PHPCon. Wykład prowadzony przez Przemysława Pawliczuka. Zagadnienie omówione bardzo szczegółowo. Omówiono wiele sposobów cashowania (memcache, redis, shmop, wincache). Oprócz omówienia technologii wspomagających cachowanie wskazano także, na jakie dane należy w głównej mierze zwrócić uwagę. Wąskim gardłem oczywiście zawsze będzie baza danych i to tutaj należy skupić najwięcej uwagi. Cashować należy także fotografie (generowane w locie miniatury), skomplikowane obliczenia, fragmenty wygenerowanego kodu HTML, konfigurację skryptu itd. Wielopoziomowe cachowanie, które głównie było omawiane na wykładzie przeznaczone jest do bardzo dużych aplikacji, gdzie skomplikowane obliczenia lub zapytania do bazy są wykorzystywane w wielu miejscach (np. Jedno zapytanie wykorzystywane jest do wyświetlania katalogu produktów, generowania plików XML itd.).  W przypadku niewielkich projektów bardzo ciekawym pomysłem wydaje się być cashowanie  fragmentów strony lub całych stron internetowych.  Przykładem realizacji takiego pomysłu może być tworzenie tymczasowych statycznych plików HTML z dynamicznych treści i przekierowanie użytkownika bezpośrednio na te pliki (z pominięciem index.php). W ten sposób można błyskawicznie wyświetlić treść użytkownikom pomijając CAŁKOWICIE interpreter. W tym przypadku zysk zmniejszenia zużycia mocy procesora kosztem zwiększenia ilości danych jest nieporównywalny (oczywiście do granicy limitu miejsca na serwerze). W przypadku komercyjnych produktów takich jak sklepy internetowe, szybkość działania aplikacji jest bardzo ważnych czynnikiem przekładającym się bezpośrednio na obroty klienta.

żałoba narodowa a poprawność budowania stron www

Kolejna żałoba narodowa – tym razem długa i poważna. Po Prezydencie i wielu ważnych osobach. Pomijam wszystkie kwestie narodowościowe i ludzkie. Poniżej pisze tylko o aspekcie technicznym. Z żałobami jest tak, że część firm, a już na pewno instytucji chce być na czasie i mieć na stronie kir, a najczęściej całą stronę w skali szarości. Oczywiście w ważnych żałobach trzeba to zrobić szybko. Żałoby nikt nie przewiduje z góry … (choć w połowie żałoby już się dało słyszeć dowcipy, jak to jedna wielka korporacja zadzwoniła do swojego podwykonawcy odpowiedzialnego za stronę www zlecając mu stronę czarno-białą. A ponieważ firma podwykonawcza to był tzw. outsourcing w Indiach to padła odpowiedź, że TAKIE zlecenia to trzeba przekazywać tydzień wcześniej …).

Co ma poprawność kodu i trzymanie się poprawnych zasad projektowania stron www do żałoby ? Ano sporo. Żałoba nie wybiera – tym razem zaczęło się w sobotę. Pierwszy telefon o przebudowę strony na wersję żałobną dostałem ok. 10.15. Chodziło o stronę z gatunku politycznych. Potem były kolejne telefony i maile. Jak się przerabia stronę na czarno-białą. Ciężko przebudować banner na czarno-biały, gdy jest on we flashu, a źródła ma się w … no właśnie – dobre pytanie gdzie … pewnie w jakimś backupie z komputera grafika, bo strona jest np. sprzed 1-2 lat ? Zatem trzeba sobie poradzić inaczej – szczególnie, że rzeźbienie we flashu, który się składa z kilku fotek, efektów itd jest niekoniecznie wykonywalne „od ręki”. I tutaj zaczyna się kwestia poprawności kodu. Pod każdym flashem powinien być identyczna grafika ale już statyczna w jpg. I tak faktycznie my robimy nasze strony www. Co zatem zrobić ? ściągnąć obrazek jpg, który jest pod flashem, w photoshopie dwa kliknięcia i mamy wersję czarno-białą. Wrzucamy na serwer i potem wystarczy postawić w kodzie znaczek komentarza przy wywołaniu flasha. Proste ? Proste pod warunkiem, że jest przygotowane kiedyś, podczas budowy strony. Zakomentowanie flasha nie spowodowało nic, oprócz wyświetlania statycznej grafiki znajdującej się pod nim. Nieważne, że aktualnie często mówi się o tym, że tego nie warto robić, bo „przecież flasha każdy ma na komputerze”. W takich przypadkach bardzo doceniłem stare, poprawne podejście.

prowadzenie biznesu przez hipermarkety

Dostaliśmy w firmie ostatnio zapytanie od jednego z największych hipermarketów: hipermarket poszukuje wykonawcy hostspotów w galerii handlowej. W zapytaniu ofertowym od razu było stwierdzenie  „jesteśmy zainteresowani realizacją usługi w zamian za reklamę i referencje”. Aż napisałem do nich maila, z zapytaniem, czy faktycznie chcą, żeby ktoś zrobił im hotspoty za darmo (dopytałem: chodzi o sprzęt, konfigurację i stałe dostarczanie łącza). Odpowiedź była twierdząca: tak chodzi o darmowe darmowe zrealizowanie usługi w zamian za reklamę. Wiadomo – reklama kosztuje, ale podejście mnie zadziwiło. Aż z ciekawości za jakiś czas sprawdzę, kto się skusił na darmową robotę …

nowy system CMS

Uruchomiliśmy nową stronę demonstracyjną naszego systemu zarządzania treścią, który wykorzystujemy do projektowania stron internetowych w firmie. Aktualnie każdy, nawet bez kontaktu z nami może obejrzeć podstawową wersję systemu edycji stron www online w przeglądarce. Strona znajduje się pod adresem www.trustcms.pl.

W Panelu dostępne są podstawowe opcje, jak edycja menu, aktualności, dodawanie podstron – wraz z pełną edycja ich zawartości w edytorze wizualnym, dodawaniem fotografii, dodaniem filmów flash, tabelami parametrów itd.

Ciekawą rzeczą jest zakładka oznaczona jako SEO, gdzie można zdefiniować takie parametry jak: title, keywords, description. Istnieje też możliwość automatycznego skopiowania tych parametrów z globalnie zdefiniowanych wcześniej opisów. Dzięki możliwości określania tych parametrów dla KAŻDEJ  podstrony pozycjonowanie strony stało się łatwiejsze – już na etapie edytorskim. SEO można dodawać do każdego elementu strony, który może funkcjonować samodzielnie, tj. np. do podstron, do kategorii podstron (gdzie podstrony po kliknięciu w punkt menu wyświetlane są jako skróty), do aktualności – zarówno do treści długiej  jak i do całej kategorii wpisów oraz do takich elementów jak kategorie fotografii, które są odpowiednikiem galerii, jak również do kategorii załączników (gdzie na jednej podstronie wyświetlane są np. pliki pdf do pobrania).

przenoszenie klienta na serwer dedykowany

Zgłosił się do nas kolejny Klient, który u _bardzo_poważnej_firmy_hostingowej_wiodącej_na_rynku przestał pasować do profilu dobrego Klienta z powodu przekroczenia transferów, zbytniego obciążania bazy danych, itd.

Nic prostszego – oferujemy w dobrej cenie serwery dedykowane, zatem spotkanie, przedstawienie oferty i jest decyzja. Standardowo pomagamy Klientom za niewielką opłatą przenieść dane od aktualnego usługodawcy (co w praktyce bardzo często niestety sprowadza się do odwalenia całości pracy za nich – ale trudno – sami proponowaliśmy).

Prace rozpoczęto tradycyjnie z początkiem weekendu, czyli ok. godz. 23.00 w piątek, tak, aby skończyć lekko po północy. Doszliśmy do baz danych, których było tylko 5 sztuk. Co się okazało, jeden z największych dostawców hostingu w Polsce używa w MySQL-u o wersji 5.x kodowania ISO. No cóż. po pewnej walce udało nam się wgrać bazy do MySQL-a, który standardowo – jak to wersja 5.x – koduje znaki w UTF.

Ostatecznie prace zakończyliśmy koło godz. 4.50 w sobotę (byliśmy lekko zdziwieni, że jeszcze jest ciemno  – chyba idzie ku zimie …)

Napisano: 31 sierpnia 2009

Autor: wojtek

Kategorie: serwery dedykowane

Tagi: , , ,