
ã¹ããŒãªãŒã¯1幎åã«å§ãŸããŸãããå人ãååããšã³ã¿ãŒãã©ã€ãºããŒã±ãã£ã³ã°ã®å€§èŠæš¡ãªå°é家ã次ã®èšèã§ç§ãã¡ã®ãšããã«æ¥ãŸããããã¿ããªããããããªæ©èœããã¹ãŠåããã·ãã¯ãªå庫ããããŸãã 90TBãã ç¹å¥ãªå¿
èŠã¯ãããŸããã§ãããããã¡ããæåŠããŸããã§ããã ããã§ããã€ãã®ããã¯ã¢ãããèšå®ãããã°ããã®éã¯å®å
šã«å¿ããŠããŸããã
å®æçã«ããã¹ãéã§å€§ããªãã¡ã€ã«ã転éããããPostgreã¬ããªã«çšã®WALãæ§ç¯ããããããªã©ã®ã¿ã¹ã¯ãçºçããŸãããåŸã
ã«ããããžã§ã¯ãã«é¢é£ããæ£ä¹±ãããã¹ãŠã®è¯ãããã®å·èµåº«ã«è»¢éãå§ããŸããã ããã¯ã¢ããã®è©Šè¡ãæåããå Žåãšæåããªãã£ãå Žåã®ã¢ã©ãŒããããŒããŒã·ã§ã³ã§èšå®ããŸãã 幎éãéããŠããã®ã¹ãã¬ãŒãžã¯ãªãã¬ãŒãã£ã³ã°ã°ã«ãŒãã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã®éèŠãªèŠçŽ ã®1ã€ã«ãªããŸããã
ç§ãã¡ã®å°é家ãåã³ç§ãã¡ã®ãšããã«æ¥ãŠã圌ã圌ã®ãã¬ãŒã³ããåããããšèšã£ããŸã§ããã¹ãŠã¯å€§äžå€«ã§ããã ãããŠãæ©æ¥ã«è¿åŽããå¿
èŠããããŸãã
éžæã¯å°ããã£ã-ã©ãã§ããã¹ãŠãåã³çªãåºããããã©ãã¯ãžã£ãã¯ãšã¹ãã£ãã¯ããããªãèªèº«ã®å·èµåº«ãéããã ãã®ç¬éãŸã§ã«ãç§ãã¡ã¯ãã§ã«æããããŠãããå€ãã®ãŸã£ãããã©ãŒã«ããã¬ã©ã³ãã§ã¯ãªãã·ã¹ãã ãååã«èŠãŠããã©ãŒã«ããã¬ã©ã³ã¹ã2çªç®ã®èªå·±ã«ãªããŸããã
å€ãã®éžæè¢ã®ãã¡ãGlusterãGlassterãç¹ã«ç®ãåŒããŸããã ãšã«ãããäœãåŒã¶ãã çµæããã£ãå Žåã®ã¿ã ãããã£ãŠãç§ãã¡ã¯åœŒãmç¬ãå§ããŸããã
Glasterãšã¯äœã§ããããªãå¿
èŠãªã®ã§ããïŒ
ããã¯ãOpenStackãšé·å¹ŽèŠªããŸããoVIrt / RHEVã«çµ±åãããŠããåæ£ãã¡ã€ã«ã·ã¹ãã ã§ãã ç§ãã¡ã®
IaaS㯠Openstackã§
ã¯ãããŸããããGlasterã«ã¯å€§èŠæš¡ãªã¢ã¯ãã£ãã³ãã¥ããã£ããããlibgfapiã€ã³ã¿ãŒãã§ãŒã¹ã®åœ¢åŒã§ãã€ãã£ãqemuããµããŒãããŠããŸãã ãããã£ãŠã1ã€ã®ç³ã§2矜ã®é³¥ã殺ããŸãã
- ç§ãã¡ãå®å
šã«ãµããŒãããŠããããã¯ã¢ããã®ããã«ããã¯ã¢ãããäžããŸãã ãã³ããŒãå£ããéšåãéããšããäºæ³ãæããå¿
èŠã¯ãããããŸããã
- å°æ¥çã«ã客æ§ã«æäŸã§ããæ°ããã¿ã€ãã®ã¹ãã¬ãŒãžïŒããªã¥ãŒã ã¿ã€ãïŒããã¹ãããŠããŸãã
ãã¹ããã仮説ïŒ- ã°ã©ã¹ã¿ãŒã®ä»çµã¿ã 確èªæžã¿ã
- ãã©ãŒã«ããã¬ã©ã³ãã§ãã-ä»»æã®ããŒããåèµ·åã§ããã¯ã©ã¹ã¿ãŒã¯åŒãç¶ãåäœããããŒã¿ãå©çšå¯èœã«ãªããŸãã è€æ°ã®ããŒããåèµ·åã§ããŸãããããŒã¿ã¯å€±ãããŸããã 確èªæžã¿ã
- ä¿¡é Œã§ããããš-ã€ãŸããããèªäœã§èœã¡ãããã¡ã¢ãªå
ã§æéåãã«ãªããªããªã©çµã¿ç«ãŠãã©ã®æ§æã§ãå®å®ããŠããŸããïŒè©³çŽ°ã¯æåŸã«ãããŸãïŒã
1ãæéãããŸããŸãªæ§æãšããŒãžã§ã³ã®å®éšãšã¢ã»ã³ããªãè¡ããããã®åŸããã¯ãã«ã«ããã¯ã¢ããã®2çªç®ã®ç®çå°ãšããŠãéçšç°å¢ã§ãã¹ãéçšãè¡ãããŸããã 圌ã«å®å
šã«äŸåããåã«ã6ãæé圌ãã©ã®ããã«æ¯ãèãããèŠããã£ãã®ã§ãã
è²ãŠæ¹
å®éšçšã«ååãªå®¹éããããŸãããDellPoweredge r510ãæèŒããã©ãã¯ãšãå€ãS3ããç¶æ¿ããããã»ã©é«éã§ãªãSATA 2ãã©ãã€ãã®ããã¯ã§ãã
20 TBãè¶
ããã¹ãã¬ãŒãžã¯å¿
èŠãªãããšãããããŸããããã®åŸã2ã€ã®å€ãDell Power Edge r510ã10åã®ãã£ã¹ã¯ã§æºãããã¢ãŒãã¿ãŒããŒã«çšã«å¥ã®ãµãŒããŒãéžæããããã±ãŒãžãããŠã³ããŒãããŠå±éããã®ã«çŽ30åããããŸããã çµæã¯ãã®ãããªã¹ããŒã ã§ãã

