Project

General

Profile

BlueStore SMR Support GSOC 2016 Progress Report » History » Version 5

Shehbaz Jaffer, 05/13/2016 03:01 AM

1 1 Shehbaz Jaffer
h1. BlueStore SMR Support GSOC 2016 Progress Report
2
3
This page contains documentation of the Progress made for GSOC 2016. For main page, redirect "here":http://tracker.ceph.com/projects/ceph/wiki/BlueStore_SMR_Support
4
5
h3. TimeLine
6
7
|_. Day  |_. Event |
8
| -22-April-19:00-UTC- | -Accepted-student-proposals-announced-on-the-Google-Summer-of-Code-2016-site- |
9
|*Community Bonding Period* | *Students get to know mentors, read documentation, get up to speed to begin working on their projects*|
10
|23 May	| Students begin coding for their Google Summer of Code projects; Google begins issuing initial student payments provided tax forms are on file and students are in good standing with their communities. |
11
|Work Period | Mentors give students a helping hand and guidance on their projects.|
12
|20 June 19:00 UTC |	Mentors and students can begin submitting mid-term evaluations.|
13
|27 June 19:00 UTC |	Mid-term evaluations deadline; Google begins issuing mid-term student payments provided passing student survey is on file. |
14
|Work Period |	Mentors give students a helping hand and guidance on their projects.|
15
|15 August - 23 August 19:00 UTC |	Final week: Students tidy code, write tests, improve documentation and submit their code sample. Students also submit their final mentor evaluation.|
16
|23 August - 29 August 19:00 UTC |	Mentors submit final student evaluations.|
17
|30 August |	Final results of Google Summer of Code 2016 announced|
18
|Late October |	Mentor Summit at Google. Mentors and Organization Administrators from each participating organization are invited to Google for an unconference to collaborate on ideas to make the program better and to make new friends too!|
19
20
h3. Weekly Progress Summary
21
22
|_. Week  |_. Date    |_. Documentation |_. Development |_. Testing |_. AOB |
23
| Week1     | Apr 25 - May 1  | Created Wiki        | Setting Up Ceph Development Environment |  | Install procedure "here":http://docs.ceph.com/docs/master/install/build-ceph/ |
24
| | | [TODO] Create Architecture diagram | | | |
25 2 Shehbaz Jaffer
| | | [TODO] Document Changes reuired in code | | | Share with Mentor |
26
| Week2-Week3     | Apr 1 - May 15  | Exploring SMR Drives       | Setting Up Ceph Development Environment |  |  |
27 3 Shehbaz Jaffer
28 4 Shehbaz Jaffer
h4. Index
29 5 Shehbaz Jaffer
[[Libzbc Tests#SMR_Drives]]
30 1 Shehbaz Jaffer
31 5 Shehbaz Jaffer
32
h5 SMR_Drives
33 3 Shehbaz Jaffer
34
The SMR drives that we obtained are Seagate Archive SMR Drives 8TB in size (7.23 GB usable space). It was earlier proposed that these SMR drives are Drive Managed, but now it seems they are host aware SMR drives.
35
I used libzbc and ran tests on the SMR dirves to see if they work. Since Linux 3.19, each block device in Linux is also indentified as /dev/sg<X>. 
36
I have 2 HDDs in my machine. The first HDD has OS installed. The second HDD is the Host Aware SMR drive.
37
38
<pre><code class="C">
39
cat /proc/scsi/scsi
40
Attached devices:
41
Host: scsi0 Channel: 00 Id: 00 Lun: 00
42
  Vendor: ATA      Model: SAMSUNG SP2504C  Rev: 0-52
43
  Type:   Direct-Access                    ANSI  SCSI revision: 05
44
Host: scsi1 Channel: 00 Id: 00 Lun: 00
45
  Vendor: ATA      Model: ST8000AS0022-1WL Rev: SN01
46
  Type:   Direct-Access                    ANSI  SCSI revision: 05
47
</code></pre>
48
49
The first device is identified as /dev/sg0, second device as /dev/sg1 and so on.
50
when we run libzbc tests, we get the following results:
51
52
<pre><code class="C">
53
 sudo ./zbc_test.sh /dev/sg1
54
Executing command completion tests...
55
    010: REPORT_ZONES command completion...                                                                             [Passed]
56
    011: REPORT_ZONES (partial bit) command completion...                                                               [Passed]
57
    012: REPORT_ZONES (reporting option 0x10) command completion...                                                     [Passed]
58
    013: REPORT_ZONES (reporting option 0x11) command completion...                                                     [Passed]
59
    014: REPORT_ZONES (reporting option 0x3F) command completion...                                                     [Passed]
60
    020: OPEN_ZONE command completion...                                                                                [Passed]
61
    030: CLOSE_ZONE command completion...                                                                               [Passed]
62
    040: FINISH_ZONE command completion...                                                                              [Passed]
63
    050: RESET_WRITE_PTR command completion...                                                                          [Passed]
64
    060: WRITE command completion...                                                                                    [Passed]
65
    070: READ command completion...                                                                                     [Passed]
66
Executing sense key, sense code tests...
67
    010: REPORT_ZONES logical block out of range...                                                                     [Failed]
68
        => Expected Illegal-request / Logical-block-address-out-of-range
69
           Got  / 
70
    011: REPORT_ZONES invalid reporting option...                                                                       [Failed]
71
        => Expected Illegal-request / Invalid-field-in-cdb
72
           Got Illegal-request / Unaligned-write-command
73
    020: OPEN_ZONE invalid zone start lba...                                                                            [Passed]
74
    021: OPEN_ZONE insufficient zone resources...                                                                       [ N/A  ]
75
    022: OPEN_ZONE insufficient zone resources (ALL bit set)...                                                         [ N/A  ]
76
    023: OPEN_ZONE conventional zone...                                                                                 [Passed]
77
    030: CLOSE_ZONE invalid zone start lba...                                                                           [Passed]
78
    031: CLOSE_ZONE conventional zone...                                                                                [Passed]
79
    040: FINISH_ZONE invalid zone start lba...                                                                          [Passed]
80
    041: FINISH_ZONE conventional zone...                                                                               [Passed]
81
    050: RESET_WRITE_PTR invalid zone start lba...                                                                      [Passed]
82
    051: RESET_WRITE_PTR conventional zone...                                                                           [Passed]
83
    060: READ access sequential zone LBAs after write pointer...                                                        [Passed]
84
    061: READ sequential zones boundary violation...                                                                    [Passed]
85
    062: READ conventional/sequential zones boundary violation...                                                       [Passed]
86
    070: WRITE unaligned write in sequential zone...                                                                    [Passed]
87
    071: WRITE sequential zone boundary violation...                                                                    [Passed]
88
    072: WRITE insufficient zone resources...                                                                           [Passed]
89
Executing zone state machine tests...
90
    001: OPEN_ZONE empty to explicit open...                                                                            [Passed]
91
    002: CLOSE_ZONE empty to empty...                                                                                   [Passed]
92
    003: FINISH_ZONE empty to full...                                                                                   [Passed]
93
    004: RESET_WRITE_PTR empty to empty...                                                                              [Passed]
94
    005: OPEN_ZONE implicit open to explicit open...                                                                    [Passed]
95
    006: CLOSE_ZONE implicit open to closed...                                                                          [Passed]
96
    007: FINISH_ZONE implicit open to full...                                                                           [Passed]
97
    008: RESET_WRITE_PTR implicit open to empty...                                                                      [Passed]
98
    009: OPEN_ZONE empty to explicit open to explicit open...                                                           [Passed]
99
    010: CLOSE_ZONE empty to explicit open to empty...                                                                  [Passed]
100
    011: FINISH_ZONE empty to explicit open to full...                                                                  [Passed]
101
    012: RESET_WRITE_PTR empty to explicit open to empty...                                                             [Passed]
102
    013: OPEN_ZONE implicit open to explicit open to explicit open...                                                   [Passed]
103
    014: CLOSE_ZONE implicit open to explicit open to closed...                                                         [Passed]
104
    015: FINISH_ZONE implicit open to explicit open to full...                                                          [Passed]
105
    016: RESET_WRITE_PTR implicit open to explicit open to empty...                                                     [Passed]
106
    017: OPEN_ZONE closed to explicit open...                                                                           [Passed]
107
    018: CLOSE_ZONE closed to closed...                                                                                 [Passed]
108
    019: FINISH_ZONE closed to full...                                                                                  [Passed]
109
    020: RESET_WRITE_PTR closed to empty...                                                                             [Passed]
110
    021: OPEN_ZONE full to full...                                                                                      [Passed]
111
    022: CLOSE_ZONE full to full...                                                                                     [Passed]
112
    023: FINISH_ZONE full to full...                                                                                    [Passed]
113
    024: FINISH_ZONE full to empty...                                                                                   [Passed]
114
    025: OPEN_ZONE empty to empty (ALL bit set)...                                                                      [Passed]
115
    026: CLOSE_ZONE empty to empty (ALL bit set)...                                                                     [Passed]
116
    027: FINISH_ZONE empty to empty (ALL bit set)...                                                                    [Passed]
117
    028: RESET_WRITE_PTR empty to empty (ALL bit set)...                                                                [Passed]
118
    029: OPEN_ZONE implicit open to implicit open (ALL bit set)...                                                      [Passed]
119
    030: CLOSE_ZONE implicit open to close (ALL bit set)...                                                             [Passed]
120
    031: FINISH_ZONE implicit open to full (ALL bit set)...                                                             [Passed]
121
    032: RESET_WRITE_PTR implicit open to empty (ALL bit set)...                                                        [Passed]
122
    033: OPEN_ZONE empty to explicit open to explicit open (ALL bit set)...                                             [Passed]
123
    034: CLOSE_ZONE empty to explicit open to empty (ALL bit set)...                                                    [Passed]
124
    035: FINISH_ZONE empty to explicit open to full (ALL bit set)...                                                    [Passed]
125
    036: RESET_WRITE_PTR empty to explicit open to empty (ALL bit set)...                                               [Passed]
126
    037: OPEN_ZONE implicit open to explicit open to explicit_open (ALL bit set)...                                     [Passed]
127
    038: CLOSE_ZONE implicit open to explicit open to closed (ALL bit set)...                                           [Passed]
128
    039: FINISH_ZONE implicit open to explicit open to full (ALL bit set)...                                            [Passed]
129
    040: RESET_WRITE_PTR implicit open to explicit open to empty (ALL bit set)...                                       [Passed]
130
    041: OPEN_ZONE closed to explicit open (ALL bit set)...                                                             [Passed]
131
    042: CLOSE_ZONE closed to closed (ALL bit set)...                                                                   [Passed]
132
    043: FINISH_ZONE closed to full (ALL bit set)...                                                                    [Passed]
133
    044: RESET_WRITE_PTR closed to empty test (ALL bit set)...                                                          [Passed]
134
    045: OPEN_ZONE full to full (ALL bit set)...                                                                        [Passed]
135
    046: CLOSE_ZONE full to full (ALL bit set)...                                                                       [Passed]
136
    047: FINISH_ZONE full to full (ALL bit set)...                                                                      [Passed]
137
    048: RESET_WRITE_PTR full to empty (ALL bit set)...                                                                 [Passed]
138
</code></pre>
139
140
<pre><code class="C">
141
shehbaz@bluestore:~$ sudo zbc_info /dev/sg1
142
Device /dev/sg1: ATA ST8000AS0022-1WL SN01 
143
    ATA ZAC interface, Host-aware disk model
144
    15628053168 logical blocks of 512 B
145
    1953506646 physical blocks of 4096 B
146
    8001.563 GB capacity
147
</code></pre>