ã¢ãŒãã¿ãŒã§ã¹ãã©ã€ãã¬ããªã±ãŒã·ã§ã³ãéžæããã®ã¯ãé«éïŒããŒã¿ãè€æ°ã®ããªãã¯ã«åçã«åæ£ãããïŒãååãªä¿¡é Œæ§ïŒã¬ããªã«2ïŒããããã¹ããªãããã¬ã€ã³ãåä¿¡ããã«1ã€ã®ããŒãã®ãã©ãŒã«ãçãæ®ãããšãã§ããããã§ãã ç§ãã¡ã¯ã©ã®ããã«ééã£ãŠããŸãã...
çŸåšã®æ§æã§ã®ã¯ã©ã¹ã¿ãŒã®äž»ãªæ¬ ç¹ã¯ã1Gã®ã¿ã®éåžžã«çããã£ãã«ã§ãããç®çã®ããã«ã¯ããã§ååã§ãã ãããã£ãŠããã®æçš¿ã¯ã·ã¹ãã ã®é床ããã¹ãããããšã§ã¯ãªãããã®å®å®æ§ãšäºæ
ã®å Žåã«ã©ããããã«ã€ããŠã§ãã å°æ¥çã«ã¯ãrdmaã䜿çšããŠInfiniband 56Gã«åãæ¿ããŠããã©ãŒãã³ã¹ãã¹ããå®æœããäºå®ã§ãããããã¯ãŸã£ããå¥ã®è©±ã§ãã
ããã§ã¯ãã¯ã©ã¹ã¿ãŒãçµã¿ç«ãŠãããã»ã¹ã«ã€ããŠè©³ãã説æããŸããããã¹ãŠãéåžžã«ç°¡åã§ãã
ããªãã¯ã®ãã£ã¬ã¯ããªãäœæããŸããfor i in {0..9} ; do mkdir -p /export/brick$i ; done
xfsãããªãã®è»èŒªã«è»¢ãããŸãïŒ for i in {b..k} ; do mkfs.xfs /dev/sd$i ; done
/ etc / fstabã«ããŠã³ããã€ã³ããè¿œå ããŸãã /dev/sdb /export/brick0/ xfs defaults 0 0 /dev/sdc /export/brick1/ xfs defaults 0 0 /dev/sdd /export/brick2/ xfs defaults 0 0 /dev/sde /export/brick3/ xfs defaults 0 0 /dev/sdf /export/brick4/ xfs defaults 0 0 /dev/sdg /export/brick5/ xfs defaults 0 0 /dev/sdh /export/brick6/ xfs defaults 0 0 /dev/sdi /export/brick7/ xfs defaults 0 0 /dev/sdj /export/brick8/ xfs defaults 0 0 /dev/sdk /export/brick9/ xfs defaults 0 0
ããŠã³ãïŒ mount -a
ããªã¥ãŒã ã®ãã£ã¬ã¯ããªãbriksã«è¿œå ããŸããããã¯ãholodilnikãšåŒã°ããŸãã for i in {0..9} ; do mkdir -p /export/brick$i/holodilnik ; done
次ã«ãã¯ã©ã¹ã¿ãŒãã¹ããã¹ãã³ããããªã¥ãŒã ãäœæããå¿
èŠããããŸãã
3ã€ã®ãã¹ããã¹ãŠã«ããã±ãŒãžãé
眮ããŸãã pdsh -w server[1-3] -- yum install glusterfs-server -y
Glasterãèµ·åããŸãã systemctl enable glusterd systemctl start glusterd
Glasterã«ã¯ããã€ãã®ããã»ã¹ãããããšãç¥ã£ãŠãããšäŸ¿å©ã§ãããã®ç®çã¯æ¬¡ã®ãšããã§ããglusterd =管çããŒã¢ã³
ã¡ã€ã³ããŒã¢ã³ã¯ãããªã¥ãŒã ãå¶åŸ¡ããããªãã¯ãšããŒã¿ãªã«ããªãæ
åœããæ®ãã®ããŒã¢ã³ãåŒãåºããŸãã
glusterfsd =
ãããã¯ããšã®ããŒã¢ã³
åbrikã¯ç¬èªã®glusterfsdããŒã¢ã³ãèµ·åããŸãã
glustershd =èªå·±
修埩ããŒã¢ã³
ã¯ã©ã¹ã¿ãŒããŒããã³ããçºçããå Žåã«ãè€è£œãããããªã¥ãŒã ã®ããŒã¿ãåæ§ç¯ããŸãã
glusterfs =éåžžã¯ã¯ã©ã€ã¢ã³ãåŽã§ããããµãŒããŒäžã®NFSã
ããšãã°ãglusterfs-fuseãã€ãã£ãã¯ã©ã€ã¢ã³ãããã±ãŒãžã«ä»å±ããŠããŸãã
PirimããŒãïŒ gluster peer probe server2 gluster peer probe server3
ããªã¥ãŒã ãåéããŸããããã§ã¯ããªãã¯ã®é åºãéèŠã§ã-è€è£œãããããªãã¯ã¯æ¬¡ã
ã«ç¶ããŸãã gluster volume create holodilnik stripe 10 replica 3 arbiter 1 transport tcp server1:/export/brick0/holodilnik server2:/export/brick0/holodilnik server3:/export/brick0/holodilnik server1:/export/brick1/holodilnik server2:/export/brick1/holodilnik server3:/export/brick1/holodilnik server1:/export/brick2/holodilnik server2:/export/brick2/holodilnik server3:/export/brick2/holodilnik server1:/export/brick3/holodilnik server2:/export/brick3/holodilnik server3:/export/brick3/holodilnik server1:/export/brick4/holodilnik server2:/export/brick4/holodilnik server3:/export/brick4/holodilnik server1:/export/brick5/holodilnik server2:/export/brick5/holodilnik server3:/export/brick5/holodilnik server1:/export/brick6/holodilnik server2:/export/brick6/holodilnik server3:/export/brick6/holodilnik server1:/export/brick7/holodilnik server2:/export/brick7/holodilnik server3:/export/brick7/holodilnik server1:/export/brick8/holodilnik server2:/export/brick8/holodilnik server3:/export/brick8/holodilnik server1:/export/brick9/holodilnik server2:/export/brick9/holodilnik server3:/export/brick9/holodilnik force
Glasterãå®å®ããŠåäœããããã«ããã©ã¡ãŒã¿ãŒãã«ãŒãã«ããŒãžã§ã³ïŒ3.10.0ã4.5.4ïŒãããã³GlusterfsèªäœïŒ3.8ã3.10ã3.13ïŒã®å€æ°ã®çµã¿åãããè©Šãå¿
èŠããããŸããã
ãŸãã次ã®ãã©ã¡ãŒã¿ãŒå€ãå®éšçã«èšå®ããŸãã gluster volume set holodilnik performance.write-behind on gluster volume set holodilnik nfs.disable on gluster volume set holodilnik cluster.lookup-optimize off gluster volume set holodilnik performance.stat-prefetch off gluster volume set holodilnik server.allow-insecure on gluster volume set holodilnik storage.batch-fsync-delay-usec 0 gluster volume set holodilnik performance.client-io-threads off gluster volume set holodilnik network.frame-timeout 60 gluster volume set holodilnik performance.quick-read on gluster volume set holodilnik performance.flush-behind off gluster volume set holodilnik performance.io-cache off gluster volume set holodilnik performance.read-ahead off gluster volume set holodilnik performance.cache-size 0 gluster volume set holodilnik performance.io-thread-count 64 gluster volume set holodilnik performance.high-prio-threads 64 gluster volume set holodilnik performance.normal-prio-threads 64 gluster volume set holodilnik network.ping-timeout 5 gluster volume set holodilnik server.event-threads 16 gluster volume set holodilnik client.event-threads 16
è¿œå ã®äŸ¿å©ãªãªãã·ã§ã³ïŒ sysctl vm.swappiness=0 sysctl vm.vfs_cache_pressure=120 sysctl vm.dirty_ratio=5 echo "deadline" > /sys/block/sd[bk]/queue/scheduler echo "256" > /sys/block/sd[bk]/queue/nr_requests echo "16" > /proc/sys/vm/page-cluster blockdev --setra 4096 /dev/sd[bk]
ããã¯ã¢ããã®å Žåãã€ãŸãç·åœ¢æäœã®å Žåããããã®ãã©ã¡ãŒã¿ãŒãåªããŠããããšãä»ãå ãã䟡å€ããããŸãã ã©ã³ãã ãªèªã¿åã/æžã蟌ã¿ã®å Žåãä»ã®ãã®ãéžæããå¿
èŠããããŸãã
次ã«ãGlasterãžã®ããŸããŸãªæ¥ç¶ã®é·æãšçæãããã³ãã¬ãã£ããã¹ãã±ãŒã¹ã®çµæãæ€èšããŸããvolyumã«æ¥ç¶ããããã«ããã¹ãŠã®äž»èŠãªãã·ã§ã³ããã¹ãããŸããã
1. backupvolfile-serverãã©ã¡ãŒã¿ãŒã䜿çšããGluster Native ClientïŒglusterfs-fuseïŒãçæïŒ
-ã¯ã©ã€ã¢ã³ããžã®è¿œå ãœãããŠã§ã¢ã®ã€ã³ã¹ããŒã«ã
-ã¹ããŒãã
ãã©ã¹/ãã€ãã¹ïŒ
-ã¯ã©ã¹ã¿ãŒããŒãã®1ã€ããã³ããããå Žåã®ããŒã¿ãžã®é·ãã¢ã¯ã»ã¹äžèœã ãã®åé¡ã¯ãnetwork.ping-timeoutãµãŒããŒåŽãªãã·ã§ã³ã«ãã£ãŠä¿®æ£ãããŸãã ãã©ã¡ãŒã¿ã5ã«èšå®ãããšãããŒã«ã¯ãããã5ç§éèœã¡ãŸãã
ãã©ã¹ïŒ
-ããã¯éåžžã«å®å®ããŠåäœããå£ãããã¡ã€ã«ã«å€§ããªåé¡ã¯ãããŸããã§ããã
2. Gluster Native ClientïŒgluster-fuseïŒ+ VRRPïŒããŒãã¢ã©ã€ãïŒã
ã¯ã©ã¹ã¿ãŒã®2ã€ã®ããŒãéã§ç§»åIPãæ§æãããã®ãã¡ã®1ã€ãæ¶æ»
ãããŸããããã€ãã¹ïŒ
-è¿œå ãœãããŠã§ã¢ã®ã€ã³ã¹ããŒã«ã
ãã©ã¹ïŒ
-ã¯ã©ã¹ã¿ãŒããŒããã³ããçºçããå Žåã®åãæ¿ãæã®æ§æå¯èœãªã¿ã€ã ã¢ãŠãã
å€æããããã«ãbackupvolfile-serverãã©ã¡ãŒã¿ãŒãŸãã¯keepalivedèšå®ã®æå®ã¯ãªãã·ã§ã³ã§ãããã¯ã©ã€ã¢ã³ãèªäœãGlasterããŒã¢ã³ã«æ¥ç¶ãïŒã¢ãã¬ã¹ã«é¢ä¿ãªãïŒãæ®ãã®ã¢ãã¬ã¹ãèªèããã¯ã©ã¹ã¿ãŒã®ãã¹ãŠã®ããŒãã§èšé²ãéå§ããŸãã ãã®äŸã§ã¯ãã¯ã©ã€ã¢ã³ãããserver1ããã³server2ãžã®å¯Ÿç§°ãã©ãã£ãã¯ã確èªããŸããã ããªãã圌ã«VIPã¢ãã¬ã¹ãäžãããšããŠããã¯ã©ã€ã¢ã³ãã¯ãŸã Glusterfsã®ã¯ã©ã¹ã¿ã¢ãã¬ã¹ã䜿çšããŸãã èµ·åæã«ãã¯ã©ã€ã¢ã³ãã䜿çšã§ããªãGlusterfsãµãŒããŒã«æ¥ç¶ããããšãããšããã®ãã©ã¡ãŒã¿ãŒã¯æçšã§ããã次ã«backupvolfile-serverã§æå®ããããã¹ãã«æ¥ç¶ãããšããçµè«ã«éããŸããã
å
¬åŒææžããã®ã³ã¡ã³ãïŒFUSEã¯ã©ã€ã¢ã³ãã§ã¯ãGlusterFSã®ãã©ãŠã³ãããã³ãã¹ã¿ã€ã«ã®æ¥ç¶ã§ããŠã³ããè¡ãããšãã§ããŸãã / etc / fstabã§ã¯ã1ã€ã®ããŒãã®ååã䜿çšãããŸãã ãã ããå
éšã¡ã«ããºã ã«ãããã®ããŒãã«é害ãçºçããã¯ã©ã€ã¢ã³ãã¯ä¿¡é Œã§ããã¹ãã¬ãŒãžããŒã«å
ã®ä»ã®æ¥ç¶ãããããŒãã«ããŒã«ãªãŒããŒããŸãã ããã©ãŒãã³ã¹ã¯ããã¹ãã«åºã¥ãNFSæ¹åŒããããããã«é
ããªããŸãããããã»ã©å€§ããã¯ãããŸããã å©çã¯èªåHAã¯ã©ã€ã¢ã³ããã§ãŒã«ãªãŒããŒã§ãããããã¯éåžžãããã©ãŒãã³ã¹ã«åœ±é¿ãã䟡å€ããããŸãã
3. Pacemakerã䜿çšããNFS-GaneshaãµãŒããŒãäœããã®çç±ã§ãã€ãã£ãã¯ã©ã€ã¢ã³ãã䜿çšããããªãå Žåã«æšå¥šãããæ¥ç¶ã®çš®é¡ãçæïŒ
-ããã«è¿œå ã®ãœãããŠã§ã¢ã
-ããŒã¹ã¡ãŒã«ãŒã§å€§éšãã
-
ãã°ããã£ããããŸããã
4. NFSv3ããã³NLM + VRRPïŒããŒãã¢ã©ã€ãïŒãããã¯ããµããŒããã2ã€ã®ã¯ã©ã¹ã¿ãŒããŒãéã§IPã移åããã¯ã©ã·ãã¯NFSãé·æïŒ
-ããŒãã«é害ãçºçããå Žåã®é«éã¹ã€ããã³ã°ã
-keepalivedã®ã»ããã¢ããã®å®¹æãã
-nfs-utilsã¯ãããã©ã«ãã§ãã¹ãŠã®ã¯ã©ã€ã¢ã³ããã¹ãã«ã€ã³ã¹ããŒã«ãããŸãã
çæïŒ
-ããŠã³ããã€ã³ããžã®rsyncãæ°åéç¶ããåŸãNFSã¯ã©ã€ã¢ã³ããDã¹ããŒã¿ã¹ã§ãã³ã°ã
-ã¯ã©ã€ã¢ã³ããšã®ããŒãã®å®å
šãªãããã-ãã°ïŒãœããããã¯ã¢ãã-CPUãXã§ã¹ã¿ãã¯ããŠããïŒ
-ãã¡ã€ã«ãå€ããã¡ã€ã«ãã³ãã«ã®ãšã©ãŒãrm -rfã§ç©ºã§ãªããã£ã¬ã¯ããªããªã¢ãŒãI / Oãšã©ãŒãªã©ã§ãã¡ã€ã«ãç Žæããå€ãã®ã±ãŒã¹ããã£ããããŸããã
ããã«ææªã®ãªãã·ã§ã³ã¯ãGlusterfsã®ä»¥éã®ããŒãžã§ã³ã§ã¯éæšå¥šã«ãªããŸããã誰ã«ããå§ãããŸããã
ãã®çµæãkeepalivedãšbackupvolfile-serverãã©ã¡ãŒã¿ãŒãªãã§glusterfs-fuseãéžæããŸããã ç§ãã¡ã®æ§æã§ã¯ãæ¯èŒçäœéã«ãããããããå®å®æ§ã瀺ããå¯äžã®ãã®ã§ããã
çç£æ§ã®é«ãéçšã§ã¯ãéåžžã«ã¢ã¯ã»ã¹ãããããœãªã¥ãŒã·ã§ã³ãæ§æããå¿
èŠæ§ã«å ããŠãäºæ
ãçºçããå Žåã«ãµãŒãã¹ã埩å
ã§ããå¿
èŠããããŸãã ãã®ãããå®å®ããäœæ¥ã¯ã©ã¹ã¿ãŒãçµã¿ç«ãŠãåŸãç Žå£ãã¹ãã«é²ã¿ãŸããã
ããŒãã®ç°åžžã·ã£ããããŠã³ïŒã³ãŒã«ããªããŒãïŒ
1ã€ã®ã¯ã©ã€ã¢ã³ãããå€æ°ã®ãã¡ã€ã«ã®rsyncãèµ·åããã¯ã©ã¹ã¿ãŒããŒãã®1ã€ãããŒããªãããŠãéåžžã«é¢çœãçµæãåŸãŸããã ããŒããèœã¡ãåŸãæåã«èšé²ã5ç§éåæ¢ãïŒnetwork.ping-timeout 5ãã©ã¡ãŒã¿ãŒãããã«é¢äžããŸãïŒããã®åŸãã¯ã©ã€ã¢ã³ãã¯ããŒã¿ãè€è£œã§ããªããªããæ®ãã®ããŒããžã®ãã¹ãŠã®ãã©ãã£ãã¯ã®éä¿¡ãéå§ãããããããŒã«ãžã®æžã蟌ã¿é床ã2åã«ãªããŸãã1Gãã£ã³ãã«ã«ã

ãµãŒããŒãèµ·åãããšãã¯ã©ã¹ã¿ãŒå
ã®èªåããŒã¿é§é€ããã»ã¹ãéå§ããããã®ããã«glustershdããŒã¢ã³ãåå ãšãªããé床ã倧å¹
ã«äœäžããŸããã
ãã®ãããããŒãã®ãã³ãåŸã«åŠçããããã¡ã€ã«ã®æ°ã確èªã§ããŸãã gluster volume heal holodilnik info
...Brick Server2ïŒ/ãšã¯ã¹ããŒã/ brick1 / holodilnik
/2018-01-20-weekly/billing.tar.gz
ã¹ããŒã¿ã¹ïŒæ¥ç¶æžã¿
ãšã³ããªãŒæ°ïŒ1
Brick Server2ïŒ/ export / brick5 / holodilnik
/2018-01-27-weekly/billing.tar.gz
ã¹ããŒã¿ã¹ïŒæ¥ç¶æžã¿
ãšã³ããªãŒæ°ïŒ1
Brick Server3ïŒ/ export / brick5 / holodilnik
/2018-01-27-weekly/billing.tar.gz
ã¹ããŒã¿ã¹ïŒæ¥ç¶æžã¿
ãšã³ããªãŒæ°ïŒ1
...
æ²»çã®çµããã«ãã«ãŠã³ã¿ãŒã¯ãŒãã«ãªã»ãããããèšé²é床ã¯ä»¥åã®å€ã«æ»ããŸããã
ãã£ã¹ã¯ãã¬ãŒããšãã®äº€æ
ãã¬ãŒããã£ã¹ã¯ãã³ããšäº€æã¯ãããŒã«ãžã®æžã蟌ã¿é床ãäœäžãããŸããã§ããã ãããããããã§ã®ããã«ããã¯ã¯ãã£ã¹ã¯ããŒãã®é床ã§ã¯ãªããã¯ã©ã¹ã¿ãŒããŒãéã®ãã£ãã«ã§ããããšã§ãããã Infinibandã«ãŒããè¿œå ãããããã«ãããåºããã£ãã«ã§ãã¹ããå®æœããŸãã
ã¯ã©ãã·ã¥ãããã£ã¹ã¯ãå€æŽãããšãsysfsã§åãååïŒ/ dev / sdXïŒã§è¿ãããã¯ãã§ãã 次ã®ãã©ã€ããæ°ããââãã©ã€ãã«å²ãåœãŠãããããšããããããŸãã 次åã®åèµ·åæã«å€ãååã䜿çšããããããã¯ããã€ã¹ã®ååã移åããããªãã¯ãå¢å ããªãããããã®åœ¢åŒã§å°å
¥ããªãããšã匷ããå§ãããŸãã ãããã£ãŠãããã€ãã®ã¢ã¯ã·ã§ã³ãå®è¡ããå¿
èŠããããŸãã
ãããããåé¡ã¯ã·ã¹ãã ã®ã©ããã«ã¯ã©ãã·ã¥ãããã£ã¹ã¯ã®ããŠã³ããã€ã³ãããã£ãããšã§ãã ãããã£ãŠãumountãå®è¡ããŠãã ããã
umount /dev/sdX
ãŸãããã®ããã€ã¹ãä¿æã§ããããã»ã¹ã確èªããŸãã
lsof | grep sdX
ãããŠããã®ããã»ã¹ãåæ¢ããŸãã
ãã®åŸãåã¹ãã£ã³ãè¡ãå¿
èŠããããŸãã
ã¯ã©ãã·ã¥ãããã£ã¹ã¯ã®å Žæã«é¢ãã詳现æ
å ±ã«ã€ããŠã¯ãdmesg-Hãã芧ãã ããã
[Feb14 12:28] quiet_error: 29686 callbacks suppressed
[ +0.000005] Buffer I/O error on device sdf, logical block 122060815
[ +0.000042] lost page write due to I/O error on sdf
[ +0.001007] blk_update_request: I/O error, dev sdf, sector 1952988564
[ +0.000043] XFS (sdf): metadata I/O error: block 0x74683d94 ("xlog_iodone") error 5 numblks 64
[ +0.000074] XFS (sdf): xfs_do_force_shutdown(0x2) called from line 1180 of file fs/xfs/xfs_log.c. Return address = 0xffffffffa031bbbe
[ +0.000026] XFS (sdf): Log I/O Error Detected. Shutting down filesystem
[ +0.000029] XFS (sdf): Please umount the filesystem and rectify the problem(s)
[ +0.000034] XFS (sdf): xfs_log_force: error -5 returned.
[ +2.449233] XFS (sdf): xfs_log_force: error -5 returned.
[ +4.106773] sd 0:2:5:0: [sdf] Synchronizing SCSI cache
[ +25.997287] XFS (sdf): xfs_log_force: error -5 returned.
sd 0:2:5:0 â :
h == hostadapter id (first one being 0)
c == SCSI channel on hostadapter (first one being 2) â PCI-
t == ID (5) â
l == LUN (first one being 0)
åã¹ãã£ã³ïŒ
echo 1 > /sys/block/sdY/device/delete echo "2 5 0" > /sys/class/scsi_host/host0/scan
ããã§ãsdYã¯äº€æããããã©ã€ãã®èª€ã£ãååã§ãã
次ã«ãããªãã¯ã眮ãæããã«ã¯ãããŠã³ãçšã®æ°ãããã£ã¬ã¯ããªãäœæãããã¡ã€ã«ã·ã¹ãã ãããŒã«ã¢ããããŠããŠã³ãããå¿
èŠããããŸãã
mkdir -p /export/newvol/brick mkfs.xfs /dev/sdf -f mount /dev/sdf /export/newvol/
ã¬ã³ã¬ã亀æããŸãã
gluster volume replace-brick holodilnik server1:/export/sdf/brick server1:/export/newvol/brick commit force
æ²»çãéå§ããŸãã gluster volume heal holodilnik full gluster volume heal holodilnik info summary
ã¬ããªãŒãã¬ãŒãïŒ
ã¯ã©ãŒã©ã ããŒãäžã®ã¡ã¿ããŒã¿ã®åæã«é¢é£ããŠãåã5ã7ç§ã®ããŒã«ãžã®ã¢ã¯ã»ã¹äžèœãš3ç§ã®ãããŒããŠã³ã
ãŸãšã
ç Žå£çãªãã¹ãã®çµæã¯ç§ãã¡ãåã°ãã補åã«éšåçã«å°å
¥ããŸããããé·ãé幞ãã§ã¯ãããŸããã§ãã...
åé¡1ãæ¢ç¥ã®ãã°å€æ°ã®ãã¡ã€ã«ãšãã£ã¬ã¯ããªïŒçŽ100,000ïŒãåé€ãããšãã次ã®ãçŸããé£ã¹ãŸããã
rm -rf /mnt/holodilnik/* rm: cannot remove 'backups/public': Remote I/O error rm: cannot remove 'backups/mongo/5919d69b46e0fb008d23778c/mc.ru-msk': Directory not empty rm: cannot remove 'billing/2018-02-02_before-update_0.10.0/mongodb/': Stale file handle
2013幎ã«å§ãŸããã®ãããªã¢ããªã±ãŒã·ã§ã³ãçŽ30åèªã¿ãŸããã åé¡ã®è§£æ±ºçã¯ã©ãã«ããããŸããã
Red Hat
ã¯ããŒãžã§ã³ã®æŽæ°ãæšå¥šããŠããŸãããããã¯åœ¹ã«ç«ã¡ãŸããã§ããã
åé¿çã¯ããã¹ãŠã®ããŒãã®ããªãã¯ã«ããå£ãããã£ã¬ã¯ããªã®æ®ããã¯ãªãŒã³ã¢ããããããšã§ãã
pdsh -w server[1-3] -- rm -rf /export/brick[0-9]/holodilnik/<failed_dir_path>
ããããããã«æªãããšã§ãã
åé¡2ãææªã¹ãã©ã€ãããªã¥ãŒã ããŒã«å
ã®å€æ°ã®ãã¡ã€ã«ã§ã¢ãŒã«ã€ãã解åããUninterruptible sleepã§ã¶ãäžããtar xvfzãååŸããããšããŸããã ããã¯ãã¯ã©ã€ã¢ã³ãããŒãã®åèµ·åã«ãã£ãŠã®ã¿åŠçãããŸãã
ãããªãµãã«çããŠãããªãããšã«æ°ä»ããç§ãã¡ã¯ãæåŸã«è©Šããããšã®ãªãæ§æã«ç®ãåããŸããã ãã®å¯äžã®é£ããã¯ãããªã¥ãŒã ãçµã¿ç«ãŠãåçãç解ããããšã§ãã
ãã¹ãŠåãç Žå£ãã¹ããå®è¡ããçµæãåãå¿«é©ãªçµæãåŸãããŸããã äœçŸäžãã®ãã¡ã€ã«ãããŠã³ããŒããããåé€ãããŸããã è©ŠããŠããã«ãåæ£ããªã¥ãŒã ã®ç Žå£ã«æåããŸããã§ããã CPUã®è² è·ãé«ããªããŸãããããããŸã§ã®ãšããããã¯éèŠã§ã¯ãããŸããã
çŸåšã§ã¯ãã€ã³ãã©ã¹ãã©ã¯ãã£ã®äžéšãããã¯ã¢ããããå
éšã¢ããªã±ãŒã·ã§ã³ã®ãã¡ã€ã«ã¯ãªãŒããŒãšããŠäœ¿çšãããŠããŸãã ããŸããŸãªè² è·ã®äžã§åœŒãã©ã®ããã«æ©èœããããèŠãããã«ã圌ãšäžç·ã«æ®ãããããšæã£ãŠããŸãã ã¹ãã©ã€ãããªã¥ãŒã ã®ã¿ã€ããå¥åŠã«æ©èœããæ®ããéåžžã«ããŸãæ©èœããããšã¯æããã§ãã ããã«èšç»-åºãInfinibandãã£ãã«ãåãã6å°ã®ãµãŒããŒã§50 TBã®åæ£ããªã¥ãŒã 4 + 2ãåéããããã©ãŒãã³ã¹ãã¹ããå®è¡ãããã®äœæ¥ã®ååãããã«æ·±ãæãäžããŸãã